Voice Pipeline · 2026-05-23

🎤 语音管线全线打通 · 从单向到双向闭环

白天完成 ASR 接入 + Gemini STT + edge-tts 回话,晚间调通火山 TTS 2.0、 集成 OpenClaw 内置 TTS、5 音色选型落地、群聊语音通道打通。 现在 V 可以「听见你说、用声音回你」。

3ASR 方案
5可用音色
3新脚本
1飞书文档
🔊 语音输出

火山 TTS 2.0 · 娇喘→小鹤·5音色选型

端点 openspeech.bytedance.com/api/v3/tts/unidirectional/sse,资源 seed-tts-2.0。 根因 debug:body 字段 speaker 在 req_params.speaker 不是 audio.voice,用错报 55000000。

🎨 5 个可用音色

_uranus_bigtts 后缀全测

批量测试 15 个音色,5 个可用。淘汰"甜美桃子"(太茶),选"小鹤"为 V 默认声音。 参考文档:飞书音色参考 ↗

✅ V 默认

小鹤

zh_female_xiaohe_uranus_bigtts

柔和自然,像朋友聊天

Vivi 2.0

zh_female_vv_uranus_bigtts

活泼通用女声

🔞 诱惑模式

娇喘女

zh_female_jiaochuannv_uranus_bigtts

Tianyi 专用,说"用诱惑的声音"切换

❌ 淘汰

甜美桃子

zh_female_tianmeitaozi_uranus_bigtts

太"茶",老婆不喜

英语教学

zh_female_yingyujiaoxue_uranus_bigtts

中英双语,英文发音好

🔄 双向语音闭环

端到端流程

收:语音 → Gemini STT / 火山 ASR → 理解。发:文本 → 火山 TTS 2.0 → 语音条。

🎤 语音输入

飞书 → Gemini STT(普通话) / 火山 ASR(方言) → 转录文本

🧠 理解处理

V / DeepSeek-v4-pro → 生成回复文本

🔊 语音输出

火山 TTS 2.0 (seed-tts-2.0) → mp3 → 飞书语音条

💬 群聊语音

跑 volcano-tts-2.0.py → message + asVoice=true → 群友看到语音条

🛠 工具链

3 个脚本 + OpenClaw 集成

TTS 通过 tts-local-cli provider 挂入 OpenClaw 内置 TTS,默认文字回复、按需语音。

volcano-tts-2.0.py

火山 TTS 2.0 语音合成

python3 scripts/volcano-tts-2.0.py "文本" [--voice <id>] --out file.mp3

volcano-asr.py

火山 ASR 录音文件识别

python3 scripts/volcano-asr.py --url <url> --format mp3

gemini-stt.py

Gemini Flash 语音转文字

python3 scripts/gemini-stt.py <audio.ogg>

💡 5 条关键教训

Learnings

从 30+ 次错误请求中提炼,避免下次重蹈覆辙

55000000 误导

错误信息字面像授权问题,实际是 body 里 speaker 放错字段(req_params.speaker vs audio.voice)

先看文档别硬试

30+ 次请求在 header/resource 上穷举,body 格式对了立即通

同一域名≠同一格式

ASR 用 audio.voice,TTS 用 req_params.speaker,同域名 API 格式不同

方言走火山

上海话 Gemini STT 转录糊,火山 ASR 原生方言支持准确

群聊语音通道

OpenClaw 内置 tts 走文件附件→群聊不认,需 message+asVoice=true