如何为 OpenClaw 添加语音功能,支持 TTS、STT 和通话模式?
最简洁的方案是将网关部署在你需要稳定性的地方,例如服务器,然后将麦克风部分部署在与之配对的设备(macOS、iOS、Android)上。当收到包含音频的邮件时,OpenClaw 会先选择第一个符合条件的附件,然后检查大小限制,再按顺序尝试各种模型,直到找到一个可用的为止。这就是“语音命令”的由来,因为转录文本可以包含斜杠命令,这些命令的行为就像你手动输入的一样。“为 OpenClaw 添加语音功能
“为 OpenClaw 添加语音功能”听起来像是一个单一的功能,但当你尝试设置时就会发现,它实际上是由三个独立的部分组成的,而这三个部分恰好相邻。
TTS(文本转语音)让 OpenClaw 发出回复。STT (语音转文本) 将语音消息转换为文本,以便智能体可以对其进行处理。而实时对话则是人们期望在“对话模式”中看到的持续的“聆听 >> 思考 >> 说话”循环。如果尽早将这些功能分开,就能省去之后数小时的调试时间……
如果您是 OpenClaw 的新手,这里简要介绍一下OpenClaw 的基本概念和工作原理。如果您已经在使用 OpenClaw 并且熟悉相关技能,那么您也会喜欢OpenClaw 的技能指南,因为语音功能最终也是“配置+工具+习惯”的组合,就像技能一样。
OpenClaw 中的“语音”是什么意思
在配置块和提供程序之前,明确哪些内容在哪里运行会很有帮助。
TTS 出站
OpenClaw 生成文本回复,然后由 TTS 服务提供商将该文本转换为音频文件。这在笔记本电脑、家用服务器或 VPS 上都能正常运行,因为它只需要进行数据处理和 API 调用。
STT 正在入站
你发送语音消息或音频文件,OpenClaw 会将其转录。然后,它会将转录文本视为消息正文。这就是“语音命令”的由来,因为转录文本可以包含斜杠命令,这些命令的行为就像你手动输入的一样。
实时对话是节点的一项功能
想要获得真正的“麦克风已开启、可对讲、如果我开始说话就打断我”的体验,你需要一台同时具备麦克风和扬声器的设备。最简洁的方案是将网关部署在你需要稳定性的地方,例如服务器,然后将麦克风部分部署在与之配对的设备(macOS、iOS、Android)上。这是最实用的方法,无需费力地将音频硬件硬塞进一个没有音频头的盒子里。
语音转文字语音命令
这是大多数用户真正会持续使用的功能。你可以发送一条语音消息,内容是“重启服务并告诉我哪里出了问题”,这条消息会以文本形式显示在会话中,并遵循与普通聊天相同的命令解析规则。
在 OpenClaw 中,这是在tools.media.audio.~/.openclaw/openclaw.json官方参考资料中配置的。
音频管道的运行方式
当收到包含音频的邮件时,OpenClaw 会先选择第一个符合条件的附件,然后检查大小限制,再按顺序尝试各种模型,直到找到一个可用的为止。这些模型包括托管提供程序和本地 CLI。如果第一个模型失败,它会继续尝试下一个。
成功后,OpenClaw 会保留语音记录作为{{Transcript}}模板和格式设置,并使用该记录进行命令解析。因此,在语音留言中说“slash 提醒我明天 9 点”的效果与输入文字相同。
合理的生产模式链
我更喜欢选择带有命令行界面 (CLI) 备用方案的服务提供商。服务提供商通常能快速处理大多数情况,而备用方案则能在服务中断或速率限制时保护您。以下是一个简单的示例,您可以复制并进行调整。
{
"tools": {
"media": {
"audio": {
"enabled": true,
"maxBytes": 20971520,
"models": [
{ "provider": "openai", "model": "gpt-4o-mini-transcribe" },
{
"type": "cli",
"command": "whisper",
"args": ["--model", "base", "{{MediaPath}}"],
"timeoutSeconds": 45
}
]
}
}
}
}
几点小提示可以避免后续的麻烦。请确保网关用户可以在 PATH 环境变量中运行 CLI。另外,如果会议时间过长或语音笔记内容冗长,建议设置转录文本的字数上限。过大的转录文本会迅速占用大量上下文窗口空间。
范围规则——防止陌生人浪费您的单次通话预算
如果你在公共频道中使用 OpenClaw,就需要设置一些限制。这款音频工具支持范围控制,你可以禁止群聊或只允许私信。即使是个人设置,这一点也很重要,因为人们可能会忘记在群组中启用语音,结果你突然要转录几分钟的无意义对话。
{
"tools": {
"media": {
"audio": {
"enabled": true,
"scope": {
"default": "deny",
"rules": [
{ "action": "allow", "match": { "chatType": "private" } }
]
}
}
}
}
}
如果想在服务器上运行 OpenClaw 以确保正常运行时间,请务必加强服务器安全。即使您的“VPS”只是机架上您控制的一台机器,在 VPS 上安全托管 OpenClaw的检查清单仍然适用。此外,如果您的配置可以读取文件和执行命令,您还应该快速浏览一下OpenClaw 的安全最佳实践。
文本转语音功能让 OpenClaw 朗读回复
TTS 位于messages.tts同一个配置文件中。权威参考资料是OpenClaw TTS。
默认情况下,文本转语音 (TTS) 功能是关闭的。启用后,您可以选择触发时机和使用的语音转语音服务提供商。“何时触发”这个选项比人们想象的更重要,因为每次回复都自动播放 TTS 功能很快就会让人感到厌烦,而且费用也会迅速增加。
选择一种与您实际说话方式相匹配的TTS模式
这些才是实际应用中真正重要的模式。
- 关闭自动TTS功能,仅限手动使用。
- 仅当用户先发送语音请求时,系统才会响应。
- 如果您想选择接收特定回复,请勾选此标签。
- 如果你真的希望每个回复都能被听到,那就一定要这样做。
我默认推荐使用语音通话。它感觉很自然,避免了在聊天应用中频繁发送语音信息,而且还能在不知不觉中控制成本。
提供商选择和最小配置
OpenClaw 支持多种 TTS 提供商,具体取决于您的配置。如果您已经拥有 OpenAI 密钥,并且希望设置最简单,那么就从 OpenAI 开始。如果您想要类似“助手语音”的效果,并且注重表达力,那么 ElevenLabs 通常是首选。某些配置还会使用 Edge TTS 作为无密钥的基准方案。
{
"messages": {
"tts": {
"auto": "inbound",
"provider": "openai",
"openai": {
"model": "gpt-4o-mini-tts"
},
"maxTextLength": 4000,
"timeoutMs": 30000
}
}
}
如果您启用了文本转语音功能 (TTS),并且还发送了很长的堆栈跟踪或日志,请务必认真考虑最大文本长度限制。朗读 300 行的跟踪信息毫无帮助。此外,这样做还会增加延迟,然后您开始责怪服务器,而实际上问题出在您的配置上。
Telegram 和 WhatsApp 语音留言
大多数消息渠道会将“音频文件”和“语音消息”视为不同的格式,即使它们都是音频文件。OpenClaw 的渠道支持文档已在功能页面中列出。如果您正在构建多通道路由,则您的 STT 设置和 TTS 规则应在所有连接器中保持一致, OpenClaw 多通道设置中的路由指南对此有所帮助。
在线聊天模式及其通常位于节点上的原因
人们尝试在服务器上使用“实时麦克风”功能,结果总是一团糟。这并非因为功能无法实现,而是因为服务器并非管理麦克风权限和扬声器输出的合适场所。
OpenClaw 的方案是将一个节点设备与网关配对,节点设备负责处理麦克风回路,网关则负责处理模型调用和工具。文档在“语音唤醒”部分对此进行了详细说明,这可以说是目前最接近跨设备“通话模式”的简洁工作流程。
保持稳定的模式
- 在任何需要稳定性的地方运行 OpenClaw 网关
- 将节点与带有麦克风和扬声器的设备上的节点配对
- 启用节点上的语音唤醒或通话功能,以便节点可以监听并进行回复。
一旦你尝试过,它的优势就显而易见了。你的音频体验将保持本地化和流畅。你的网关将保持无头和简洁,而这正是你想要的。
实际的入职流程以及提示的含义
如果您使用的是安装程序或模板,通常会在安装初期看到技能提示。虽然它并非直接与“语音”相关,但它是同一安装流程的一部分,因为语音功能依赖于某些依赖项。如果您看到“立即配置技能”的提示,除非您有特殊原因,否则我建议您选择“是”。

在 macOS 上,你经常会看到 Homebrew 被推荐用于安装依赖项。这很正常。而在 Linux 上,你会看到系统软件包和语言工具链。真正的目的很简单:安装你启用的工具所需的全部组件,这样你就不会发现一半的技能列表缺少必要的依赖项。

如果接受提示,您将看到安装命令。再次强调,命令本身并不重要,重要的是养成习惯:当您的安装程序提示“缺少依赖项”时,它是在告诉您为什么某个工具无法运行。

然后你会看到一份缺失依赖项的列表。不要盲目地安装所有依赖项,只安装你实际需要的。如果你要添加语音功能,那就重点关注音频工具以及你依赖的任何提供商命令行界面 (CLI)。

远程服务器上的控制用户界面问题
这个问题容易让人误以为是“OpenClaw 出问题了”,但实际上是“你的浏览器拒绝进行加密”。如果你通过远程 IP 地址上的纯 HTTP 协议打开控制面板,某些浏览器会将其视为不安全环境,并阻止用于设备身份验证的 WebCrypto 功能。这会导致配对或身份验证错误,而且这些错误看起来似乎是随机发生的。
长远解决方案是为控制界面使用 HTTPS。OpenClaw 在“控制界面安全上下文”文档中记录了此行为和安全上下文预期。
如果你使用的是VPS
并非所有人都需要VPS。很多人乐于在本地运行OpenClaw。如果您注重正常运行时间、稳定的路径、可预测的依赖关系,以及防止机器人令牌泄露到您的个人笔记本电脑上,那么服务器就很有吸引力了。如果您的情况正是如此,我们关于OpenClaw VPS托管的 文章将为您展示在Ubuntu 24.04上的快速部署方案。
如果你的确是在服务器上运行它,请为语音合成(STT)设置成本控制,并将文本转语音(TTS)保持在入站或标记模式,直到你确定自己喜欢听机器人说话为止。这听起来显而易见,但很多人会忽略这一点,然后纳闷为什么他们的月账单看起来很奇怪。
我的“免后悔清单”
这些都是我尽量提前做好的事情,这样我就不会在半夜重写配置了。
- 首先是STT,因为语音命令是日常使用的功能。
- 设置范围规则,防止群聊变成音频洪流。
- 启用语音转语音功能,这样只有在您使用语音通话时才能听到语音回复。
- 始终保留文本回退机制,以便在服务提供商故障时回复仍然有效。
- 使用节点进行实时麦克风传输,因为服务器的计算能力很强,但作为麦克风却很糟糕。
依我之见,就是这样。先把这三层分开,把它们连接好,然后就可以在不破坏基本结构的前提下调整语音和提供商了。
更多推荐


所有评论(0)