Skip to content

OpenClaw 语音交互完整踩坑:本地STT+TTS实现Telegram语音聊天

2026年4月20日

OpenClaw 语音交互完整踩坑:本地STT+TTS实现Telegram语音聊天

让本地部署的OpenClaw在Telegram上实现真正的语音交互:用户发语音消息,它能听懂并用语音回复。完全本地、免费方案。


一、STT语音识别:相对顺利

方案选择

组件选择
框架mlx-whisper(Apple官方MLX框架)
模型whisper-large-v3-turbo
硬件M3 24GB

STT Wrapper脚本

bash
#!/bin/bash
INPUT="$1"
export PATH="/Users/zz/.local/bin:/opt/homebrew/bin:$PATH"

mlx_whisper "$INPUT" \
  --model mlx-community/whisper-large-v3-turbo \
  -f txt \
  --output-dir /tmp \
  --output-name transcript_$$ 2>/dev/null

cat /tmp/transcript_$$.txt 2>/dev/null | sed 's/\[[0-9:. ]*--> [0-9:. ]*\] //g'
rm -f /tmp/transcript_$$.txt 2>/dev/null || true

OpenClaw STT配置

bash
openclaw config set tools.media.audio.models '[
  {
    "type": "cli",
    "command": "bash",
    "args": [
      "/Users/zz/.openclaw/scripts/mlx-whisper-transcribe.sh",
      "{{MediaPath}}"
    ],
    "timeoutSeconds": 90
  }
]'

二、TTS语音合成:真正的地狱

核心矛盾

问题说明
STT支持CLI方式,灵活
TTS支持只支持elevenlabs/microsoft/minimax/openai四种provider
格式冲突免费Microsoft Edge-TTS只输出MP3,Telegram语音泡必须是OGG/Opus

踩坑一周的发现

误判:以为是ffmpeg转码问题

真相:macOS自带的afplay对OGG/Opus支持有bug,错误判断结束时间导致播放截断

验证:用ffplay播放同一个文件,完整播放


三、最终解决方案

本地代理服务器架构

OpenClaw请求 → 本地代理服务器 → Microsoft TTS生成MP3 → ffmpeg转OGG → 返回

关键点

要点说明
用ffplay测试不用afplay验证
ffmpeg转码MP3→OGG/Opus
Telegram格式必须是OGG/Opus

总结

阶段状态
STT顺利,mlx-whisper方案成熟
TTS踩坑一周,afplay bug是元凶
最终本地代理+ffmpeg转码解决

一句话总结:STT用mlx-whisper顺利搞定,TTS踩坑发现afplay对OGG有bug,最终用本地代理服务器+ffmpeg转码实现Telegram语音回复。

不要孤军奋战啦!

加入微信群一起学习交流 AI

与大神一起使用 OpenClaw、Hermes、Claude Code、Seedance 2.0、GPT-Image-2 等

微信公众号

扫码关注微信公众号
私信 "加群",将自动获取微信群二维码

探索 AI 世界,掌握智能未来