SenseVoice 部署指南:比 Whisper 快 15 倍的多语言语音识别

SenseVoice 是 FunAudioLLM 团队开源的多语言语音理解大模型。它不仅做语音识别(ASR),还能在一次前向推理中同时输出语种识别、情感识别、音频事件检测。模型采用非自回归结构,推理速度比 Whisper-Large 快约 15 倍,单条 10 秒音频的识别延迟可低至几十毫秒,非常适合工业级实时与批量场景。

本文用可直接复制运行的代码,带你 3 步把 SenseVoice 跑起来。

1. 安装

SenseVoice 通过 funasr 包提供,一行安装:

pip install -U funasr torch torchaudio

2. 三行代码跑通识别

下面的代码会自动下载 SenseVoiceSmall 模型并完成识别:

from funasr import AutoModel
from funasr.utils.postprocess_utils import rich_transcription_postprocess

model = AutoModel(model="iic/SenseVoiceSmall", device="cuda:0")  # CPU 用 device="cpu"
res = model.generate(input="audio.wav", language="auto", use_itn=True)
print(rich_transcription_postprocess(res[0]["text"]))

模型 ID:ModelScope 为 iic/SenseVoiceSmall,HuggingFace 为 FunAudioLLM/SenseVoiceSmalluse_itn=True 表示输出带标点和逆文本归一化(数字、日期规整)。

3. 读懂输出:语种 + 情感 + 音频事件

SenseVoice 的原始输出带有富文本标签,例如:

<|zh|><|NEUTRAL|><|Speech|><|withitn|>欢迎大家来体验达摩院推出的语音识别模型。

rich_transcription_postprocess() 可一键得到干净文本;如果你想保留这些标签做下游分析,直接读取 res[0]["text"] 即可。

4. 长音频:加 VAD 自动分段

处理几分钟以上的长音频时,搭配 FSMN-VAD 做语音端点检测、自动分段,效果与速度都更好:

model = AutoModel(
    model="iic/SenseVoiceSmall",
    vad_model="fsmn-vad",
    vad_kwargs={"max_single_segment_time": 30000},
    device="cuda:0",
)
res = model.generate(input="long_audio.wav", language="auto", use_itn=True, batch_size_s=60)

5. GPU 与 CPU 怎么选

场景建议
高并发 / 批量转写GPU(device="cuda:0"),吞吐最高
轻量 / 边缘 / 离线CPU(device="cpu");SenseVoice 非自回归,CPU 上也很快
生产服务FunASR runtime(C++ / Docker 一键部署,多并发)

6. 性能一览

维度SenseVoice-Small
相对 Whisper-Large 速度约 15×
支持语言中文 / 粤语 / 英文 / 日文 / 韩文 等
附加能力语种识别 · 情感识别 · 音频事件检测
架构非自回归(低延迟)
许可证开源(可商用)

开始使用 SenseVoice

如果这篇指南对你有帮助,欢迎到 GitHub 点个 Star ⭐ 支持开源。

SenseVoice GitHub ★

延伸阅读:FunASR vs Whisper 对比 · FunASR 快速上手 · 全部模型

相关文章