跳到主要内容

在 Hermes 中使用语音模式

本指南是 语音模式功能参考 的实用伴侣。

如果功能页面解释语音模式可以做什么,本指南展示如何实际使用它。

语音模式适合做什么

语音模式特别适合:

  • 你想要免手持的 CLI 工作流程
  • 你想要在 Telegram 或 Discord 中获得语音回复
  • 你想要 Hermes 坐在 Discord 语音频道中进行实时对话
  • 你想要在走动时快速捕捉想法、调试或来回交流,而不是打字

选择你的语音模式设置

Hermes 中实际上有三种不同的语音体验:

| 模式 | 最适合 | 平台 | | |---|---|---| | | 交互式麦克风循环 | 个人在编码或研究时免手持使用 | CLI | | | 聊天中的语音回复 | 语音回复与正常消息传递并排 | Telegram、Discord | | | 实时语音频道机器人 | VC 中的群组或个人实时对话 | Discord 语音频道 | |

一个好路径是:

  1. 先让文本工作
  2. 第二启用语音回复
  3. 如果你想要完整体验,最后移到 Discord 语音频道

步骤 1:首先确保正常的 Hermes 工作

在触碰语音模式之前,验证:

  • Hermes 启动
  • 你的提供商已配置
  • agent 可以正常回答文本提示
hermes

问一个简单的问题:

What tools do you have available?

如果那个还不稳固,先修复文本模式。

步骤 2:安装正确的额外组件

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]"

步骤 3:安装系统依赖

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 的音素器后端

步骤 4:选择 STT 和 TTS 提供商

Hermes 支持本地和云语音栈。

最简单/最便宜的设置

使用本地 STT 和免费 Edge TTS:

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

这通常是最好的起点。

环境文件示例

添加到 ~/.hermes/.env

# 云 STT 选项(本地不需要密钥)
GROQ_API_KEY=***
VOICE_TOOLS_OPENAI_KEY=***

# 高级 TTS(可选)
ELEVENLABS_API_KEY=***

提供商推荐

语音转文本

  • local → 隐私和零成本使用的最佳默认
  • groq → 非常快速的云转录
  • openai → 不错的付费备选

文本转语音

  • edge → 对大多数用户免费且足够好
  • neutts → 免费本地/设备上 TTS
  • elevenlabs → 最佳质量
  • openai → 不错的中间地带
  • mistral → 多语言,原生 Opus

如果你使用 hermes setup

如果你在设置向导中选择 NeuTTS,Hermes 检查 neutts 是否已安装。如果缺失,向导告诉你 NeuTTS 需要 Python 包 neutts 和系统包 espeak-ng,提供为你安装它们,安装 espeak-ng 和你的平台包管理器,然后运行:

python -m pip install -U neutts[all]

如果你跳过该安装或失败,向导回退到 Edge TTS。

步骤 5:推荐配置

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:

hermes

在 CLI 内:

/voice on

录制流程

默认键:

  • Ctrl+B

工作流程:

  1. Ctrl+B
  2. 说话
  3. 等待静默检测自动停止录制
  4. Hermes 转录并回复
  5. 如果 TTS 开启,它会说答案
  6. 循环可以自动重启以便连续使用

有用的命令

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

好的 CLI 工作流程

走动调试

说:

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

然后继续免手:

  • "Read the last error again"
  • "Explain the root cause in simpler terms"
  • "Now give me the exact fix"

研究/头脑风暴

非常适合:

  • 走动时思考
  • 口述半成形的想法
  • 让 Hermes 实时结构化你的想法

无障碍/低打字会话

如果打字不方便,语音模式是保持在完整 Hermes 循环中最快的方式之一。

调整 CLI 行为

静默阈值

如果 Hermes 开始/停止太激进,调整:

voice:
silence_threshold: 250

阈值越高越不敏感。

静默持续时间

如果你在句子之间经常停顿,增加:

voice:
silence_duration: 4.0

录制键

如果 Ctrl+B 与你的终端或 tmux 习惯冲突:

voice:
record_key: "ctrl+space"

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

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

Hermes 保持为普通聊天机器人,但可以说话回复。

启动 gateway

hermes gateway

开启语音回复

在 Telegram 或 Discord 内:

/voice on

/voice tts

模式

| 模式 | 含义 | | |---|---| | | off | 仅文本 | | | voice_only | 仅在用户发送语音时说话 | | | all | 每次回复都说话 | |

何时使用哪种模式

  • 如果你只想在语音来源的消息时获得语音回复,使用 /voice on
  • 如果你想要全时的语音助手,使用 /voice tts

好的消息工作流程

手机上的 Telegram 助手

使用当:

  • 你不在电脑旁
  • 你想发送语音笔记并获得快速语音回复
  • 你希望 Hermes 像便携式研究或运营助手一样运作

Discord DM 与语音输出

当你想要私人互动而不需要服务器频道提及行为时有用。

用例 3:Discord 语音频道

这是最高级的模式。

Hermes 加入 Discord VC,监听用户语音,转录它,运行正常 agent 流水线,然后将回复语音到频道。

所需的 Discord 权限

除了正常的文本机器人设置外,确保机器人有:

  • 连接
  • 说话
  • 最好使用语音活动

还在开发者门户启用特权 intents:

  • Presence Intent
  • Server Members Intent
  • Message Content Intent

加入和离开

在机器人存在的 Discord 文本频道中:

/voice join
/voice leave
/voice status

加入时发生什么

  • 用户在 VC 中说话
  • Hermes 检测语音边界
  • 转录发布在关联的文本频道
  • Hermes 以文本和音频回复
  • 文本频道是发出 /voice join 的频道

Discord VC 使用最佳实践

  • 保持 DISCORD_ALLOWED_USERS 严格
  • 首先使用专用机器人/测试频道
  • 在尝试 VC 模式之前在普通文本聊天语音模式下验证 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
  • 你没有静音
  • 特权 intents 已启用
  • 机器人有连接/说话权限

"它转录但不说话"

检查:

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

"Whisper 输出垃圾"

尝试:

  • 更安静的环境
  • 更高的 silence_threshold
  • 不同的 STT 提供商/模型
  • 更短、更清晰的表述

"在 DM 中工作但不在服务器频道中工作"

这通常是提及策略。

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

建议的第一周设置

如果你想要最短的成功路径:

  1. 让文本 Hermes 工作
  2. 安装 hermes-agent[voice]
  3. 使用本地 STT + Edge TTS 的 CLI 语音模式
  4. 然后在 Telegram 或 Discord 中启用 /voice on
  5. 只有在那之后,尝试 Discord VC 模式

这个进度保持了调试面小。

接下来阅读的地方