适用边界
先判断它是否适合你的生产约束
适合
- 本地或内网 OpenAI 兼容语音接口
- CPU 优先、可选 CUDA 的低依赖部署
- 需要文件转写、流式 partial/final 与服务端 VAD
不适合
- 需要预编译跨平台发布包
- 需要多租户认证、计费或持久任务队列
- 没有在目标硬件完成容量测试就直接暴露公网
| 模型 | SenseVoiceSmall-GGUF / FSMN-VAD-GGUF |
|---|---|
| 硬件 | cpu / nvidia-gpu |
| 操作系统 | Linux |
| 接口 | OpenAI-compatible HTTP / OpenAI realtime WebSocket / WS /v1/realtime?intent=transcription / SSE / SRT/VTT |
运行路径
从安装到已知音频验证
以下命令来自当前验证清单;上线前固定依赖、模型和硬件。
安装
git clone https://github.com/QwenAudio/SenseVoice.git && cd SenseVoice
git checkout b054623cca8f015b73ec471dce4f473ac47413da
python3 -m pip install -U huggingface_hub
bash runtime/llama.cpp/download-funasr-model.sh sensevoice model
cmake -S runtime/llama.cpp -B runtime/llama.cpp/build -DCMAKE_BUILD_TYPE=Release
cmake --build runtime/llama.cpp/build --target sensevoice-server -j
启动
runtime/llama.cpp/build/bin/sensevoice-server -m model/sensevoice-small-q8.gguf -vad model/fsmn-vad.gguf --threads 8 --max-connections 4 --max-audio-seconds 300 127.0.0.1 8040
健康检查
curl -fsS http://127.0.0.1:8040/health
curl -fsS http://127.0.0.1:8040/v1/models
Smoke test
发布前必须通过的最小验证
curl -fsS http://127.0.0.1:8040/v1/audio/transcriptions -F file=@speech.wav
curl -fsS http://127.0.0.1:8040/v1/audio/transcriptions -F file=@speech.wav -F response_format=vtt | tee transcript.vtt && grep -q WEBVTT transcript.vtt
curl -fsSN http://127.0.0.1:8040/v1/audio/transcriptions -F file=@speech.wav -F stream=true | grep -q transcript.text.done
python3 runtime/llama.cpp/tests/stream_client.py 127.0.0.1 8040 speech_16k.wav 200
运行与容量
把可运行推进到可运营
运行检查
- 固定 merge commit、SenseVoice GGUF 与 FSMN-VAD GGUF
- 显式设置连接上限、单请求音频上限和读取超时
- 发布前分别压测 REST、SSE 和 WebSocket,并保留旧二进制回滚
容量变量
- 音频时长、语言、声道和 VAD 分段分布
- 并发、队列等待、预热与模型缓存状态
- 精确硬件、驱动、运行时和线程配置
故障排查
- 先用 CPU、已知 16 kHz WAV 和 REST JSON 路径验证
- 确认模型文件名为 sensevoice-small-q8.gguf 与 fsmn-vad.gguf
- WebSocket 客户端发送 16 kHz 单声道 PCM16 的 base64 chunk
安全边界
生产入口默认不信任
- 默认绑定 127.0.0.1 或可信内网
- 在反向代理实施 TLS、认证、MIME、请求体大小、速率和并发限制
- 只加载经过来源与摘要校验的 GGUF
已知限制
当前官方验证覆盖 Linux 源码构建;服务不内置生产认证、TLS、多租户配额或持久队列,必须由网关和基础设施补齐。
公开基准仅用于复现起点,不替代目标业务负载测试。
证据与反馈