作者:FunAudio 团队
适用人群:计算机、电子、通信、人工智能及相关专业毕业生;对“大模型+语音”落地感兴趣的产品经理与工程团队
阅读收益:30 min 搞懂一套可直接上线的大模型语音识别方案,知道它为什么准、为什么稳、怎么部署、哪里还差点意思。


1. 先回答你最想问的 6 个问题

用户高频疑问 一句话答案
1. FunAudio-ASR 是什么? 一套“大模型+强化学习”双轮驱动的工业级语音识别系统,主打中文+英文,也带越南、泰、印尼语。
2. 和 Whisper 比强在哪? 同尺寸下真实场景词错率平均再降 20-30%,支持流式、热词、噪声、中英混说。
3. 能直接商用吗? 报告里所有优化都冲着“上线”做的:流式延迟百毫秒级、支持热词即时插拔、幻觉抑制。
4. 硬件门槛? 高配版 0.7B 音频编码器+7B LLM,A100×1 可跑;轻量版 0.2B+0.6B,边缘端 RTX3060 也能实时。
5. 哪里还不行? 长音频(>5 min)得外挂 VAD;远场、多通道暂未放出;其他语种效果弱于中英。
6. 我要不要自己训? 官方已给预训练权重;如果只做中英、不要求领域极致定制,直接 SFT+LoRA 即可。

2. 为什么“大模型+语音”突然火了?

传统 ASR pipeline:音频→声学模型→发音词典→语言模型→文本。
大模型范式:音频→(编码器→适配层)→大语言模型→直接文本。

好处显而易见

  1. 语言模型参数量暴涨,上下文理解能力一并送给 ASR。
  2. 训练数据可复用文本 LLM 的海量语料,不再受“语音-文本平行数据”瓶颈。
  3. 端到端,少一个模块少一堆人工特征。

隐忧也同步放大


  • 幻觉:LLM 天生“爱编故事”,没声音时也能给你蹦两行字。

  • 噪声:LLM 没见过“地铁+鸣笛+广播”三重奏,照 hallucinate 不误。

  • 延迟:自回归解码,不做流式优化,用户说完一句话 3 s 后才蹦字,体验直接翻车。

FunAudio-ASR 的核心卖点就是“把大模型优势留下,把幻觉与延迟压下去”。


3. 系统全景:4 个模块怎么拼?

图2 官方架构图
(图中文字即原文 caption,不再翻译)

模块 作用 关键技术点
① Audio Encoder 把 16 kHz 波形→向量序列 多层 Transformer,先 Best-RQ 自监督,再 AED 有监督预训练。
② Audio Adaptor 把“语音向量”拉到 LLM 语义空间 2 层 Transformer,训练 Stage1 单独热启,降低跨模态鸿沟。
③ CTC Decoder 快速一刷,生成“草稿” 仅在顶部加几层,用于热词召回 + 给 LLM 提供候选。
④ LLM Decoder 最终润色、纠错、上下文一致 7B(或 0.6B)参数,LoRA+强化学习双保险,抑制幻觉。

4. 数据:多少小时?怎么洗?

阶段 规模 来源与处理
预训练 ≈ 数千万小时 1. 无标签:爬自电商、教育、金融等 10+ 领域;
2. 有标签:Paraformer-V2、Whisper、SenseVoice 三系统伪标注→ITN→人工抽检。
有监督微调 SFT ≈ 百万小时 人工转写 + TTS 合成 + 噪声增强 + 流式切块 + 热词 prompt。
强化学习 RL 10 万小时“困难样本” 三系统投票差异>10% 的“硬例”、长段>20 s、幻觉片段、关键词片段各 2 万。

5. 训练流程:5 个 Stage 一张表看懂

Stage 训练数据量 谁解冻 目标
1. adaptor 热身 20 k 小时 仅 adaptor 对齐语音-文本空间
2. encoder+adaptor 10 M 小时 encoder+adaptor 学更鲁棒的声学-语义表征
3. LoRA 调 LLM 20 k 小时 LLM(LoRA) 保留文本能力,不灾难遗忘
4. 全参精修 3 M 小时高质量 encoder+adaptor+LLM(LoRA) 追极致精度
5. CTC 插件 同 4 仅 CTC 头 给热词召回一个“草稿”

6. 生产级优化:为什么上线后不掉链子?

  1. 流式能力


    • 训练侧:把整句切成 80 ms 小块,强制模型只看“过去”。

    • 推理侧:SGLang 批解码,延迟 < 200 ms,RTF≈0.015。
  2. 噪声鲁棒


    • 离线:110 k 小时干净语音 + 10 k 小时噪声→10 dB 平均混噪。

    • 在线:训练时 30% 样本随机混噪,相对错误率再降 13%。
  3. 中英混说(Code-switching)


    • 4 万条英文关键词→Qwen3 生成中英混杂句子→TTS 合成→再人工核验。

    • 测试集 A 的 WER 从 4.53% 降到 1.59%。
  4. 热词自定义


    • 用 CTC 一刷→音素/子词编辑距离召回→RAG 方式喂给 LLM。

    • 名字、品牌、专业术语召回率从 0.75 提到 1.0,但误召可控。
  5. 幻觉抑制


    • 训练时故意喂“纯噪声”片段,标签为空。

    • RL 奖励里加“幻觉长度惩罚”,真实场景误触率降 35%。

7. 实验结果:数字说话

表 1 开源集(%WER)

Test set Whisper-large-v3 Seed-ASR FunAudio-ASR FunAudio-ASR-nano
AIShell-1 4.72 0.68 0.54 1.22
Librispeech-clean 1.86 1.58 1.57 1.94
Fleurs-zh 5.18 3.43 2.64 3.47

表 2 工业集(%WER)

Test set 说明 Seed-ASR FunAudio-ASR 相对降幅
Complex Background 餐厅+地铁+街采 12.90 11.29 -12.5%
Home Scenario 家庭电视+小孩嬉闹 8.08 5.17 -36%
English General 公开演讲+口音 15.65 14.22 -9%

流式 vs 离线:平均只牺牲 1.3 个百分点,但延迟从整句 2-3 s 降到 0.2 s。
多语言:越南语 CommonVoice 上 WER 13.49%,低于 Whisper 的 13.51%;泰语 1.44%,全场最低。


8. 局限 & 未来

当前短板 团队给出的路线图
1. 除中英外,小语种流式与热词未深度优化 继续采数据、阶段 4 再放大 LoRA rank
2. >5 min 长音频上下文窗口有限 外挂 VAD+分段+记忆向量,预计 Q4 开源
3. 仅近场单通道 远场+多通道阵列算法已在内测,需等硬件联调

9. FAQ(对话式)

Q1:我想在自己服务器上跑,一定要 A100 吗?
A:轻量版 nano 在 RTX3060 16 GB 实测可跑 200 ms 延迟的流式,单卡吞吐量≈并发 30 路。

Q2:热词列表可以动态更新吗?
A:可以。热词 vocabulary 是外挂 TSV,推理时直接读内存,无需重训模型;更新后 1 分钟内生效。

Q3:领域术语覆盖率怎么评估?
A:官方用“召回率+准确率”双指标:召回看是否命中,准确看是否多命中。表 6 给出 8 个学科平均召回 0.98。

Q4:为什么 RL 后,哲学/宗教领域召回反而掉一点?
A:RL 奖励函数里“关键词”从真实转写里自动挖,不再用人工 prompt,个别抽象词汇被过滤掉,导致召回略降;但 WER 仍降,整体体验更好。

Q5:还需要传统 VAD 吗?
A:目前建议保留。长段静音时 LLM 仍有小概率“写小作文”,VAD 可把纯噪声段提前剪掉。


10. 快速上手:从 Hugging Face 到第一条流式识别

(以下命令完全取自官方仓库示例,无外部补充)

  1. 拉镜像
docker pull funaudio/pytorch:2.1.0-cuda12.1-devel
  1. 起容器
docker run -it --gpus all -p 7860:7860 -v $PWD:/workspace funaudio/pytorch:2.1.0-cuda12.1-devel
  1. 装依赖
pip install -r requirements.txt
  1. 下载预训练权重
from huggingface_hub import snapshot_download
snapshot_download(repo_id="FunAudio/FunAudio-ASR-nano", local_dir="./model")
  1. 流式推理脚本(节选自官方 streaming_demo.py)
from funaudio import StreamingRecognizer
rec = StreamingRecognizer("./model", chunk_size=80, # 80 ms
                          hotword_file="./my_hotwords.tsv")
for pcm_chunk in microphone_stream():  # 16 kHz, 16-bit
    text, done = rec.accept(pcm_chunk)
    if done:
        print("Final:", text)
  1. 热词文件格式(TSV)
biology  生物
CRISPR   基因编辑
  1. 起服务
python -m funaudio.service --port 7860 --model ./model --hotword ./my_hotwords.tsv

浏览器打开 http://localhost:7860 即可看到实时字幕。


11. 结论:一句话带走

FunAudio-ASR 把“大模型幻觉”这个老大难拆成四个具体任务——噪声、流式、热词、长下文——然后用数据、模型、强化学习各打各的靶子。
最终交付的是一套开源可商用、中文友好、延迟可控、热词可插拔的工业级方案。
如果你正打算把语音识别从“实验室 Demo”搬到“生产线”,它值得一次 A/B Test。