名称: whatsapp-voice-talk
描述: 实时处理 WhatsApp 语音消息。通过 Whisper 将语音笔记转录为文本,检测意图,执行处理器并发送回复。适用于为 WhatsApp 构建语音对话界面。支持英语和印地语,可自定义意图(天气、状态、命令),自动语言检测,并通过 TTS 流式传输回复。
将 WhatsApp 语音消息转化为实时对话。本技能提供完整处理流程:语音 → 转录 → 意图检测 → 回复生成 → 文本转语音。
非常适合:
- WhatsApp 语音助手
- 免提命令界面
- 多语言聊天机器人
- IoT 语音控制(无人机、智能家居等)
pip install openai-whisper soundfile numpy
const { processVoiceNote } = require('./scripts/voice-processor');
const fs = require('fs');
// 读取语音消息(OGG、WAV、MP3 等)
const buffer = fs.readFileSync('voice-message.ogg');
// 处理
const result = await processVoiceNote(buffer);
console.log(result);
// {
// status: 'success',
// response: "德里当前天气为 19°C,有雾。湿度为 56%。",
// transcript: "今天天气怎么样?",
// intent: 'weather',
// language: 'en',
// timestamp: 1769860205186
// }
用于自动处理接收到的 WhatsApp 语音消息:
node scripts/voice-listener-daemon.js
此命令每 5 秒监控 ~/.clawdbot/media/inbound/ 目录,并处理新的语音文件。
接收语音消息
↓
转录 (Whisper API)
↓
"今天天气怎么样?"
↓
检测语言与意图
↓
匹配 INTENTS 列表
↓
执行处理器
↓
生成回复
↓
转换为 TTS 语音
↓
通过 WhatsApp 发送回复
✅ 零配置复杂度 - 无需 FFmpeg,无复杂依赖。使用 soundfile + Whisper。
✅ 多语言支持 - 自动检测英语/印地语。易于扩展。
✅ 意图驱动 - 使用关键词和处理器定义自定义意图。
✅ 实时处理 - 每条消息处理时间 5-10 秒(首次模型加载后)。
✅ 高度可定制 - 可添加天气、状态、命令或任何其他功能。
✅ 生产就绪 - 基于 Clawdbot 实际使用场景构建。
// 用户说:"班加罗尔天气怎么样?"
// 回复:"德里当前天气为 19°C..."
// (内置意图,只需启用即可)
// 用户说:"打开灯"
// 处理器:向智能家居 API 发送信号
// 回复:"灯已打开"
// 用户说:"把牛奶加到购物清单"
// 处理器:添加到数据库
// 回复:"已将牛奶添加到您的清单"
// 用户说:"系统在运行吗?"
// 处理器:检查系统状态
// 回复:"所有系统在线"
编辑 voice-processor.js:
const INTENTS = {
'shopping': {
keywords: ['shopping', 'list', 'buy', 'खरीद'],
handler: 'handleShopping'
}
};
const handlers = {
async handleShopping(language = 'en') {
return {
status: 'success',
response: language === 'en'
? "您想在购物清单中添加什么?"
: "आप अपनी शॉपिंग लिस्ट में क्या जोड़ना चाहते हैं?"
};
}
};
detectLanguage() 中为您的语言添加 Unicode 范围:const urduChars = /[\u0600-\u06FF]/g; // 添加此行
return language === 'ur' ? '乌尔都语回复' : '英语回复';
transcribe.py 中设置语言:result = model.transcribe(data, language="ur")
在 transcribe.py 中:
model = whisper.load_model("tiny") # 最快,39MB
model = whisper.load_model("base") # 默认,140MB
model = whisper.load_model("small") # 更好,466MB
model = whisper.load_model("medium") # 优秀,1.5GB
脚本:
- transcribe.py - Whisper 转录 (Python)
- voice-processor.js - 核心逻辑(意图解析、处理器)
- voice-listener-daemon.js - 自动监听器,监控新消息
参考文档:
- SETUP.md - 安装与配置
- API.md - 详细函数文档
如果作为 Clawdbot 技能运行,可挂接到消息事件:
// 在您的 Clawdbot 处理器中
const { processVoiceNote } = require('skills/whatsapp-voice-talk/scripts/voice-processor');
message.on('voice', async (audioBuffer) => {
const result = await processVoiceNote(audioBuffer, message.from);
// 发送文本回复
await message.reply(result.response);
// 或发送语音回复(需要 TTS)
await sendVoiceMessage(result.response);
});
OGG (Opus)、WAV、FLAC、MP3、CAF、AIFF 等(通过 libsndfile 支持)。
WhatsApp 默认使用 Opus 编码的 OGG 格式——开箱即用。
"No module named 'whisper'"
pip install openai-whisper
"No module named 'soundfile'"
pip install soundfile
语音消息未处理?
1. 检查:clawdbot status(是否在运行?)
2. 检查:~/.clawdbot/media/inbound/(文件是否到达?)
3. 手动运行守护进程:node scripts/voice-listener-daemon.js(查看日志)
转录速度慢?
使用更小的模型:whisper.load_model("base") 或 "tiny"
references/SETUP.md 获取详细的安装与配置说明references/API.md 获取函数签名和示例scripts/ 目录中的工作代码MIT - 可自由使用、定制和贡献!
为 Clawdbot 的实际使用场景构建。经过多语言和多用例的实战测试。