在 Discord语音频道中与 Claude AI 进行实时语音对话
用于 Clawdbot. 的 Discord Voice 插件是一项面向实际任务的技能,主要用于重复时空的 Discord 语音频道中的语音对话;加入语音频道, 说话, 并让您的话被Claude 转写, 处理, 并回话。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
在 Discord 语音频道中实现实时语音对话。加入语音频道,开口说话,你的语音将被实时转录、交由 Claude 处理,并以语音形式反馈给你。
ffmpeg(音频处理)@discordjs/opus 和 sodium-native 的原生构建工具# 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 install discord-voice
或手动安装:
cd ~/.clawdbot/extensions git clonediscord-voice cd discord-voice npm install
{
plugins: {
entries: {
"discord-voice": {
enabled: true,
config: {
sttProvider: "local-whisper",
ttsProvider: "openai",
ttsVoice: "nova",
vadSensitivity: "medium",
allowedUsers: [], // 空数组 = 允许所有用户
silenceThresholdMs: 1500,
maxRecordingMs: 30000,
openai: {
apiKey: "sk-...", // 或使用 OPENAI_API_KEY 环境变量
},
},
},
},
},
}
请确保你的 Discord bot 具备以下权限:
请将上述权限添加至 bot 的 OAuth2 URL,或在 Discord Developer Portal 中完成配置。
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enabled |
boolean | true |
启用或禁用该插件 |
sttProvider |
string | "local-whisper" |
可选值:"whisper"、"deepgram" 或 "local-whisper" |
streamingSTT |
boolean | true |
启用流式 STT(仅 Deepgram 支持,端到端延迟降低约 1 秒) |
ttsProvider |
string | "openai" |
可选值:"openai" 或 "elevenlabs" |
ttsVoice |
string | "nova" |
TTS 使用的语音 ID |
vadSensitivity |
string | "medium" |
可选值:"low"、"medium" 或 "high" |
bargeIn |
boolean | true |
用户开始说话时立即停止当前语音输出 |
allowedUsers |
string[] | [] |
允许使用的用户 ID 列表(空数组表示允许所有用户) |
silenceThresholdMs |
number | 1500 |
静音判定阈值(毫秒),即检测到静音后开始处理 |
maxRecordingMs |
number | 30000 |
单次录音最大时长(毫秒) |
heartbeatIntervalMs |
number | 30000 |
连接健康检查间隔(毫秒) |
autoJoinChannel |
string | undefined |
启动时自动加入的语音频道 ID |
{
openai: {
apiKey: "sk-...",
whisperModel: "whisper-1",
ttsModel: "tts-1",
},
}
{
elevenlabs: {
apiKey: "...",
voiceId: "21m00Tcm4TlvDq8ikWAM", // Rachel
modelId: "eleven_multilingual_v2",
},
}
{
deepgram: {
apiKey: "...",
model: "nova-2",
},
}
在 Discord 中完成注册后,可使用以下命令:
/discord_voice join — 加入指定语音频道/discord_voice leave — 退出当前语音频道/discord_voice status — 查看语音连接状态# 加入语音频道 clawdbot discord_voice join# 退出语音频道 clawdbot discord_voice leave --guild # 查看状态 clawdbot discord_voice status
agent 可调用 discord_voice 工具:
Join voice channel 1234567890
该工具支持以下动作:
join — 加入语音频道(需提供 channelId)leave — 退出语音频道speak — 在语音频道中播报指定文本status — 获取当前语音状态当选用 Deepgram 作为 STT 服务商时,流式模式默认启用。该模式提供以下优势:
启用流式 STT 的配置示例:
{
sttProvider: "deepgram",
streamingSTT: true, // 默认启用
deepgram: {
apiKey: "...",
model: "nova-2",
},
}
启用后(默认开启),当用户开始讲话时 bot 将立即停止当前语音输出,从而营造更自然的对话体验,支持随时打断 bot。
如需禁用该行为(等待 bot 完整播报完毕),请设置:
{
bargeIn: false,
}
插件内置连接健康监测机制:
若连接中断,日志中将显示类似如下信息:
[discord-voice] Disconnected from voice channel [discord-voice] Reconnection attempt 1/3 [discord-voice] Reconnected successfully
请确认已正确配置 Discord 频道,且 bot 已成功连接后再使用语音功能。
请安装构建工具:
npm install -g node-gyp npm rebuild @discordjs/opus sodium-native
DEBUG=discord-voice clawdbot gateway start
| 变量名 | 说明 |
|---|---|
DISCORD_TOKEN |
Discord bot token(必需) |
OPENAI_API_KEY |
OpenAI API 密钥(用于 Whisper + TTS) |
ELEVENLABS_API_KEY |
ElevenLabs API 密钥 |
DEEPGRAM_API_KEY |
Deepgram API 密钥 |
MIT
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章