
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-10 · 当前星标 ★ 9713
使用教程
环境要求
- Python 环境与 pip(用于安装 funasr / funasr-onnx)
- Docker(用于构建和运行 SenseVoice 容器镜像)
- GPU 运行需 NVIDIA 驱动并支持 docker run --gpus all;纯 CPU 也可运行
- 如需无 Python 环境运行,需使用 llama.cpp/GGUF 版 SenseVoice 预编译二进制
安装与启动步骤
-
1安装 Python 依赖
用 pip 安装 FunASR 与 funasr-onnx,供 Python 侧调用 SenseVoiceSmall 模型推理。
pip3 install -U funasr funasr-onnx -
2构建 Docker 镜像
在项目根目录执行构建,生成名为 sensevoice 的本地镜像;官方 ghcr 镜像当前为私有,需本地构建。
docker build -t sensevoice . -
3GPU 方式启动容器
默认 GPU 模式启动,映射 50000 端口并挂载模型缓存卷,模型文件会保存在 sensevoice-models 卷中。
docker run --rm --gpus all -p 50000:50000 -v sensevoice-models:/models sensevoice -
4CPU 方式启动容器
无 GPU 时通过环境变量切换到 CPU 推理,其余端口与模型卷参数与 GPU 模式一致。
docker run --rm -e SENSEVOICE_DEVICE=cpu -p 50000:50000 -v sensevoice-models:/models sensevoice -
5使用 Docker Compose
compose 会构建同样的镜像并复用模型缓存卷;默认不请求 GPU,因此直接在 CPU 主机上启动。
docker compose up --build -
6FastAPI 方式部署
非容器方式启动 FastAPI 服务,先用环境变量指定推理设备(如 cuda:0),再以 50000 端口运行。
export SENSEVOICE_DEVICE=cuda:0 fastapi run --port 50000 -
7llama.cpp 无依赖运行
无需 GPU 和 Python:先下载 GGUF 模型与内置 FSMN-VAD,再用单文件二进制对音频文件做识别。
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.wav
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
SENSEVOICE_DEVICE | 否 | 指定推理设备,不设置时容器默认使用 CPU | cuda:0 |
--port | 否 | FastAPI 与容器对外提供服务的端口 | 50000 |
model_dir | 否 | Python 调用时加载的模型仓库名(ModelScope) | iic/SenseVoiceSmall |
batch_size | 否 | funasr-onnx 推理时的批处理大小 | 10 |
quantize | 否 | funasr-onnx 是否启用量化推理 | True |
如何确认成功
容器或服务启动后访问 http://127.0.0.1:50000/docs,能看到 FastAPI 接口文档页面即部署成功。
常见问题
Q:拉取 ghcr.io/qwenaudio/sensevoice 失败报 401?
A:该容器包目前是私有的,匿名拉取会返回 HTTP 401,请改用 README 中的 docker build -t sensevoice . 本地构建镜像。
Q:没有 GPU 可以运行吗?
A:可以。容器方式加 -e SENSEVOICE_DEVICE=cpu 即可;Docker Compose 默认也是 CPU;此外还可用 llama.cpp/GGUF 二进制在 CPU 或边缘设备上运行。
Q:SenseVoiceSmall 能直接做说话人分离吗?
A:不能。说话人分离是 FunASR 的组合流程,需要额外的 FSMN-VAD 和 CAM++ 模型,并非 SenseVoiceSmall 检查点本身的输出。
Q:支持哪些语言和任务?
A:SenseVoiceSmall 支持中文、粤语、英文、日语、韩语的语音识别与语种识别,并附带情感与音频事件标签输出。
注意事项
- README 说明 ghcr 上的镜像包当前为私有,匿名拉取会 401,构建与运行请使用本地构建的镜像。
- Docker Compose 的默认配置不请求 GPU,GPU 场景请使用 docker run --gpus all 的命令。
- 容器监听端口为 50000,模型缓存在 sensevoice-models 卷中,删除卷会重新下载模型。
- llama.cpp 版为单文件二进制、内置 FSMN-VAD、运行时不依赖 Python,需从 Releases 获取预编译版本。
核心亮点
- 多语言支持广,中英日韩粤语一次识别,省去多模型切换
- 推理速度快,SenseVoiceSmall 轻量设计,适合实时场景
- 集成情感识别和音频事件检测,功能全面,减少系统复杂度
不足之处
- 模型对非主流方言和口音鲁棒性待验证
- 文档和社区生态相比成熟ASR项目(如Whisper)仍待完善
适用场景
- 实时语音转写与字幕生成,覆盖多语言会议和直播
- 客服中心通话质检,自动识别情绪和关键事件
- 智能语音助手,同时理解语种、情感和背景音
替代项目
Whisper、FunASR、Kaldi
上一篇:vosk-api
同类项目推荐
crx-live-translate
开源
给任意网页直播实时加双语字幕,免费看外语直播
Chrome/Edge BROWSER EXTENSION that can RECOGNIZE any live audio/video streaming then···
cobra
开源
本地实时判断有没有人说话,省算力又护隐私
On-device voice activity detection (VAD) powered by deep learning
dikte
开源
按住说话,松手出字,Linux 桌面语音输入
Voice-to-text dictation app.
FluidVoice
开源
本地语音听写,说完即出字,隐私不出设备
Fastest and only macOS Dictation app with on-device STT and custom trained AI enhanc···
whistle-esp32
开源
按住说话,ESP32 离线识别七种语言颜色词并点亮 LED
Whistle speech-to-text running fully on an ESP32-S3: hold a button, say a colour in ···
betterwispr
开源
按住快捷键说话,文字直接打进任意 Mac 应用
Free, open-source, local-first dictation app for macOS. Hold a shortcut, speak, and ···
deepgram-go-sdk
开源
Go 语言接入 Deepgram,快速实现语音转写与合成
Official Go SDK for Deepgram.
CrispASR
开源
C++ 本地跑多款语音模型,离线转录不用 Python
C++ ggml runtime hub for multilingual ASR and TTS models: Cohere Transcribe, Parakee···
spokestack-python
开源
在嵌入式设备上快速集成离线语音交互,无需云端依赖。
Spokestack is a library that allows a user to easily incorporate a voice interface i···