网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

Discord Voice

2026-03-28 新闻来源:网淘吧 围观:21
电脑广告
手机广告

Discord语音插件(适用于Clawdbot)

在Discord语音频道中实现实时语音对话。加入语音频道后,您的话语将被转录、经Claude处理,并以语音形式实时反馈。

功能特性

  • 加入/离开语音频道:通过斜杠命令、CLI或智能体工具实现
  • 语音活动检测:自动检测用户发言状态
  • 语音转文字:支持Whisper API(OpenAI)、Deepgram或本地离线Whisper
  • 流式语音识别:通过Deepgram WebSocket实现实时转录(延迟降低约1秒)
  • 智能体集成:转录内容经由Clawdbot智能体处理
  • 文字转语音:支持OpenAI TTS、ElevenLabs或Kokoro(本地离线)
  • 音频播放:在语音频道中播报响应内容
  • 语音打断支持:用户开始说话时立即停止当前播报
  • 自动重连:断开连接时自动进行心跳监测和重连

要求

  • 具有语音权限的 Discord 机器人(连接、说话、使用语音活动)
  • STT 和 TTS 服务提供商的 API 密钥
  • 语音所需的系统依赖项:
    • ffmpeg(音频处理)
    • 适用于以下库的原生构建工具:@discordjs/opussodium-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- 获取当前语音状态

工作原理

  1. 加入:机器人加入指定的语音频道
  2. 监听:VAD检测用户何时开始/停止说话
  3. 录制:用户说话时音频被缓冲
  4. 转录:静音时,音频会发送给语音转文字服务提供商
  5. 处理:转录后的文本会发送给Clawdbot智能体
  6. 合成:智能体的回复会通过语音合成转换为音频
  7. 播放:音频会在语音频道中回放

流式语音转文字(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

听不到音频

  1. 检查机器人是否拥有连接和发言权限
  2. 检查机器人是否被服务器静音
  3. 验证TTS API密钥是否有效

转录功能不工作

  1. 检查STT API密钥是否有效
  2. 检查是否正在录制音频(查看调试日志)
  3. 尝试调整VAD灵敏度

启用调试日志记录

DEBUG=discord-voice clawdbot gateway start

环境变量

变量描述
DISCORD_TOKENDiscord机器人令牌(必需)
OPENAI_API_KEYOpenAI API密钥(用于Whisper + TTS)
ELEVENLABS_API_KEYElevenLabs API密钥
DEEPGRAM_API_KEYDeepgram API密钥

限制

  • 每个服务器同时只能使用一个语音频道
  • 最大录音时长:30秒(可配置)
  • 实时音频需要稳定的网络连接
  • 由于合成原因,TTS输出可能存在轻微延迟

许可证

MIT许可证

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Interview Simulator 下一篇:Blog Writer

相关文章

您是本站第292456名访客 今日有287篇新文章/评论