Discord Voice 是 Clawdbot 的语音插件,用于在 Discord 语音频道中实现与 Claude AI 的实时语音对话。用户加入语音频道后直接说话,语音会被转写、交给智能体处理,并以语音形式回复。
主要能力
- 加入/离开语音频道:可通过斜杠命令、CLI 或智能体工具操作。
- 语音活动检测(VAD):自动检测用户何时开始和停止说话。
- 语音转文本(STT):支持 Whisper API(OpenAI)或 Deepgram。
- 流式 STT:使用 Deepgram WebSocket 实时转写,约减少 1 秒延迟。
- 智能体集成:转写后的语音文本会路由到 Clawdbot 智能体处理。
- 文本转语音(TTS):支持 OpenAI TTS 或 ElevenLabs。
- 音频播放:回复会在语音频道中朗读出来。
- 打断支持(Barge-in):用户开始说话时立即停止播放。
- 自动重连:心跳监控,断线后自动重连。
使用方式
- 安装系统依赖:Ubuntu/Debian 使用 sudo apt-get install ffmpeg build-essential python3;Fedora/RHEL 使用 sudo dnf install ffmpeg gcc-c++ make python3;macOS 使用 brew install ffmpeg。
- 通过 ClawdHub 安装:clawdhub install discord-voice;或手动克隆仓库到 ~/.clawdbot/extensions 后执行 npm install。
- 在 clawdbot.json 中配置插件,设置 sttProvider、ttsProvider、ttsVoice、vadSensitivity、allowedUsers、silenceThresholdMs、maxRecordingMs 以及各服务商的 API Key。
- 配置 Discord 机器人权限:Connect(加入语音频道)、Speak(播放音频)、Use Voice Activity(检测用户说话)。
操作入口
- 斜杠命令:/voice join <channel>、/voice leave、/voice status。
- CLI 命令:clawdbot voice join <channelId>、clawdbot voice leave --guild <guildId>、clawdbot voice status。
- 智能体工具 discord_voice:支持 join、leave、speak、status 动作。
工作流程 机器人加入指定语音频道后,VAD 检测用户说话并缓冲音频;检测到静音后将音频发送给 STT 服务商转写;转写文本发送给 Clawdbot 智能体;智能体回复经 TTS 合成音频;最后在语音频道中播放。
适用场景 适合希望在 Discord 语音频道中通过自然语音与 Claude AI 进行实时对话的用户,例如语音助手、语音交互实验等。
限制
- 每个服务器同一时间只能有一个语音频道处于活动状态。
- 最大录音长度默认 30 秒(可配置)。
- 实时音频需要稳定的网络连接。
- TTS 输出可能因合成而有轻微延迟。
- 需要 Discord 机器人具备语音权限,并配置 STT 与 TTS 服务商的 API Key。
- 需要 ffmpeg 以及 @discordjs/opus、sodium-native 的原生构建工具。
许可证:MIT。