OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  whatsapp-voice-chat-integration:开源的实时 WhatsApp 语音聊天集成工具

whatsapp-voice-chat-integration:开源的实时 WhatsApp 语音聊天集成工具

 
  infrastructure ·  2026-02-06 03:22:49 · 3 次点击  · 0 条评论  

名称: whatsapp-voice-talk
描述: 实时处理 WhatsApp 语音消息。通过 Whisper 将语音笔记转录为文本,检测意图,执行处理器并发送回复。适用于为 WhatsApp 构建语音对话界面。支持英语和印地语,可自定义意图(天气、状态、命令),自动语言检测,并通过 TTS 流式传输回复。


WhatsApp 语音对话

将 WhatsApp 语音消息转化为实时对话。本技能提供完整处理流程:语音 → 转录 → 意图检测 → 回复生成 → 文本转语音

非常适合:
- WhatsApp 语音助手
- 免提命令界面
- 多语言聊天机器人
- IoT 语音控制(无人机、智能家居等)

快速开始

1. 安装依赖

pip install openai-whisper soundfile numpy

2. 处理语音消息

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
// }

3. 运行自动监听器

用于自动处理接收到的 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

  1. 添加到 INTENTS 映射:
const INTENTS = {
  'shopping': {
    keywords: ['shopping', 'list', 'buy', 'खरीद'],
    handler: 'handleShopping'
  }
};
  1. 添加处理器:
const handlers = {
  async handleShopping(language = 'en') {
    return {
      status: 'success',
      response: language === 'en' 
        ? "您想在购物清单中添加什么?"
        : "आप अपनी शॉपिंग लिस्ट में क्या जोड़ना चाहते हैं?"
    };
  }
};

支持更多语言

  1. detectLanguage() 中为您的语言添加 Unicode 范围:
const urduChars = /[\u0600-\u06FF]/g; // 添加此行
  1. 在返回中添加语言代码:
return language === 'ur' ? '乌尔都语回复' : '英语回复';
  1. 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 技能运行,可挂接到消息事件:

// 在您的 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);
});

性能

  • 首次运行: ~30 秒(下载 Whisper 模型,约 140MB)
  • 典型处理: 每条消息 5-10 秒
  • 内存占用: ~1.5GB(基础模型)
  • 支持语言: 英语、印地语(易于扩展)

支持的音频格式

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 获取详细的安装与配置说明
  • API 参考: 查看 references/API.md 获取函数签名和示例
  • 示例代码: 查看 scripts/ 目录中的工作代码

许可证

MIT - 可自由使用、定制和贡献!


为 Clawdbot 的实际使用场景构建。经过多语言和多用例的实战测试。

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor