SenseVoice 语音识别:10 行代码跑通的多语言语音理解模型
SenseVoice 语音识别:10 行代码跑通的多语言语音理解模型
【免费下载链接】SenseVoiceOpen-source SenseVoiceSmall model for Mandarin, Cantonese, English, Japanese, and Korean ASR, language ID, emotion recognition, and audio event detection.项目地址: https://gitcode.com/gh_mirrors/se/SenseVoice
SenseVoice 是一个开源多语言语音理解模型,把语音识别、语种识别、情感识别和音频事件检测装进同一个模型。已发布的 SenseVoice-Small 约 234M 参数,支持普通话、粤语、英语、日语、韩语五种语言,输出带标点的归一化文本,处理 10 秒音频只需约 70 毫秒。它基于非自回归端到端架构,配合微调脚本和多种导出格式,从本地验证到服务化部署都能直接落地。
SenseVoice 模型总览:输入一段音频,同时得到转写文本、语种、情感和事件标签
🎯 能力全景:一个模型同时回答四个问题
一句话定位:SenseVoice-Small 把"说了什么、用什么语言说的、什么情绪、伴随什么声音事件"四件事合并成一次前向计算。
| 功能 | 一句话说明 | 典型用途 |
|---|---|---|
| 语音识别(ASR) | 普通话、粤语、英语、日语、韩语转写,带标点和逆文本归一化 | 会议记录、字幕生成 |
| 语种识别(LID) | 自动判别五种语言,也支持手动指定 | 多语言内容分发 |
| 情感识别(SER) | 7 类标签:中性、高兴、悲伤、愤怒、恐惧、厌恶、惊讶 | 客服情绪监控 |
| 音频事件检测(AED) | 8 类标签:语音、背景音乐、掌声、笑声、哭声、咳嗽、打喷嚏、呼吸 | 音视频内容审核 |
| 时间戳 | VAD 切分边界与 CTC 对齐时间戳 | 字幕对齐、音频剪辑 |
| 说话人分离 | 与 FSMN-VAD、CAM++、标点模型组合的 FunASR 流水线,非 Small 检查点原生输出 | 多人对话归档 |
| 批量推理 | 动态批处理,以秒为单位控制 batch | 离线批量转写 |
| Web 界面 | Gradio 页面,拖拽音频或本地录音直接体验 | 功能演示、快速验证 |
⚡ 最小路径上手:clone 到出转写结果只要 3 条命令
最短路径是:安装依赖、写一个不超过 10 行的脚本、跑一次推理。
git clone https://gitcode.com/gh_mirrors/se/SenseVoice cd SenseVoice && pip install -r requirements.txt依赖来自 requirements.txt,核心是funasr>=1.3.26、torch 和 gradio。GPU 机器先装好对应 CUDA 的 torch 轮子再执行安装。
把下面脚本保存为demo_run.py,再运行python demo_run.py:
from funasr import AutoModel from funasr.utils.postprocess_utils import rich_transcription_postprocess model = AutoModel(model="iic/SenseVoiceSmall", trust_remote_code=True, remote_code="./model.py", vad_model="fsmn-vad", device="cuda:0") res = model.generate(input="your_audio.mp3", language="auto", use_itn=True) print(rich_transcription_postprocess(res[0]["text"]))模型权重首次运行时从模型中心自动下载。终端打印出与音频内容一致的带标点文本,即算跑通;无 GPU 时把device改成cpu也能出结果,只是变慢。想先看效果而不写代码,直接python webui.py打开 Gradio 界面,拖入音频即可。
ASR 基准对比:AISHELL-1 上 SenseVoice-Small 词错误率 2.27%,明显低于 Whisper-Small 的 4.72%;WenetSpeech 上为 6.66% 对 11.50%,中文和粤语是它的优势区间
📈 性能验证:70 毫秒与更低的中文 WER
延迟来自非自回归架构:一次前向输出整段文本,没有逐词解码的串行开销。
| 模型 | 参数量 | 处理 10 秒音频耗时 | 架构 |
|---|---|---|---|
| SenseVoice-Small | 234M | 约 70 ms | 非自回归 |
| Whisper-Small | 244M | 约 5 倍于上者 | 自回归 |
| Whisper-Large | 1550M | 约 15 倍于上者 | 自回归 |
同一基准下 SenseVoice-Small 比 Whisper-Small 快 5 倍以上、比 Whisper-Large 快约 15 倍,参数规模相近而延迟低一个量级
识别精度上,SenseVoice-Small 在中文数据集领先,Whisper-Small 在英文数据集(LibriSpeech test-clean,2.31% 对 2.90%)仍有优势。情感识别方面,未经目标数据微调,SenseVoice-Small 即可达到或超过多数开源情感识别模型,SenseVoice-Large 在几乎所有测试集上表现最佳。
🏭 定制与部署:什么场景下才需要它
微调——领域词、口音或新语言下识别率不达标时才需要。用 finetune.sh 配合 DeepSpeed 分布式训练,训练数据按 data/train_example.jsonl 的 jsonl 格式准备:音频路径、转写文本、语种、情感、事件标签。缺语言/情感/事件标注时,可用模型自动预测补全,省掉大量人工标注。
格式导出——脱离 PyTorch 运行或要在 CPU 上量化部署时。导出 ONNX 支持量化,导出 LibTorch 走原生推理,见 demo_onnx.py 和 demo_libtorch.py。
服务化——需要多并发接入时。fastapi run --port 50000起服务(用SENSEVOICE_DEVICE指定设备),客户端支持 Python、C++、Java 等语言;用 Dockerfile 或 docker-compose.yaml 打包可保证环境一致:
docker run --gpus all -p 50000:50000 sensevoiceCPU / 边缘——无 GPU 或上设备时,走 GGUF 路线:
bash runtime/llama.cpp/download-funasr-model.sh sensevoice ./gguf llama-funasr-sensevoice -m ./gguf/sensevoice-small-f16.gguf --vad ./gguf/fsmn-vad.gguf -a audio.wavq8 量化后约 254 MB,单个二进制内置 VAD,运行期不依赖 Python。
生态集成——高吞吐推理可用 Triton + TensorRT(V100 上测得 526 倍加速);sherpa-onnx 支持 10 种语言并覆盖 iOS、Android、树莓派;实时场景可评估伪流式方案,代价是少量精度损失。
🧭 场景速查:先对号入座再动手
| 场景 | 用到的能力 | 选型或注意事项 |
|---|---|---|
| 客服录音质检 | 情感识别 + 语音识别 + 时间戳 | 质检规则按 7 类情感标签设计,愤怒、悲伤权重更高 |
| 多语言会议转录 | ASR + 自动语种识别 + 说话人分离 | 语种自动判别;分离需组合 CAM++ 等模型的 FunASR 流水线,并非 Small 检查点原生输出 |
| 音视频内容审核 | 音频事件检测 + ASR | 8 类事件标签覆盖 BGM、掌声、笑声、哭声等 |
| 实时语音助手 | ASR + 低延迟推理 | 选 Small 模型;实时链路优先测伪流式或 GGUF 路线的端到端延迟 |
| 离线 / 边缘设备 | GGUF 导出 + 内置 VAD | q8 约 254 MB,单二进制、无 Python 依赖,适合树莓派与移动端 |
收尾
SenseVoice 用一个模型同时给出文本、语种、情感和事件四类信息,推理快、可微调、部署路径多,适合作为企业语音应用的基础组件。下一步:先按"最小路径上手"跑通 10 行示例脚本,确认你的音频能稳定出带标点的转写,再决定微调还是服务化。
【免费下载链接】SenseVoiceOpen-source SenseVoiceSmall model for Mandarin, Cantonese, English, Japanese, and Korean ASR, language ID, emotion recognition, and audio event detection.项目地址: https://gitcode.com/gh_mirrors/se/SenseVoice
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
