需求从哪来

一个很真实的场景——家里老人已经在用豆包了,因为说说话就能交互。而 OpenClaw 虽然功能强大、能控制各种工具,但对老花眼的用户来说,打字交互就是个硬伤。

这个需求本质上是:如何给 OpenClaw 加一层语音接口,让它既保留强大的工具调用能力,又能通过语音完成交互。

架构选择:不造轮子,找现成的

在这个普通人 30 分钟就能用 AI 写一个项目的时代,语音接入这种功能大概率已经有人做了。关键是怎么找到靠谱的方案。

两个思路:

  • 搜索驱动:用 openclaw + voice 关键词搜索,能找到不少相关项目
  • 积累驱动:如果平时关注 voice AI agents 领域,会知道一些成熟的框架

经过对比,最终选择了 star 数较多的 TEN Framework。选它的理由很实际:

  1. 文档完善,部署流程清晰,几乎不用写代码
  2. OpenClaw 更新频繁,可能几天前的代码就过时了,而 TEN Framework 的维护比较活跃

需要注册的四个服务

整个方案需要四个外部服务配合,除了 DeepSeek 需要少量充值,其他都有免费额度。

DeepSeek(LLM 大模型)

国内直连,兼容 OpenAI 接口,价格大约是 OpenAI 的 1/50。

  1. 打开 DeepSeek 开放平台,用手机号或邮箱注册
  2. 登录后点击左侧「费用(Billing)」,最低充值 ¥2,充 ¥10 能用很久
  3. 点击左侧「API Keys」,创建并立即复制保存——只显示一次

Deepgram(语音识别 STT)

用于将用户语音实时转为文字。

  1. 打开 Deepgram 控制台,支持 Google / GitHub 登录或邮箱注册
  2. 进入控制台,点击左侧「API Keys」→「Create a New API Key」
  3. 填写名称(如 openclaw),权限选 Member 或 Admin
  4. 立即复制保存——页面关闭后无法再查看

新账号赠送 $200 免费额度,不需要绑信用卡,个人测试用很久。

ElevenLabs(语音合成 TTS)

用于将 AI 回复的文字转为语音播报。

  1. 打开 ElevenLabs,支持 Google / GitHub 登录或邮箱注册
  2. 登录后,点击左侧边栏最下面的「Developers」→「API Keys」
  3. 创建 API Key,权限建议全部打开(Access / Write)
  4. 立即复制保存

免费计划每月 10,000 字符的语音合成额度,包含 API 访问权限,测试够用。

Agora(实时音视频 RTC)

用于浏览器与 AI 助手之间的实时音视频通信。

  1. 打开 Agora 控制台,注册并登录
  2. 进入「项目管理」→「创建项目」,填写项目名称(如 openclaw-voice
  3. 使用场景选「互动直播」或「语音通话」,鉴权机制选「安全模式」
  4. 创建完成后,复制 App ID 和主要证书
  5. 在项目详情中,进入 Signaling 选择数据中心并开启信令服务(RTM)

每月 10,000 分钟免费使用,个人测试完全够用。

项目配置

克隆项目

将 TEN Framework 项目整体克隆下来:

git clone https://github.com/TEN-framework/ten-framework

环境变量配置

参考 ai_agents/agents/examples/openclaw-example 里面的 README,在 ai_agents/ 下创建 .env 文件,填入上面获取的各项 API Key。

OpenClaw 配置

这一步容易踩坑,需要注意两件事:

  1. 将 OpenClaw 的网关改成密码模式
  2. 配置 Control UI Allowed Origins:在 OpenClaw 的 Settings → Gateway → Control UI Allowed Origins 中添加:
http://host.docker.internal:18789

这个值必须与 .env 中的 OPENCLAW_GATEWAY_ORIGIN 完全一致,包括协议 http://——不能写成 wss://,不能带路径。如果不匹配,Gateway 会拒绝连接并返回 origin not allowed

修改配置适配中文

为了方便中文用户使用,需要修改 ai_agents/agents/examples/openclaw-example/tenapp/property.json,共 4 处改动:

  • STT 语言:en-USzh,模型:nova-3nova-2
  • LLM base_url:从硬编码的 https://api.openai.com/v1${env:OPENAI_API_BASE}
  • LLM model:从硬编码的 gpt-4o${env:OPENAI_MODEL}

这样做的目的是让语音识别支持中文转录,同时通过环境变量灵活配置国内模型。

构建与运行

Mac ARM 架构注意事项

这个项目不支持 ARM64 架构,Mac 用户需要在 Docker 中开启虚拟化:

  1. 打开 Docker Desktop → Settings → General
  2. 找到 Virtual Machine Options
  3. VMM 选择「Apple Virtualization framework」
  4. 勾选「Use Rosetta for x86_64/amd64 emulation on Apple Silicon」
  5. 点击 Apply & Restart

启动项目

  1. 保持 OpenClaw 开启(想看网关日志的话,推荐查看日志输出)
  2. 运行容器
  3. 访问 http://localhost:3000,按照界面提示复制配对命令并运行

开始使用

进入界面后:

  1. 选择麦克风
  2. 选择配置 voice-assistant
  3. 检查是否联通

一切就绪后,直接开口说话就行。比如让它在桌面创建一个文件,口述需求即可完成。

写在最后

接入语音对话后,OpenClaw 的使用门槛大幅降低。对于不懂技术的普通用户来说,"开口就能干活"才是真正的好用。

这个方案的组合思路值得借鉴:不自己从零开发语音功能,而是用成熟的 Voice AI 框架桥接现有工具。同样的思路可以推广到其他 AI Agent 的语音化改造——找到合适的中间层,往往比自己造轮子更高效。如果你身边也有非技术用户想用上 AI 的能力,语音接入是一个投入产出比很高的方向。