部署合同

SenseVoice 原生 OpenAI 实时服务

用一个无 Python 运行时的 C++ 二进制提供 SenseVoice REST、SSE、SRT/VTT 与 OpenAI Realtime WebSocket 转写。

成熟度
生产验证
FunASR
SenseVoice main@b054623c
运行时
sensevoice-server@558bd67c
验证日期
2026-08-13

适用边界

先判断它是否适合你的生产约束

适合

  • 本地或内网 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

安全边界

生产入口默认不信任

已知限制

当前官方验证覆盖 Linux 源码构建;服务不内置生产认证、TLS、多租户配额或持久队列,必须由网关和基础设施补齐。

公开基准仅用于复现起点,不替代目标业务负载测试。

证据与反馈

从原始资料核对部署合同