#桌面应用程序 #跨平台 #播放 #上升 #麦克风 #音视频

应用 声音板

跨平台声音板:通过您的麦克风播放声音

3个不稳定版本

0.1.1 2020年12月25日
0.1.0 2020年8月4日
0.0.2 2020年6月30日

#256 in 音频

AGPL-3.0或更高版

770KB
10K SLoC

Rust 8K SLoC // 0.0% comments C 712 SLoC // 0.1% comments JavaScript 671 SLoC // 0.0% comments Python 165 SLoC // 0.0% comments Vue 26 SLoC

声音板

cratesio BuildDebug BuildRelease

跨平台桌面应用程序,可让您在音频/视频会议中增添色彩

nativeui
(截图已过时,但捕捉到了精髓。)
更多截图

webui telegramtextui gui

webui、telegram-bot、textui和gui

功能(Rust功能名:rfm)

  • 播放本地和远程声音到您的麦克风和输出设备
    • 支持的编解码器
      • mp3(rfm:mp3)
      • flac(rfm:flac)
      • wav(rfm:wav)
      • vorbis(rfm:vorbis)
      • opus(rfm:opus)
      • xm(rfm:xm,非默认)
    • 支持的来源(底部有配置示例)
      • 本地(文件)
      • http
      • tts(rfm:文本到语音)
      • spotify(rfm:spotify)
      • youtube
  • 全局快捷键
    • 所有声音的默认 stop-hotkeyCTRL-ALT-E
  • 网络用户界面和http api(rfm:http)
    • 默认套接字地址: 127.0.0.1:8080
  • 文本用户界面(rfm:textui)
  • 本地图形用户界面(rfm:gui,非默认)
    • 第一版。网络用户界面更简洁,性能更好。
  • telegram bot(rfm:telegram,非默认)
    • 您需要创建一个机器人,然后指定您的 telegram-token
  • pulse audio中的回环设备自动处理(rfm:auto-loop,非默认)

配置、环境和命令行选项

  • 您可以通过配置文件 soundboard.toml、环境变量 SB_<option> 或命令行 --<option> 提供所有选项
    • 示例: gui = trueSB_GUI=true--gui=true
  • 使用 --help 查看所有选项

安装

  • 简单:从 https://github.com/gamebooster/soundboard/releases/ 下载编译后的发布包
  • 或通过 cargo: cargo install soundboard(编译时间是一个咖啡休息时间)
    • cargo install 需要的依赖项
      • Windows:PATH 中有 llvm
      • Unix:sudo apt-get install llvm autoconf libtool automake libpulse0 libgtk-3-dev
      • Mac:brew install llvm opus
    • 创建至少包含一个音板的 soundboard 目录(以下为示例配置)
  1. 提供虚拟麦克风(以下为说明)
  2. (可选)将 youtube-dlmkvextract 添加到 PATH 变量或 soundboard 可执行文件旁边,以使用 YouTube 作为源
  3. (可选)通过参数、配置或环境变量提供 spotify-userspotify-pass 以使用 Spotify 作为源。您需要一个高级账户。

默认用法

  1. 运行 soundboard --print-possible-devices
  2. 运行 soundboard --loopback-device "<name>" 或将其放入配置文件
    • loopback-device 应该是已安装的虚拟输出设备名称
  3. 按热键或使用原生 GUI 或打开 Web UI https://127.0.0.1:3030
  4. ???
  5. CTRL-C 退出或按窗口上的 x

在 Windows 上提供虚拟麦克风

  1. https://download.vb-audio.com/Download_CABLE/VBCABLE_Driver_Pack43.zip 下载并安装 vb-audio 虚拟电缆
  2. 使用 loopback 设备启动 soundboard: CABLE 输入
  3. 使用具有输入 CABLE 输出 的应用程序

在 Linux 上提供虚拟麦克风

  1. 创建并选择 loopback 设备
    a. 使用标志 --auto-loop-device
    b. 替代方案:输入命令 pactl load-module module-null-sink sink_name=virtualSink
  2. 使用 loopback 设备启动 soundboard: null sink
  3. 使用具有输入 Null Sink 的监视器SoundboadLoopbackDevice 的监视器 的应用程序

在 macOS 上提供虚拟麦克风

  1. https://github.com/mattingalls/Soundflower/releases 下载并安装 soundflower 内核扩展
  2. 通过 Audio MIDI Setup 为 Soundflower(2ch)设置采样率:48000 Hz
  3. 使用 loopback 设备启动 soundboard: Soundflower (2ch)
  4. 使用具有输入的应用程序:Soundflower (2ch)

配置文件示例

soundboard.toml是可选的。soundboards目录是必需的。

配置搜索路径

{soundboard exe location}
$XDG_CONFIG_HOME/soundboard/
$HOME/.config/soundboard/
$HOME/.soundboard/
soundboard.toml
# input_device = "Mikrofonarray (Realtek High Definition Audio(SST))" # optional else default device
# output_device = "Speaker/HP (Realtek High Definition Audio(SST))" # optional else default device
loopback_device = "CABLE Input (VB-Audio Virtual Cable)" # required: change to your virtual loopback output

stop_hotkey = "CTRL-ALT-E" # stop all sound
soundboards/favorites.toml
name = 'favorites'
position = 0 # always position ahead of other soundboards

[[sound]]
name = 'steam incoming'
source = {http = {url = 'https://www.myinstants.com/media/sounds/message_2.mp3'}}

[[sound]]
hotkey = 'CTRL-P'
name = 'Nicht so tief, Rüdiger!'
source = {local = {path = 'nicht-so-tief-rudiger.mp3'}}

[[sound]]
end = 10.5 # end sound timestamp, supported for all sources
name = "Sound of Silence"
source = {spotify = {id = "5y788ya4NvwhBznoDIcXwK"}}
start = 2 # start sound timestamp, supported for all sources

[[sound]]
end = 18.5
name = "dreams"
source = {youtube = {id = "ZXsQAXx_ao0"}}
start = 14

[[sound]]
end = 58
name = "tired"
source = {youtube = {id = "ZXsQAXx_ao0"}}
start = 53

[[sound]]
name = '''Looks Like You're F'd'''
source = {http = {url = 'https://www.soundboard.com/handler/playTrack.ashx?id=893190', headers = [{name = 'referer', value = 'https://www.soundboard.com/'}]}}

[[sound]]
name = "Hello World"
source = {tts = {ssml = '''
<speak>
Hello World!
</speak>
''', lang = "en-GB"}}
soundboards/myinstants_soundboard.toml
name = "Myinstants.com"

[[sound]]
name = 'Falcon Punch'
source = {http = {url = 'https://www.myinstants.com//media/sounds/falconpunch.swf.mp3'}}

[[sound]]
name = 'Knaller'
source = {http = {url = 'https://www.myinstants.com//media/sounds/videoplayback-2-online-audio-converter.mp3'}}
示例配置文件预期的目录结构
soundboard.toml
soundboards/
  favorites/
    nicht-so-tief-rudiger.mp3
  favorites.toml
  myinstants_soundboard.toml

更多示例: https://github.com/gamebooster/soundboard/tree/master/soundboards

依赖项

~22–49MB
~850K SLoC