语音转录
使用 OpenAI Whisper 自动转录语音消息。你的智能体以文本形式阅读语音留言。
功能特性
- 自动转录 WhatsApp 语音消息
- 使用 OpenAI Whisper API 实现高精度语音转文字
- 语音留言以 [Voice: <transcript>] 格式显示为文本
- 成本极低——每分钟音频约 $0.006
- 与 WhatsApp 频道无缝集成
前置条件
- 已安装并运行 NanoClaw
- 已配置 WhatsApp 频道
- 拥有已充值账户的 OpenAI API 密钥
安装
/add-voice-transcription 工作原理
/add-voice-transcription 技能为 NanoClaw 添加自动语音消息转录功能。当有人在 WhatsApp 中发送语音留言时,NanoClaw 会拦截该消息,将音频发送至 OpenAI 的 Whisper API,并将文本转录结果交给智能体。智能体看到的消息格式为 [Voice: <transcript>],可以像处理普通文本消息一样做出回应。
该技能对你的代码库进行两处修改。首先,它创建一个 transcription.ts 模块来处理 Whisper API 调用——下载语音留言、发送至 OpenAI 并返回文本。其次,它修改 WhatsApp 频道代码,使其能够检测语音消息并在传递给智能体之前将其路由到转录模块。
配置过程中,你需要提供一个 OpenAI API 密钥。技能会将其保存到你的环境变量中,并通过一次测试 API 调用来验证其有效性。同时还会确认你的 OpenAI 账户有可用余额,因为 Whisper 是付费 API。
费用
Whisper 转录费用约为每分钟音频 $0.006。一条 15-30 秒的典型语音留言费用不到一分钱。即使频繁使用(每天数十条语音消息),月费用也远低于一美元。费用由 OpenAI 收取,而非 NanoClaw。
测试
技能应用完成后,你可以立即进行测试。在已注册的 WhatsApp 聊天中发送一条语音留言,然后查看日志。你会看到音频下载、发送至 Whisper 以及转录结果传递给智能体的日志条目。智能体会像你输入了文字一样做出回应。
如果某条消息的转录失败——可能由于背景噪音、音频过短或格式不支持——日志会显示失败原因。智能体会收到一条转录失败的通知,而不是默默丢弃该消息。
本地替代方案
如果你不想将音频发送到 OpenAI 的服务器,NanoClaw 也支持使用 Apple Silicon 上的 whisper.cpp 进行本地转录。/use-local-whisper 技能可以从 API 切换到完全在本机运行的本地模型。对于英语,转录质量相当,而且没有按条计费。代价是初始模型下载约 1.5 GB,且在没有专用 ML 硬件的机器上转录速度较慢。
使用建议
- 语音转录目前仅支持 WhatsApp。其他频道的语音消息支持取决于相应平台的 API 是否提供音频访问权限。
- Whisper 对大多数语言的处理效果都很好,不仅限于英语。如果你收到其他语言的语音留言,也能被准确转录。
- 极短的语音留言(不到 1 秒)有时会产生空白或不准确的转录。这是 Whisper 模型本身的局限性。
- OpenAI API 密钥存储在你的
.env文件中,并作为环境变量传递给容器。除 OpenAI 的 API 端点外,密钥不会被发送到任何其他地方。