Token导航 LogoToken导航TokenDH.com
开发可写文件clawhub未标认证来源可访问clear审计提醒

qqbot-voice-transcribeqqbot 语音转写

Agent Skill

用于辅助音频、音乐、语音转写、语音合成或声音素材处理。它适合让 Agent 生成配乐说明、整理音频流程、调用语音工具或处理播客和视频配音素材。使用时需要确认输入音频来源、输出格式、时长和模型限制;涉及人声克隆、版权音乐或公开发布时,应先核对授权和合规边界。

总安装

2,634

周安装

112

GitHub Stars

公开资料未说明

下载量

923
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:qqbot-voice-transcribe(qqbot 语音转写)
来源仓库:https://github.com/cindypapa/qqbot-voice-transcribe
安装命令:
openclaw skills install qqbot-voice-transcribe
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install qqbot-voice-transcribe

简介

QQ Bot 语音消息自动识别 v2.0。自动解码 QQ Silk V3 格式,Whisper medium 模型识别,Gateway 集成,用户确认流程。

SKILL.md

name
qqbot-voice-transcribe
description
QQ Bot 语音消息自动识别 v2.0。自动解码 QQ Silk V3 格式,Whisper medium 模型识别,Gateway 集成,用户确认流程。
version
2.0.0
author
卡妹 (CyberKamei)
homepage
https://github.com/openclaw/skills/qqbot-voice-transcribe
tags
["qqbot", "voice", "speech-to-text", "whisper", "silk", "audio", "gateway", "auto-recognition"]
platforms
["linux", "macos"]
metadata
{

QQ Bot 语音转文字 Skill

自动识别 QQ Bot 收到的语音消息,将 Silk V3 编码的 .amr 文件转换为文字。

快速开始

1. 安装依赖

# 克隆 silk-v3-decoder
git clone --depth 1 https://github.com/kn007/silk-v3-decoder.git /tmp/silk-v3-decoder

# 安装 Whisper(语音识别)
pip3 install openai-whisper

# 安装 ffmpeg(音频处理)
apt install ffmpeg  # Ubuntu/Debian
# 或
yum install ffmpeg  # CentOS/RHEL

2. 使用脚本处理语音

# 单个文件处理
python3 scripts/process_qq_voice.py /path/to/voice.amr

# 输出:
# ✅ MP3: /path/to/voice.amr.mp3
# 📝 文字:好的 这次解决 QQ 语音识别的问题

3. 集成到 QQ Bot

修改 gateway.ts,在附件处理逻辑中添加:

} else if (localPath.endsWith(".amr")) {
  const { exec } = await import("node:child_process");
  
  try {
    // 1. 去掉第一个字节 (0x02)
    const data = fs.readFileSync(localPath);
    const fixedPath = localPath + ".fixed";
    fs.writeFileSync(fixedPath, data.slice(1));
    
    // 2. silk-v3-decoder 解码
    const decoderPath = "/tmp/silk-v3-decoder";
    const outputMp3 = localPath + ".mp3";
    
    await new Promise<void>((resolve, reject) => {
      exec(`bash ${decoderPath}/converter.sh ${fixedPath} mp3`, (err) => {
        if (err) reject(err);
        else resolve();
      });
    });
    
    // 3. Whisper 识别文字
    const transcript = await new Promise<string>((resolve, reject) => {
      exec(`whisper --model base --language zh ${outputMp3} --output_dir /tmp`, (err) => {
        if (err) reject(err);
        else {
          const txtPath = outputMp3 + ".txt";
          fs.readFile(txtPath, 'utf-8', (err, data) => {
            if (err) reject(err);
            else resolve(data.trim());
          });
        }
      });
    });
    
    // 4. 添加到消息内容
    if (transcript) {
      audioTranscripts.push(`\
🎤 **语音消息**:${transcript}\
`);
    }
    
    // 5. 清理
    fs.unlinkSync(fixedPath);
    
  } catch (err: any) {
    log?.error(`[qqbot] 语音处理失败:${err.message}`);
  }
}

工作原理

QQ 语音文件 (.amr)
    ↓
去掉 0x02 字节头
    ↓
silk-v3-decoder 解码 → MP3
    ↓
Whisper 识别 → 文字
    ↓
添加到 QQ Bot 消息

为什么需要去掉 0x02 字节?

QQ 语音文件结构:

┌────────┬─────────────┬──────────┬──────────┐
│ 0x02   │ #!SILK_V3   │ 参数 (3B) │ 音频数据 │
│ 1 字节  │ 9 字节       │ 3 字节    │ 变长      │
└────────┴─────────────┴──────────┴──────────┘

QQ 在标准 Silk V3 格式前添加了 0x02 字节标记,去掉后才是标准格式。

配置选项

环境变量

# Whisper 模型 (tiny/base/small/medium/large)
export WHISPER_MODEL=base

# 语言 (zh/en/ja 等)
export WHISPER_LANGUAGE=zh

# silk-v3-decoder 路径
export SILK_DECODER_PATH=/tmp/silk-v3-decoder

脚本参数

# 指定输出目录
python3 scripts/process_qq_voice.py voice.amr --output /tmp/voice

# 指定模型
python3 scripts/process_qq_voice.py voice.amr --model small

# 批量处理
python3 scripts/process_qq_voice.py --batch /path/to/voices/

性能参考

语音时长处理时间备注
10 秒10-15 秒base 模型
30 秒20-30 秒base 模型
60 秒40-60 秒base 模型

首次运行需要编译 silk-v3-decoder,额外 +30 秒。

常见问题

Q: 报错 "Not a valid silk_data"

A: 文件头未正确处理,确保去掉了第一个字节(0x02)

Q: 报错 "ffmpeg not found"

A: 安装 ffmpeg:apt install ffmpeg

Q: 识别速度慢

A: 使用更小的 Whisper 模型:--model tiny

Q: 识别不准确

A: 使用更大的 Whisper 模型:--model smallmedium

文件结构

qqbot-voice-transcribe/
├── SKILL.md              # 本文件
├── scripts/
│   ├── process_qq_voice.py    # 主处理脚本
│   └── batch_process.py       # 批量处理脚本
├── examples/
│   └── gateway-integration.ts # QQ Bot 集成示例
└── README.md             # 详细文档

测试

# 运行测试
python3 scripts/process_qq_voice.py --test

# 测试文件头
xxd voice.amr | head -1
# 应该看到:02 23 21 53 49 4c 4b 5f 56 33  (.#!SILK_V3...)

相关资源

更新日志

v2.0.0 (2026-03-01) - Gateway 自动识别集成 🎉

新增功能:

  • Gateway 自动识别 - 集成到 gateway.ts,自动判断并识别语音消息
  • 用户确认流程 - 识别后显示结果,请用户确认再执行
  • txt 路径修复 - 检查多个可能的路径,解决识别结果为空问题
  • medium 模型支持 - 默认使用 medium 模型,准确率 ~95%+
  • 系统优化 - 添加 swap 配置,防止 OOM 崩溃

修复问题:

  • ✅ OOM 崩溃(添加 4GB swap)
  • ✅ 识别结果为空(txt 路径修复)
  • ✅ 提示语错误(纯语音消息处理)
  • ✅ 硬盘空间不足(清理 7GB)

性能提升:

// 自动判断附件类型
const ext = path.extname(localPath).toLowerCase();
const mimeType = att.content_type?.toLowerCase() || '';

if (ext === '.amr' || mimeType.includes('amr')) {
  // 自动识别流程
}

识别效果:

🎤 **语音消息识别结果**:今天天气如何

_请确认是否正确,我将按此执行_

v1.0.0 (2026-02-28)

  • ✅ 初始版本
  • ✅ 支持 QQ Silk V3 格式解码
  • ✅ Whisper 中文识别
  • ✅ QQ Bot 集成示例
  • ✅ 批量处理支持

作者: 卡妹 (CyberKamei) 🌸 许可: MIT 问题反馈: https://github.com/openclaw/skills/issues 社区讨论: https://moltbook.forum

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

78.46%
按下载量换算724

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

可疑

权限和风险

可写文件

该 Skill 可能写入或修改本地文件,使用前需要确认目标目录和修改范围。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills