返回 Skill 列表
extension
分类: 开发与工程无需 API Key

ASR 语音转文字助手

asr-transcriber

person作者: LINXI79hubgithub

ASR Transcriber — 本地离线语音转文字 Skill

概述

本 Skill 为 AI Agent 提供纯本地、离线的语音转文字(ASR)能力。Agent 通过调用本 Skill 中的 Python 脚本,将音频文件自动转录为文本,全程数据不离开本地设备。

核心能力

| 功能 | 说明 | |------|------| | 🎙️ 音频转文字 | 支持 .wav, .mp3, .m4a, .ogg, .flac 等常见格式 | | 🌍 多语言识别 | 自动检测 52 种语言/方言(含 22 种中文方言) | | ⏱️ 时间戳输出 | 可输出带时间戳的字幕级转录结果(SRT/VTT 格式) | | 📦 批量处理 | 一次处理多个音频文件 | | 🔒 完全本地 | 使用 Qwen3-ASR-0.6B,模型仅 ~1.2GB,数据不出机 |

适用场景

  • 会议记录:将会议录音转为文字纪要
  • 采访转录:记者/研究者将采访音频转为文稿
  • 课堂笔记:将讲座录音转为文字笔记
  • 字幕生成:为视频自动生成 SRT/VTT 字幕
  • 语音备忘录:将语音便签转为可搜索文本
  • 多方言识别:支持粤语、吴语、闽南语、四川话、东北话等

技术架构

┌─────────────────────────────────────────────────────┐
│                   Agent 大脑                          │
│         Ollama + Qwen3.6-35B-A3B                     │
│    (理解用户意图 → 决定调用 ASR Skill)                │
└─────────────────┬───────────────────────────────────┘
                  │ Function Calling
                  ▼
┌─────────────────────────────────────────────────────┐
│              ASR Transcriber Skill                    │
│  ┌─────────────────────────────────────────────┐    │
│  │          scripts/transcribe.py               │    │
│  │  ┌──────────────────────────────────────┐   │    │
│  │  │     Qwen3-ASR-0.6B Model              │   │    │
│  │  │  (OpenVINO IR 格式,GPU/NPU 加速)     │   │    │
│  │  └──────────────────────────────────────┘   │    │
│  └─────────────────────────────────────────────┘    │
│                      │                               │
│                      ▼                               │
│              转录文本输出                             │
│         (纯文本 / JSON / SRT / VTT)                  │
└─────────────────────────────────────────────────────┘

为什么选择 Qwen3-ASR-0.6B?

| 对比维度 | Qwen3-ASR-0.6B | OpenAI Whisper (large-v3) | |----------|----------------|--------------------------| | 模型大小 | ~1.2GB (FP16) / ~0.6GB (INT8) | ~3.1GB | | 参数量 | 0.6B | 1.55B | | 支持语言 | 52 种(含方言) | 99 种 | | 中文方言 | ✅ 22 种 | ❌ 不支持 | | 推理速度 | 128 并发下 2000x 吞吐 | 基准速度 | | OpenVINO 优化 | ✅ 原生支持 | 需额外转换 |

使用说明

前置环境

在使用本 Skill 前,确保已安装以下依赖:

# 安装核心依赖
pip install qwen-asr openvino optimum-intel torch soundfile librosa

# 安装 Ollama Python SDK(Agent 端需要)
pip install ollama

模型下载

首次使用前需要下载 ASR 模型(仅需一次):

# 通过 ModelScope 下载(国内推荐)
pip install modelscope
modelscope download --model Qwen/Qwen3-ASR-0.6B --local_dir ./models/Qwen3-ASR-0.6B

# 或通过 HuggingFace
huggingface-cli download Qwen/Qwen3-ASR-0.6B --local-dir ./models/Qwen3-ASR-0.6B

基本调用

Agent 调用本 Skill 的核心入口是 scripts/transcribe.py

# 单个文件转录
python scripts/transcribe.py --input meeting.wav --output transcript.txt

# 指定语言(可选,默认自动检测)
python scripts/transcribe.py --input lecture.mp3 --language Chinese --output notes.txt

# 输出带时间戳的 JSON
python scripts/transcribe.py --input interview.m4a --format json --output result.json

# 生成 SRT 字幕
python scripts/transcribe.py --input video_audio.wav --format srt --output subtitles.srt

# 批量处理
python scripts/transcribe.py --batch ./audio_files/ --output ./transcripts/

# 使用 OpenVINO 加速
python scripts/transcribe.py --input audio.wav --backend openvino --device GPU

Agent 集成方式(Function Calling)

Agent 通过 Ollama 的 Function Calling 机制调用本 Skill。详见 references/agent-integration.md

输入格式

| 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | input | string | 是 | 输入音频文件路径 | | output | string | 否 | 输出文件路径(默认:同目录同名 .txt) | | language | string | 否 | 指定语言(默认 auto 自动检测) | | format | string | 否 | 输出格式:text / json / srt / vtt(默认 text) | | backend | string | 否 | 推理后端:transformers / openvino(默认 transformers) | | device | string | 否 | 推理设备:CPU / GPU / NPU(默认 CPU) | | timestamps | bool | 否 | 是否输出词级时间戳(默认 false) |

输出格式

纯文本 (text)

今天天气真不错,我们一起去公园散步吧。
下午三点有个会议,记得准时参加。

JSON 格式

{
  "segments": [
    {
      "start": 0.0,
      "end": 3.5,
      "text": "今天天气真不错,我们一起去公园散步吧。",
      "language": "Chinese"
    },
    {
      "start": 4.0,
      "end": 7.2,
      "text": "下午三点有个会议,记得准时参加。",
      "language": "Chinese"
    }
  ],
  "language": "Chinese",
  "duration": 7.2
}

SRT 字幕

1
00:00:00,000 --> 00:00:03,500
今天天气真不错,我们一起去公园散步吧。

2
00:00:04,000 --> 00:00:07,200
下午三点有个会议,记得准时参加。

性能基准

基于 Intel Core Ultra (Meteor Lake / Panther Lake) 平台的实测数据:

| 音频时长 | CPU (FP32) | GPU (OpenVINO) | NPU (OpenVINO) | |----------|------------|-----------------|----------------| | 1 分钟 | ~2.1s | ~0.8s | ~1.2s | | 10 分钟 | ~18s | ~6.5s | ~9.8s | | 1 小时 | ~1.8min | ~38s | ~58s |

注:以上数据基于 Qwen3-ASR-0.6B INT8 量化模型,使用 OpenVINO 2025.2+ 版本。

参考资料

示例场景

场景 1:用户说"帮我把这段会议录音转成文字"

Agent 理解 → 调用 asr-transcriber Skill
→ 执行: python scripts/transcribe.py --input meeting_recording.wav --output meeting_notes.txt
→ 返回: "会议转录完成,共识别 45 分钟内容,已保存到 meeting_notes.txt"

场景 2:用户说"给这个视频生成中文字幕"

Agent 理解 → 调用 asr-transcriber Skill
→ 执行: python scripts/transcribe.py --input video_audio.mp3 --language Chinese --format srt --output subtitles.srt
→ 返回: "字幕已生成: subtitles.srt"

许可与归属

  • 本 Skill 代码:Apache-2.0 License
  • Qwen3-ASR 模型:Apache-2.0 License (© Alibaba Cloud)
  • OpenVINO 工具套件:Apache-2.0 License (© Intel Corporation)