SenseVoice-small语音识别快速上手:7步完成本地服务部署与API测试
1. 准备工作与环境搭建
在开始之前,确保你的系统满足以下基本要求:
- 操作系统:Linux (推荐Ubuntu 20.04+) 或 macOS
- Python版本:3.8 或更高
- 内存:至少4GB可用内存
- 磁盘空间:至少1GB可用空间
安装必要的依赖包:
pip install funasr-onnx gradio fastapi uvicorn soundfile jieba这些包将提供语音识别、Web界面和API服务所需的核心功能。安装过程通常只需几分钟,具体时间取决于你的网络速度。
2. 下载与配置模型
SenseVoice-small模型已经过ONNX量化处理,体积小巧但性能强劲:
- 模型大小:仅230MB(量化后)
- 支持语言:中文、粤语、英语、日语、韩语等50+种语言
- 自动检测:可智能识别输入音频的语言类型
模型默认会下载到以下路径:
/root/ai-models/danieldong/sensevoice-small-onnx-quant如果你已经有模型文件,可以直接放到这个目录下,服务会自动识别并使用。
3. 启动语音识别服务
使用以下命令启动服务:
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:7860服务启动后,可以通过三种方式访问:
- Web界面:http://localhost:7860
- API文档:http://localhost:7860/docs
- 健康检查:http://localhost:7860/health
4. 使用Web界面测试
Web界面是最简单的测试方式:
- 打开浏览器访问 http://localhost:7860
- 点击"上传"按钮选择音频文件(支持wav、mp3等格式)
- 选择语言(或使用"auto"自动检测)
- 点击"转写"按钮
- 稍等片刻即可看到识别结果
界面还会显示识别耗时、检测到的语言类型等详细信息。
5. 通过API调用服务
对于开发者,可以通过REST API集成语音识别功能:
curl -X POST "http://localhost:7860/api/transcribe" \ -F "file=@audio.wav" \ -F "language=auto" \ -F "use_itn=true"API返回JSON格式的结果,包含:
- 识别文本
- 语言类型
- 处理耗时
- 情感分析结果(如启用)
6. Python代码集成
如果你想在自己的Python项目中使用,可以直接调用模型:
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])这段代码展示了如何批量处理多个音频文件(最多10个),并自动进行逆文本正则化处理。
7. 常见问题解决
音频格式不支持?
- 确保使用常见格式如wav、mp3、m4a、flac
- 可以使用ffmpeg转换格式:
ffmpeg -i input.mp3 output.wav
识别准确率不高?
- 确保音频质量良好(采样率16kHz以上)
- 对于特定语言,明确指定语言代码而非使用auto
- 尝试调整use_itn参数
服务启动失败?
- 检查端口7860是否被占用
- 确认模型路径权限正确
- 查看日志中的具体错误信息
内存不足?
- 减少batch_size参数值
- 关闭不必要的应用程序释放内存
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。