Fun-ASR-Nano 使用指南:800M 端到端语音识别大模型,支持 31 语言与 7 大方言
Fun-ASR-Nano 是 FunAudioLLM 团队推出的端到端语音识别大模型,基于「Audio Encoder + Adaptor + LLM(Qwen)」架构,参数量约 800M,在数千万小时真实语音上训练而成。它是我们当前重点推荐的旗舰 ASR 模型。
核心亮点:
- 31 种语言;中文覆盖 7 大方言(吴、粤、闽、客、赣、湘、晋)与 26 种地方口音
- 支持热词、时间戳、低延迟流式识别
- 支持说话人分离(VAD + 声纹 + 标点)
- 甚至支持歌词识别、Rap 语音识别
1. 安装
pip install -U funasr torch torchaudio
2. 基础推理(含热词)
下面是已实测可运行的最小示例(自动下载模型):
from funasr import AutoModel
model = AutoModel(
model="FunAudioLLM/Fun-ASR-Nano-2512",
trust_remote_code=True,
remote_code="./model.py",
device="cuda:0",
hub="hf", # 国内可用 hub="ms" 走 ModelScope
)
wav = f"{model.model_path}/example/zh.mp3" # 模型自带示例音频
res = model.generate(
input=[wav], cache={}, batch_size=1,
hotwords=["开放时间"], # 热词,提升专有名词召回
language="中文",
itn=True, # 逆文本归一化(数字/日期规整)
)
print(res[0]["text"])
实测输出:开放时间早上九点至下午五点。——热词「开放时间」被准确识别。
3. 长音频:加 VAD 分段
model = AutoModel(
model="FunAudioLLM/Fun-ASR-Nano-2512",
trust_remote_code=True, remote_code="./model.py",
vad_model="fsmn-vad",
vad_kwargs={"max_single_segment_time": 30000},
device="cuda:0", hub="hf",
)
res = model.generate(input=[wav], cache={}, batch_size=1, language="中文")
4. 说话人分离(谁在什么时候说了什么)
组合 VAD + 声纹(cam++)+ 标点,得到带说话人标签的逐句结果:
model = AutoModel(
model="FunAudioLLM/Fun-ASR-Nano-2512",
trust_remote_code=True, remote_code="./model.py",
vad_model="fsmn-vad", vad_kwargs={"max_single_segment_time": 30000},
spk_model="cam++", punc_model="ct-punc",
device="cuda:0", hub="hf",
)
res = model.generate(input=[wav], cache={}, batch_size=1, language="中文")
for sent in res[0]["sentence_info"]:
print(sent["spk"], sent["text"])
说话人分离需要从源码安装 FunASR:pip install git+https://github.com/modelscope/FunASR.git。
5. 高吞吐 / 流式部署
| 场景 | 推荐方式 |
|---|---|
| 大规模离线批量转写 | AutoModelVLLM(vLLM 后端,高吞吐) |
| 实时低延迟流式 | FunASRNanoStreamingVLLM(chunk 流式) |
| 单机 / 快速试用 | 上面的 AutoModel 即可 |
vLLM 路径对版本较敏感,建议 vLLM 0.12.0 + torch 2.9.0;完整示例见 Fun-ASR 仓库。
延伸阅读:SenseVoice 部署指南 · 对比 Whisper · 快速上手