
有那么一瞬间,我真的会恍惚。
飞书里弹出一条语音,我点开,听见的是我自己的声音。
不是录音转发,不是预设音色,也不是那种一听就知道是机器合成的“假人声”。它会按我刚刚说话的节奏、语气,重新把一段新内容讲出来。慢一点、甜一点、自然一点,都能继续调。
更关键的是,整个过程不是“我去学一个新工具”,而是“我继续聊天”。
我只是把一段语音发给我的 OpenClaw,再说一句:就用这个声音,以后这样跟我讲话。
它就真的记住了。

这篇文章想讲的,不是语音克隆技术原理有多复杂,而是另一件更重要的事:
我的Agent开始有“声音人格”了。
当它不只是给你一段文字,而是用你熟悉的声音、熟悉的语气回你,交互体验会突然往前跳一大步。
而做到这一步,实际比想象中简单很多。
这套东西,底层只需要三样
先把链路说透,其实非常简单:
1. Noiz AI:负责声音克隆和语音合成 2. Noiz API Token:让 Agent 能直接调用它 3. OpenClaw Agent:负责接收你的语音、调 API、再把结果发回给你
换句话说,不是我手动去 Noiz 网站上传、试听、下载,再手动发回飞书。
而是 Agent 在背后把整条链路全接上了:
我发语音 → Agent 拿语音样本 → 调 Noiz → 生成新语音 → 直接发回聊天窗口。
所以它的体验不像“用工具”,更像“多了一个真的会说话的助手”。
第一步:注册 Noiz,拿 API Token
这一步最没门槛。
打开 noiz.ai,用 Google 账号登录。进去以后到设置页,找到 API Keys,新建一个 Token。
复制出来,后面要给 Agent 用。
Noiz 有免费额度,拿来做日常对话测试完全够。真要长期用,它的付费门槛也不高,Starter 档是 $3.9/月。
对这种“高频小交互”的场景来说,已经很友好了。
第二步:把 Token 塞给 Agent
如果你用的是 OpenClaw,配置基本只有一行:
# ~/.openclaw/.envNOIZ_API_KEY=你的token就这样。
写完以后,Agent 就拥有了调用语音服务的能力。严格说,不是它“学会说话”了,而是它终于拿到了声带。
这一点很关键。
因为很多人会把 AI 语音理解成一个单独 App:你得专门打开网页、粘贴文本、选音色、再点生成。
但 Agent 化之后,语音不是一个独立工具,而是聊天能力的一部分。
第三步:真正有意思的地方,是“对话式调音”
配置完以后,最顺手的不是一次性生成,而是边聊边调。
我的真实过程大概是这样:
我:帮我克隆一下我的声音,用这段语音做样本 (发送一段 10~30 秒的语音)Agent:收到,我先用这段样本试一版。我:有点快,慢一点。Agent:好,我把 speed 调低一点。我:再甜一点,再自然一点。Agent:那我加一点 Joy,再压一点速度。你听这版。我:对,这个味道对了。以后默认就用这个。Agent:记住了,之后都按这个参数回复你。这就是我觉得最妙的地方。
你不是在操作一个复杂系统,而是在训练一个会说话的助手。
你不需要理解一堆参数名,也不需要先研究文档。你只要像平时一样给反馈:
• 太快了 • 太平了 • 再有感情一点 • 这个版本像我了 • 以后就按这个来
Agent 会把这些自然语言反馈翻译成具体参数,然后替你重试。
这个体验,跟过去那种“手调配置面板”的感觉完全不一样。
它背后实际干了什么?
表面上你只是发了一条语音,背后 OpenClaw已经把几件事都做完了:
1. 收到你的语音消息 2. 自动转成 Noiz 更适合处理的音频格式 3. 把参考音频、文本和情感参数一起发给 Noiz API 4. 拿到返回的语音文件 5. 直接把这段语音塞回飞书对话
如果你想看最核心的调用,其实就是一个 curl:
curl -H "Authorization: $NOIZ_API_KEY" \ -F "text=你想让克隆声音说的话" \ -F "file=@你的语音样本.wav" \ -F "output_format=opus" \ -F "speed=0.9" \ -F 'emo={"Joy":0.4,"Excitement":0.1}' \ "https://noiz.ai/v1/text-to-speech" \ -o output.opus真正的价值不在于这条命令本身,而在于:
你以后甚至不用再看这条命令。
因为 Agent 已经替你记住了。
飞书里能不能直接收到语音?能,但我踩了个坑
这件事我一开始以为会很顺。
Noiz 负责生成音频,OpenClaw 负责发消息,听起来像是天然闭环。
结果真正卡住我的,不是语音生成,而是文件路径。
OpenClaw 的飞书发送接口对本地文件有白名单限制。generated 音频如果放在 /tmp 这种目录里,消息会直接失败,报错:
LocalMediaAccessError: path-not-allowed解法其实也不复杂:
把生成的音频放进 OpenClaw 的 workspace 目录下。
比如:
~/.openclaw/workspace/temp/reply.opus只要路径对了,飞书里就能直接收到一条可以播放的语音消息。
这类坑很典型:真正麻烦的,从来不是模型本身,而是工程链路最后那一厘米。
哪组参数最好听?我最后留下了这一组
我前后试了很多版,最后保留的是这组:
| 日常对话(推荐) | |||
如果只给一句经验总结,那就是:
• 中文语速往下压一点更自然, 0.9基本是甜点位• Joy 在 0.2 ~ 0.5 之间最实用 • 情感一旦堆太高,声音就容易“演过了”
很多 AI 语音的问题不是不像人,而是太努力像人,最后反而更假。
真正好听的版本,通常不是最热闹的那版,而是你听着不出戏、愿意一直听下去的那版。
另外两个很容易踩的坑
1)样本别超过 30 秒
Noiz 对参考音频长度有限制,超过 30 秒会报错。
所以最稳的做法不是硬塞一大段,而是挑一段 10 到 30 秒之间、语气变化比较丰富 的样本。最好既有陈述句,也有一点轻微的疑问和起伏。
我最后用的是一段 28 秒的样本,效果明显比更短的版本自然。
2)默认语速通常偏快
这几乎是所有中文 TTS 都有的通病。
你第一耳听会觉得“挺流畅”,但多听几句就会发现:像在赶路,不像在说话。
所以如果你打算做陪伴感、聊天感、助手感,建议先别从默认参数开始,直接把速度调到 0.9 再听。
通常会舒服很多。
为什么这件事让我觉得很不一样?
因为它改变的不是“声音效果”,而是交互关系。
以前 AI 给我的是文本,我看到的是答案。
现在 AI 给我的是语音,而且是一个我熟悉、能持续微调、会逐渐贴近我偏好的声音。
这意味着它开始从“工具输出”变成“陪伴式反馈”。
差别很大。
文字回复是有效率的。
语音回复是有在场感的。
而当这个声音还是“你自己的声音风格”时,那种贴身感会再往前走一步。
我觉得这很可能会变成下一阶段 AI Agent 的一个分水岭:
不是它会不会做事,而是它会不会以一种更像“你的人”的方式跟你协作。
至少对我来说,这已经不是炫技了。
它开始真的有用了。
工具链:
• Noiz AI:https://noiz.ai • OpenClaw:https://github.com/openclaw/openclaw
夜雨聆风