#discord-bot #discord #discord-api #rtp #api

skua-voice

为KenaBot定制的Songbird分支

1个不稳定版本

0.4.0 2024年2月13日

#377音频

ISC许可

615KB
13K SLoC

docs-badge crates.io version rust badge

skua-voice (自定义songbird分支)

Skua是基于Songbird的分支,是一个用于Discord的异步、跨库兼容的语音系统,用Rust编写。该库提供

  • skuatwilight兼容的独立网关前端,使用"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