Skip to content

WhatsApp 语音消息绕过 STT 转录管道

问题

WhatsApp 私信中的语音消息以原始 <media:audio> 占位符到达 agent,没有任何转录尝试,即使 Groq Whisper 等 STT 提供商已正确配置。

根本原因:WhatsApp 的入站处理缺少预先转录步骤。与 Telegram(在 #61008 中获得了 transcribeFirstAudio 调用)不同,WhatsApp 的 process-message.ts 直接使用 msg.body = "<media:audio>" 构建入站消息,并没有在将上下文发送给 agent 之前替换掉语音占位符。

解决方案

目前的状态(截至 v2026.4.12):官方修复在 PR #64120 中,尚未合并,v2026.4.12 仍有此问题。

临时解决方案(直到官方修复发布)

方法一:在 system prompt 中告知 agent 如何处理 <media:audio> 占位符,让 agent 主动要求用户文字转述语音内容。

方法二:如果你的 STT 配置正确但 WhatsApp 仍不转录,考虑改用 Telegram 渠道接收需要语音转录的消息——Telegram 渠道已有完整的 STT 管道支持。

验证 STT 配置

在 Telegram 上发一条语音消息,确认 STT 工作正常:

bash
openclaw logs --follow

如果 Telegram 语音能转录但 WhatsApp 不能,则是本 issue 的问题,等待 PR #64120 合并即可。