Skip to main content

使用赫尔墨斯的语音模式

本指南是 语音模式功能参考 的实用配套文档。

如果说功能页面解释了语音模式能做什么,那么本指南将展示如何真正高效地使用它。

语音模式适合什么场景

语音模式特别适用于以下情况:

  • 希望实现无手操作的 CLI 工作流
  • 在 Telegram 或 Discord 中获取语音回复
  • 让赫尔墨斯进入 Discord 语音频道进行实时对话
  • 步行时快速记录想法、调试问题或进行即时问答,无需打字

选择你的语音模式配置

赫尔墨斯实际上提供了三种不同的语音体验。

模式适用场景平台
交互式麦克风循环编码或研究时个人无手操作使用CLI
聊天中的语音回复与常规消息并行的语音回复Telegram、Discord
实时语音频道机器人在语音频道中进行群组或个人实时对话Discord 语音频道

推荐路径是:

  1. 先确保文本模式正常工作
  2. 再启用语音回复
  3. 如果需要完整体验,最后再尝试 Discord 语音频道

第一步:确保普通赫尔墨斯正常运行

在开始使用语音模式前,请确认:

  • 赫尔墨斯已成功启动
  • 你的服务提供商已正确配置
  • 代理能够正常响应文本提示
hermes

提出一个简单问题:

What tools do you have available?

如果以上仍不稳定,请先解决文本模式的问题。

第二步:安装正确的附加组件

CLI 麦克风 + 播放

pip install "hermes-agent[voice]"

消息平台支持

pip install "hermes-agent[messaging]"

高级 ElevenLabs TTS(付费)

pip install "hermes-agent[tts-premium]"

本地 NeuTTS(可选)

python -m pip install -U neutts[all]

全部安装

pip install "hermes-agent[all]"

第三步:安装系统依赖

macOS

brew install portaudio ffmpeg opus
brew install espeak-ng

Ubuntu / Debian

sudo apt install portaudio19-dev ffmpeg libopus0
sudo apt install espeak-ng

这些依赖的重要性:

  • portaudio → CLI 语音模式的麦克风输入/播放支持
  • ffmpeg → TTS 和消息传递所需的音频转换
  • opus → Discord 语音编解码器支持
  • espeak-ng → NeuTTS 所需的音素化后端

第四步:选择 STT 和 TTS 提供商

赫尔墨斯支持本地和云端语音处理方案。

最简单 / 最便宜的设置

使用本地 STT 和免费的 Edge TTS:

  • STT 提供商:local
  • TTS 提供商:edge

这通常是最佳起点。

环境文件示例

将以下内容添加到 ~/.hermes/.env

# Cloud STT options (local needs no key)
GROQ_API_KEY=***
VOICE_TOOLS_OPENAI_KEY=***

# Premium TTS (optional)
ELEVENLABS_API_KEY=***

供应商推荐

语音转文字(STT)

  • local → 隐私友好且零成本的默认选择
  • groq → 极快的云端转录
  • openai → 优质的付费备用方案

文字转语音(TTS)

  • edge → 免费且对大多数用户已足够
  • neutts → 免费本地/设备端 TTS
  • elevenlabs → 最佳音质
  • openai → 良好折中方案
  • mistral → 多语言支持,原生 Opus 格式

如果你使用 hermes setup

如果你在设置向导中选择了 NeuTTS,赫尔墨斯会检查 neutts 是否已安装。若缺失,向导会提示你需要安装 Python 包 neutts 和系统包 espeak-ng,并提供自动安装选项。它将通过你平台的包管理器安装 espeak-ng,然后执行:

python -m pip install -U neutts[all]

如果你跳过该步骤或安装失败,向导将回退至 Edge TTS。

第五步:推荐配置

voice:
record_key: "ctrl+b"
max_recording_seconds: 120
auto_tts: false
silence_threshold: 200
silence_duration: 3.0

stt:
provider: "local"
local:
model: "base"

tts:
provider: "edge"
edge:
voice: "en-US-AriaNeural"

这对大多数人来说是一个稳妥的默认设置。

如果你想使用本地 TTS,只需将 tts 块替换为:

tts:
provider: "neutts"
neutts:
ref_audio: ''
ref_text: ''
model: neuphonic/neutts-air-q4-gguf
device: cpu

用例 1:CLI 语音模式

启用语音模式

启动赫尔墨斯:

hermes

进入 CLI 界面:

/voice on

录音流程

默认快捷键:

  • Ctrl+B

操作流程:

  1. 按下 Ctrl+B
  2. 开始说话
  3. 等待静音检测自动停止录音
  4. 赫尔墨斯完成语音识别并作出回应
  5. 若启用了 TTS,将语音播报答案
  6. 循环可自动重启,实现连续使用

实用命令

/voice
/voice on
/voice off
/voice tts
/voice status

优秀的 CLI 工作流

一边走一边调试

说出:

I keep getting a docker permission error. Help me debug it.

然后继续无手操作:

  • “再读一遍上一个错误”
  • “用更简单的语言解释根本原因”
  • “现在告诉我具体的修复方法”

研究 / 创意头脑风暴

非常适合:

  • 边走边思考
  • 口述尚未成型的想法
  • 让赫尔墨斯实时帮你梳理思路

辅助性 / 低输入量会话

当打字不便时,语音模式是保持完整赫尔墨斯工作流最快的方式之一。

调整 CLI 行为

静音阈值

如果赫尔墨斯启动/停止过于敏感,可调整:

voice:
silence_threshold: 250

数值越高,灵敏度越低。

静音持续时间

如果你在句子间停顿较多,可增加:

voice:
silence_duration: 4.0

录音快捷键

如果 Ctrl+B 与你的终端或 tmux 快捷键冲突:

voice:
record_key: "ctrl+space"

用例 2:Telegram 或 Discord 中的语音回复

此模式比完整语音频道更简单。

赫尔墨斯仍作为普通聊天机器人运行,但可发送语音回复。

启动网关

hermes gateway

开启语音回复

在 Telegram 或 Discord 中:

/voice on

/voice tts

模式说明

模式含义
off仅文本回复
voice_only仅当用户发送语音消息时才回复语音
all每次回复都以语音形式输出

何时使用哪种模式

  • /voice on:仅希望对语音消息进行语音回复
  • /voice tts:希望始终作为全语音助手使用

优质消息工作流

手机上的 Telegram 助手

适用于:

  • 远离电脑时
  • 发送语音便条并获得快速语音回复
  • 让赫尔墨斯像随身的研究或运维助手一样工作

带语音输出的 Discord 私聊

适合需要私密互动,避免服务器频道提及行为的场景。

用例 3:Discord 语音频道

这是最高级的模式。

赫尔墨斯加入 Discord 语音频道,监听用户发言,将其转录,执行标准代理流程,并将回复以语音形式返回到频道中。

必需的 Discord 权限

除了常规文本机器人设置外,请确保机器人拥有:

  • 连接(Connect)
  • 发言(Speak)
  • 推荐开启“使用语音活动”(Use Voice Activity)

同时在开发者门户中启用特权意图:

  • 状态意图(Presence Intent)
  • 服务器成员意图(Server Members Intent)
  • 消息内容意图(Message Content Intent)

加入与离开

在机器人所在的 Discord 文本频道中输入:

/voice join
/voice leave
/voice status

加入后的行为

  • 用户在语音频道中发言
  • 赫尔墨斯检测语音边界
  • 转录内容发布到关联的文本频道
  • 赫尔墨斯以文字和语音形式回复
  • 文本频道即为发出 /voice join 命令的频道

Discord 语音频道使用最佳实践

  • 保持 DISCORD_ALLOWED_USERS 紧凑
  • 初期建议使用专用机器人/测试频道
  • 在尝试语音频道模式前,先验证文本聊天语音模式下的 STT 和 TTS 是否正常工作

语音质量建议

最佳音质设置

  • STT:本地 large-v3 或 Groq whisper-large-v3
  • TTS:ElevenLabs

最佳速度 / 便捷性设置

  • STT:本地 base 或 Groq
  • TTS:Edge

最佳零成本设置

  • STT:本地
  • TTS:Edge

常见故障排除

“未找到音频设备”

请安装 portaudio

“机器人已加入但听不到任何声音”

请检查:

  • 你的 Discord 用户 ID 是否在 DISCORD_ALLOWED_USERS 列表中
  • 你是否被静音
  • 特权意图是否已启用
  • 机器人是否有“连接”和“发言”权限

“能转录但不发声”

请检查:

  • TTS 提供商配置
  • ElevenLabs 或 OpenAI 的 API 密钥/配额
  • Edge 转换路径所需的 ffmpeg 安装

“Whisper 输出乱码”

尝试:

  • 更安静的环境
  • 提高 silence_threshold
  • 更换 STT 提供商/模型
  • 使用更短、更清晰的语句

“在私聊中可用,但在服务器频道中不可用”

这通常与提及策略有关。

默认情况下,机器人在 Discord 服务器文本频道中需要 @mention 才能响应,除非另行配置。

推荐首周设置

如果你希望最快获得成功体验:1. 先让文本模式的 Hermes 正常运行
2. 安装 hermes-agent[voice]
3. 使用 CLI 语音模式,搭配本地 STT + Edge TTS
4. 然后在 Telegram 或 Discord 中启用 /voice on
5. 只有完成以上步骤后,再尝试 Discord 语音聊天模式

按照这个顺序操作可以保持调试范围最小。

接下来阅读