27 个版本
0.4.3 | 2024 年 7 月 17 日 |
---|---|
0.4.1 | 2024 年 2 月 29 日 |
0.4.0 | 2023 年 11 月 27 日 |
0.3.2 | 2023 年 4 月 9 日 |
0.0.0 | 2020 年 11 月 16 日 |
#68 在 Web 编程
3,677 每月下载次数
在 8 crates 中使用
605KB
13K SLoC
Songbird
Songbird 是一个异步、跨库兼容的 Discord 语音系统,用 Rust 编写。该库提供
- 一个与 serenity 和 twilight 兼容的独立网关前端,使用
"gateway"
和"[serenity/twilight]"
以及"[rustls/native]"
功能。您甚至可以运行无驱动程序,以帮助管理您的 lavalink 会话。 - 一个独立的语音通话驱动程序,通过
"driver"
功能。如果您可以使用任何其他网关或语言为您的机器人创建ConnectionInfo
,则可以运行 songbird 语音驱动程序。 - 通过
"receive"
功能处理语音接收和 RT(C)P 数据包。 - 通过
"simd-json"
功能进行 SIMD 加速 JSON 解码。 - 默认情况下,一个功能齐全的语音系统,具有事件、队列、在兼容流上搜索、共享的多线程音频流缓存以及从 DCA 文件直接传递 Opus 数据等功能。
意图
Songbird 的网关功能需要您指定 GUILD_VOICE_STATES
意图。
编解码器支持
Songbird 支持所有由 Symphonia 提供的 编解码器和格式(纯 Rust),Opus 支持由 audiopus 提供(libopus 的 FFI 包装器)。
默认情况下,Songbird 不会从 Symphonia 请求任何编解码器。 要更改此设置,您需要在您的项目中依赖 Symphonia。
# Including songbird alone gives you support for Opus via the DCA file format.
[dependencies.songbird]
version = "0.4"
features = ["builtin-queue"]
# To get additional codecs, you *must* add Symphonia yourself.
# This includes the default formats (MKV/WebM, Ogg, Wave) and codecs (FLAC, PCM, Vorbis)...
[dependencies.symphonia]
version = "0.5.2"
features = ["aac", "mp3", "isomp4", "alac"] # ...as well as any extras you need!
依赖项
在使用 Songbird 之前,您需要一些系统依赖项。
- Opus - Discord使用的音频编解码器。audiopus 将在 Linux/MacOS 系统上通过 pkgconf 调用已安装的 libopus 二进制文件(如果可用),否则您需要安装 cmake 从源代码构建 opus。在 Windows 上总是如此。对于 Unix 系统,您可以在 Ubuntu 上使用
apt install libopus-dev
安装库,或在 Arch Linux 上使用pacman -S opus
。如果您没有安装,它将为您构建。然而,您需要安装 C 编译器和 GNU 自动工具。同样,您可以在 Ubuntu 上使用apt install build-essential autoconf automake libtool m4
安装它们,或在 Arch Linux 上使用pacman -S base-devel
。
这是一个必需的依赖项。没有它,Songbird 无法工作。
- yt-dlp / youtube-dl / (类似分支)- 音频/视频下载工具。yt-dlp 可以根据主存储库上的安装说明进行安装 (请参阅此链接)。您可以使用 Python 的包管理器 pip 安装 youtube-dl,我们推荐这样做。您可以使用命令
pip install youtube_dl
来安装它。或者,您可以使用系统包管理器安装它,在 Ubuntu 上使用apt install youtube-dl
,在 Arch Linux 上使用pacman -S youtube-dl
。
这是用户的一个可选依赖项,但作为一个开发依赖项是必需的。它允许 Songbird 从各种网页下载音频/视频源,并将其转换为 Discord 使用的 Opus 音频格式。
示例
可以在 此存储库的示例目录 中找到各种功能类型和集成的完整示例。
贡献
如果您想帮忙或提交问题,请查阅我们的 贡献指南!
归属
Songbird 的标志基于版权免费的图片 "Black-Capped Chickadee" 由 George Gorgas White 创作。
依赖项
~9–47MB
~799K SLoC