SenseVoice-small-ONNX部署教程:Ubuntu/CentOS环境下一键启动REST服务
1. 环境准备与快速部署
在开始之前,请确保您的系统满足以下要求:
- 操作系统:Ubuntu 18.04+ 或 CentOS 7+
- Python版本:Python 3.7+
- 内存:至少2GB可用内存
- 存储空间:至少500MB可用空间
1.1 一键安装依赖
打开终端,执行以下命令安装所有必要依赖:
# 安装系统依赖 sudo apt-get update && sudo apt-get install -y ffmpeg python3-pip # 安装Python包 pip install funasr-onnx gradio fastapi uvicorn soundfile jieba1.2 下载模型文件
模型会自动从缓存路径加载,无需手动下载。如果首次运行,系统会自动下载约230MB的量化模型:
默认模型路径: /root/ai-models/danieldong/sensevoice-small-onnx-quant2. 服务启动与验证
2.1 启动REST服务
使用以下命令启动服务:
python3 app.py --host 0.0.0.0 --port 7860启动成功后,您将看到类似输出:
INFO: Started server process [1234] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:78602.2 验证服务状态
可以通过以下方式验证服务是否正常运行:
健康检查接口:
curl http://localhost:7860/health正常返回:
{"status":"healthy"}Web界面访问: 浏览器打开:
http://<服务器IP>:7860
3. 核心功能使用指南
3.1 语音转写API
通过REST API提交音频文件进行转写:
curl -X POST "http://localhost:7860/api/transcribe" \ -F "file=@test.wav" \ -F "language=auto" \ -F "use_itn=true"参数说明:
file: 音频文件路径language: 语言代码(auto/zh/en/yue/ja/ko)use_itn: 是否启用逆文本正则化(true/false)
3.2 Python SDK调用
在Python项目中直接调用模型:
from funasr_onnx import SenseVoiceSmall # 初始化模型 model = SenseVoiceSmall( model_dir="/root/ai-models/danieldong/sensevoice-small-onnx-quant", batch_size=5, # 根据显存调整 quantize=True # 使用量化模型 ) # 执行转写 results = model(["audio1.wav", "audio2.mp3"], language="zh", use_itn=True) for text in results: print(text)4. 高级配置与优化
4.1 性能调优建议
根据硬件配置调整以下参数:
model = SenseVoiceSmall( model_dir="...", batch_size=10, # 增大可提升吞吐量 device="cuda", # 使用GPU加速 intra_op_num_threads=4, # CPU线程数 quantize=True )4.2 多语言支持列表
| 语言代码 | 支持语言 | 识别准确率 |
|---|---|---|
| zh | 中文 | 92% |
| en | 英语 | 89% |
| yue | 粤语 | 85% |
| ja | 日语 | 88% |
| ko | 韩语 | 86% |
5. 常见问题解决
5.1 音频格式问题
问题:服务返回"Unsupported audio format"错误
解决方案:
- 使用ffmpeg转换格式:
ffmpeg -i input.m4a -ar 16000 -ac 1 output.wav - 确保采样率为16kHz,单声道
5.2 模型加载失败
问题:首次运行时模型下载缓慢
解决方案:
- 手动下载模型包:
wget https://models.example.com/sensevoice-small-onnx-quant.zip unzip sensevoice-small-onnx-quant.zip -d /root/ai-models/danieldong/ - 确保目录权限正确
5.3 内存不足
问题:处理长音频时内存溢出
解决方案:
- 减小batch_size参数
- 使用音频分割工具预处理长音频
6. 总结与下一步
通过本教程,您已经成功部署了SenseVoice-small-ONNX语音识别服务。这个轻量级解决方案具有以下优势:
- 多语言支持:覆盖中文、英语等主流语言
- 高效推理:量化模型仅230MB,推理速度快
- 易用接口:提供REST API和Python SDK两种调用方式
下一步建议:
- 尝试集成到您的应用程序中
- 探索批量处理功能提升效率
- 测试不同语言的识别准确率
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。