SenseVoice-small-onnx REST API实战:3步搭建生产级语音转写服务
1. 项目概述
SenseVoice-small-onnx 是一个基于 ONNX 量化的轻量级多语言语音识别模型,专为生产环境设计。这个开源项目让开发者能够快速搭建高性能的语音转写服务,支持中文、粤语、英语、日语和韩语等多种语言识别。
核心优势:
- 轻量高效:量化后的模型仅230MB,推理速度快
- 开箱即用:提供完整的REST API解决方案
- 多语言支持:自动检测50+种语言
- 生产就绪:包含健康检查、API文档等企业级功能
2. 快速搭建三步指南
2.1 环境准备
首先确保你的系统满足以下要求:
- Python 3.8+
- 至少2GB可用内存
- Linux/Windows/macOS系统
安装所需依赖:
pip install funasr-onnx gradio fastapi uvicorn soundfile jieba2.2 服务启动
下载项目代码后,使用以下命令启动服务:
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.3 验证服务
服务提供三个关键端点:
- Web界面:http://localhost:7860
- API文档:http://localhost:7860/docs
- 健康检查:http://localhost:7860/health
打开健康检查页面,如果看到{"status":"healthy"},说明服务已正常运行。
3. API使用详解
3.1 基础转写API
通过REST API提交音频文件进行转写:
curl -X POST "http://localhost:7860/api/transcribe" \ -F "file=@audio.wav" \ -F "language=auto" \ -F "use_itn=true"参数说明:
file:音频文件路径language:语言代码或"auto"自动检测use_itn:是否启用逆文本正则化
3.2 Python SDK调用
对于Python开发者,可以直接使用SDK:
from funasr_onnx import SenseVoiceSmall # 初始化模型 model = SenseVoiceSmall( "/root/ai-models/danieldong/sensevoice-small-onnx-quant", batch_size=10, quantize=True ) # 执行转写 result = model(["audio.wav"], language="auto", use_itn=True) print(result[0])3.3 高级功能
批量处理:
# 批量转写多个文件 results = model(["audio1.wav", "audio2.mp3"], language="zh")情感分析(需模型支持):
result = model("audio.wav", output_emotion=True)4. 模型配置与管理
4.1 模型路径
服务默认使用以下路径的模型:
/root/ai-models/danieldong/sensevoice-small-onnx-quant文件结构:
model_quant.onnx:量化后的ONNX模型(230MB)config.yaml:模型配置文件tokens.txt:词汇表文件
4.2 自定义配置
通过修改app.py中的参数可以调整服务行为:
app = FastAPI() model = SenseVoiceSmall( model_dir="自定义路径", batch_size=20, # 调整批处理大小 device="cuda" if torch.cuda.is_available() else "cpu" )5. 性能优化建议
5.1 硬件加速
如果使用GPU,确保安装CUDA并设置:
model = SenseVoiceSmall(..., device="cuda")5.2 批处理优化
根据服务器内存调整batch_size参数:
- 小内存设备:batch_size=5-10
- 大内存服务器:batch_size=20-50
5.3 缓存策略
服务会自动缓存加载的模型,避免重复初始化。对于长期运行的服务,建议定期检查内存使用情况。
6. 总结
通过本文介绍的三个简单步骤,你已经成功部署了一个生产级的语音转写服务。SenseVoice-small-onnx 凭借其轻量化和多语言支持的特性,非常适合以下场景:
- 企业客服系统:自动转写客户通话
- 会议记录:实时生成会议纪要
- 内容生产:为视频/播客添加字幕
- 语音助手:构建多语言交互系统
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。