1个不稳定版本
0.4.0 | 2024年2月13日 |
---|
#377 在 音频
615KB
13K SLoC
skua-voice (自定义songbird分支)
Skua是基于Songbird的分支,是一个用于Discord的异步、跨库兼容的语音系统,用Rust编写。该库提供
- 与skua和twilight兼容的独立网关前端,使用
"gateway"
和"[skua/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使用的音频编解码器。如果Linux/MacOS上通过pkgconf可用,则audiopus将使用安装的libopus二进制文件,否则您需要安装cmake从源代码构建opus。在Windows上始终如此。对于Unix系统,您可以在Ubuntu上使用
apt install libopus-dev
安装库,或者在Arch Linux上使用pacman -S opus
。如果您尚未安装它,它将为您构建。但是,您需要安装C编译器和GNU autotools。同样,您可以在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,我们建议您使用youtube-dl。您可以使用以下命令执行此操作:
pip install youtube_dl
。或者,您可以使用系统包管理器安装它,在Ubuntu上使用apt install youtube-dl
,或者在Arch Linux上使用pacman -S youtube-dl
。
这是用户的一个可选依赖项,但作为一个开发依赖项是必需的。它允许Songbird从各种网页下载音频/视频源,并将其转换为Discord使用的Opus音频格式。
示例
可以在[这个crate的示例目录]中找到显示各种类型的功能和集成的完整示例。
贡献
如果您想帮忙或提交问题,请查看我们的贡献指南!
归属
Songbird的标志基于版权免费图像"Black-Capped Chickadee",由George Gorgas White创作。
依赖关系
~9–46MB
~786K SLoC