Discord Voice
2026-03-28
新闻来源:网淘吧
围观:19
电脑广告
手机广告
Discord语音插件(适用于Clawdbot)
在Discord语音频道中实现实时语音对话。加入语音频道后,您的话语将被转录、经Claude处理,并以语音形式实时反馈。
功能特性
- 加入/离开语音频道:通过斜杠命令、CLI或智能体工具实现
- 语音活动检测:自动检测用户发言状态
- 语音转文字:支持Whisper API(OpenAI)、Deepgram或本地离线Whisper
- 流式语音识别:通过Deepgram WebSocket实现实时转录(延迟降低约1秒)
- 智能体集成:转录内容经由Clawdbot智能体处理
- 文字转语音:支持OpenAI TTS、ElevenLabs或Kokoro(本地离线)
- 音频播放:在语音频道中播报响应内容
- 语音打断支持:用户开始说话时立即停止当前播报
- 自动重连:断开连接时自动进行心跳监测和重连
要求
- 具有语音权限的 Discord 机器人(连接、说话、使用语音活动)
- STT 和 TTS 服务提供商的 API 密钥
- 语音所需的系统依赖项:
ffmpeg(音频处理)- 适用于以下库的原生构建工具:
@discordjs/opus和sodium-native
安装
1. 安装系统依赖项
# Ubuntu/Debian
sudo apt-get install ffmpeg build-essential python3
# Fedora/RHEL
sudo dnf install ffmpeg gcc-c++ make python3
# macOS
brew install ffmpeg
2. 通过 ClawdHub 安装
clawdhub install discord-voice
或手动安装:
cd ~/.clawdbot/extensions
git clone <repository-url> discord-voice
cd discord-voice
npm install
3. 在 clawdbot.json 中配置
{
plugins: {
entries: {
"discord-voice": {
enabled: true,
config: {
sttProvider: "local-whisper",
ttsProvider: "openai",
ttsVoice: "nova",
vadSensitivity: "medium",
allowedUsers: [], // Empty = allow all users
silenceThresholdMs: 1500,
maxRecordingMs: 30000,
openai: {
apiKey: "sk-...", // Or use OPENAI_API_KEY env var
},
},
},
},
},
}
4. Discord 机器人设置
确保您的 Discord 机器人拥有以下权限:
- 连接- 加入语音频道
- 说话- 播放音频
- 使用语音活动检测- 检测用户何时说话
将这些添加到你的机器人 OAuth2 URL 中或在 Discord 开发者门户中配置。
配置
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
启用 | 布尔值 | 真 | 启用/禁用插件 |
语音转文本提供商 | 字符串 | "本地-Whisper" | "Whisper"、"Deepgram"或"本地-Whisper" |
流式语音转文本 | 布尔值 | 真 | 使用流式语音转文本(仅限 Deepgram,约快 1 秒) |
文本转语音提供商 | 字符串 | "openai" | "openai"或"elevenlabs" |
文本转语音声音 | 字符串 | "nova" | 文本转语音的声音ID |
语音活动检测灵敏度 | 字符串 | "中等" | "低","中等", 或"高" |
打断 | 布尔值 | 真 | 用户说话时停止发言 |
允许的用户 | 字符串数组 | [] | 允许的用户ID(空数组 = 全部) |
静音阈值毫秒 | 数字 | 1500 | 处理前静默时间(毫秒) |
maxRecordingMs | 数字 | 30000 | 最大录音时长(毫秒) |
heartbeatIntervalMs | 数字 | 30000 | 连接健康检查间隔 |
autoJoinChannel | 字符串 | 未定义 | 启动时自动加入的频道ID |
提供商配置
OpenAI(Whisper + TTS)
{
openai: {
apiKey: "sk-...",
whisperModel: "whisper-1",
ttsModel: "tts-1",
},
}
ElevenLabs(仅限TTS)
{
elevenlabs: {
apiKey: "...",
voiceId: "21m00Tcm4TlvDq8ikWAM", // Rachel
modelId: "eleven_multilingual_v2",
},
}
Deepgram(仅限STT)
{
deepgram: {
apiKey: "...",
model: "nova-2",
},
}
使用方式
斜杠命令(Discord)
在Discord注册后,可使用以下命令:
/discord_voice join <channel>- 加入语音频道/discord_voice leave- 离开当前语音频道/discord_voice status- 显示语音连接状态
命令行命令
# Join a voice channel
clawdbot discord_voice join <channelId>
# Leave voice
clawdbot discord_voice leave --guild <guildId>
# Check status
clawdbot discord_voice status
代理工具
代理可以使用discord_voice工具:
Join voice channel 1234567890
该工具支持的操作:
join- 加入语音频道(需要频道ID)leave- 离开语音频道speak- 在语音频道中朗读文本status- 获取当前语音状态
工作原理
- 加入:机器人加入指定的语音频道
- 监听:VAD检测用户何时开始/停止说话
- 录制:用户说话时音频被缓冲
- 转录:静音时,音频会发送给语音转文字服务提供商
- 处理:转录后的文本会发送给Clawdbot智能体
- 合成:智能体的回复会通过语音合成转换为音频
- 播放:音频会在语音频道中回放
流式语音转文字(Deepgram)
当使用Deepgram作为语音转文字服务提供商时,默认启用流式模式。这提供了:
- 约1秒更快的端到端延迟
- 实时反馈带有临时的转录结果
- 自动保持连接以防止连接超时
- 回退机制如果流式处理失败,则转为批量转录
要使用流式语音转文字:
{
sttProvider: "deepgram",
streamingSTT: true, // default
deepgram: {
apiKey: "...",
model: "nova-2",
},
}
打断支持
启用时(默认),如果用户开始说话,机器人会立即停止发言。这创造了更自然的对话流程,您可以打断机器人。
要禁用(让机器人说完话):
{
bargeIn: false,
}
自动重连
该插件包含自动连接健康监测:
- 心跳检测每30秒一次(可配置)
- 自动重连在断开连接时采用指数退避策略
- 最多尝试3次然后放弃
如果连接断开,您将看到类似日志:
[discord-voice] Disconnected from voice channel
[discord-voice] Reconnection attempt 1/3
[discord-voice] Reconnected successfully
VAD 灵敏度
- 低:能拾取轻声语音,但可能因背景噪音触发
- 中:平衡(推荐)
- 高:需要更响亮、更清晰的语音
故障排除
"Discord客户端不可用"
在使用语音功能前,请确保已配置好Discord频道并连接机器人。
Opus/Sodium 构建错误
安装构建工具:
npm install -g node-gyp
npm rebuild @discordjs/opus sodium-native
听不到音频
- 检查机器人是否拥有连接和发言权限
- 检查机器人是否被服务器静音
- 验证TTS API密钥是否有效
转录功能不工作
- 检查STT API密钥是否有效
- 检查是否正在录制音频(查看调试日志)
- 尝试调整VAD灵敏度
启用调试日志记录
DEBUG=discord-voice clawdbot gateway start
环境变量
| 变量 | 描述 |
|---|---|
DISCORD_TOKEN | Discord机器人令牌(必需) |
OPENAI_API_KEY | OpenAI API密钥(用于Whisper + TTS) |
ELEVENLABS_API_KEY | ElevenLabs API密钥 |
DEEPGRAM_API_KEY | Deepgram API密钥 |
限制
- 每个服务器同时只能使用一个语音频道
- 最大录音时长:30秒(可配置)
- 实时音频需要稳定的网络连接
- 由于合成原因,TTS输出可能存在轻微延迟
许可证
MIT许可证
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Interview Simulator
下一篇:Blog Writer


微信扫一扫,打赏作者吧~