🆓 免费开源 · 🗣️ 50+方言 · 👥 说话人分离 · 🏠 本地部署
将录音文件转为带说话人标签和时间戳的文本。基于 免费模型 TeleSpeechASR(业内首个支持普通话+英文+50种方言自由混说的语音识别大模型)和 cam++ 说话人分离,支持 SiliconFlow 免费 API 或本地 vLLM 部署。
适用于:会议录音整理、采访转写、电话记录归档、方言语音转文字等场景。
- 🆓 完全免费 — 模型开源,API 可用免费额度
- 🗣️ 方言识别 — 业内首个支持普通话+英文+50种方言自由混说的语音识别大模型
- 👥 说话人分离 — 自动区分两个说话人,输出带标签的对话文本
- 🏠 本地部署 — 所有模型可完全离线运行,数据不出内网
- 📝 带时间戳 — 每句话标注时间位置,方便回溯
TeleSpeechASR 支持粤语、上海话、四川话、河南话、东北话、闽南话等 50+ 种方言,以及中英文自由混说。
| 方言 | 支持 |
|---|---|
| 普通话 | ✅ |
| 粤语 | ✅ |
| 上海话 | ✅ |
| 四川话 | ✅ |
| 河南话 | ✅ |
| 东北话 | ✅ |
| 闽南话 | ✅ |
| 英文 | ✅ |
| 中英混说 | ✅ |
| 其他 40+ 方言 | ✅ |
git clone https://github.com/sanwecn/audio-transcribe.git
cd audio-transcribeuv venv funasr-env --python 3.11
uv pip install -p funasr-env/bin/python funasr torch torchaudio soundfile scikit-learn requestsTeleSpeechASR 有两种使用方式:
方式一:SiliconFlow 免费 API(推荐)
注册 SiliconFlow 账号,获取免费 API Key。
cp .env.example .env
# 编辑 .env,填入:
# TELE_ASR_API=https://api.siliconflow.cn/v1/audio/transcriptions
# TELE_ASR_KEY=sk-xxx方式二:本地部署
使用 vLLM 在本地部署 TeleSpeechASR 模型:
vllm serve TeleAI/TeleSpeechASR --port 8000# .env 中配置:
# TELE_ASR_API=http://localhost:8000/v1/audio/transcriptions
# TELE_ASR_KEY=local# 将录音文件放入 input/ 目录
mkdir -p input
cp /path/to/*.mp3 input/
# 运行转写
./funasr-env/bin/python scripts/transcribe_v2.py结果输出到 output/ 目录。
录音文件: example.mp3
转写时间: 2026-06-02 20:37:18
============================================================
[00:00] 说话人1: 喂,你好,
[00:02] 说话人0: 有什么事吗?
[00:04] 说话人0: 你这搞的什么名堂?
[00:07] 说话人1: 我有事儿,那个地方的钱现在怎么处理的?
录音.mp3
├─→ TeleSpeechASR API ─→ 转写文本(方言识别)
└─→ cam++ 滑动窗口 ─→ speaker embedding ─→ 聚类 ─→ 说话人标签
↓
合并 → 带标签的文本
- ASR:TeleSpeechASR — 业内首个普通话+英文+50方言自由混说模型
- 说话人分离:cam++ 滑动窗口 + sklearn 聚类
- 模型来源:全部从 ModelScope 自动下载,无需 HuggingFace token
| 指标 | 结果 |
|---|---|
| ✅ 说话人分离成功 | 85 个(96.6%) |
| 3 个(3.4%,<10秒短录音) | |
| 方言识别准确率 | 显著优于 Whisper/FunASR |
- 仅支持两人对话(多人会议不适用)
- 极短录音(<10秒)说话人分离可能失败
- 说话人标签(0/1)不固定,每次运行可能互换
- cam++ embedding 提取在 CPU 上较慢(每文件约 20-40 秒)
audio-transcribe/
├── SKILL.md # 技能描述
├── README.md # 本文件
├── .env.example # 配置模板
├── .gitignore # Git 忽略规则
├── scripts/
│ ├── transcribe_v2.py # 主脚本:转写 + 说话人分离
│ └── merge_speakers.py # 后处理:多余说话人标签合并
└── references/
└── architecture.md # 技术细节
- Twitter: @sanwecn
MIT