news 2026/7/16 21:10:33

SenseVoice-small-onnx REST API开发手册:curl与Python调用完整示例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SenseVoice-small-onnx REST API开发手册:curl与Python调用完整示例

SenseVoice-small-onnx REST API开发手册:curl与Python调用完整示例

1. 服务概述

SenseVoice-small-onnx是一款基于ONNX量化的多语言语音识别服务,支持中文、粤语、英语、日语和韩语等多种语言的语音转写。该服务通过REST API提供高效的语音识别能力,特别适合需要快速集成语音识别功能的开发者。

核心优势

  • 轻量级量化模型,仅230MB大小
  • 支持50+种语言的自动检测
  • 单条10秒音频推理仅需70毫秒
  • 提供富文本转写功能(含情感识别和音频事件检测)

2. 环境准备

2.1 安装依赖

在开始使用前,需要安装必要的Python依赖包:

pip install funasr-onnx gradio fastapi uvicorn soundfile jieba

2.2 服务启动

安装完成后,可以通过以下命令启动服务:

python3 app.py --host 0.0.0.0 --port 7860

服务启动后,可以通过以下地址访问:

  • Web界面:http://localhost:7860
  • API文档:http://localhost:7860/docs
  • 健康检查:http://localhost:7860/health

3. REST API调用方法

3.1 使用curl调用API

最基本的调用方式是使用curl命令发送POST请求:

curl -X POST "http://localhost:7860/api/transcribe" \ -F "file=@audio.wav" \ -F "language=auto" \ -F "use_itn=true"

参数说明

  • file: 音频文件路径(支持wav、mp3、m4a、flac等格式)
  • language: 语言代码(auto为自动检测)
  • use_itn: 是否启用逆文本正则化(将口语化数字转为标准格式)

3.2 常见语言代码

语言代码对应语言
auto自动检测
zh中文
en英语
yue粤语
ja日语
ko韩语

4. Python SDK调用方法

4.1 基本调用示例

对于Python开发者,可以使用funasr-onnx库直接调用模型:

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])

4.2 批量处理示例

模型支持批量处理音频文件,提高处理效率:

# 批量处理多个文件 audio_files = ["audio1.wav", "audio2.mp3", "audio3.m4a"] results = model(audio_files, language="zh", use_itn=False) for i, result in enumerate(results): print(f"文件 {audio_files[i]} 的转写结果:") print(result)

5. 高级功能使用

5.1 情感识别

服务可以识别语音中的情感倾向:

result = model(["audio.wav"], language="auto", return_emotion=True) print(result[0]["text"]) # 转写文本 print(result[0]["emotion"]) # 情感分析结果

5.2 音频事件检测

可以检测音频中的特殊事件(如笑声、掌声等):

result = model(["audio.wav"], language="auto", return_audio_events=True) print(result[0]["audio_events"]) # 音频事件列表

6. 性能优化建议

6.1 批量处理

对于大量音频文件,建议使用批量处理模式:

# 最佳批量大小取决于硬件配置,通常8-16效果较好 model = SenseVoiceSmall(batch_size=16, quantize=True)

6.2 内存管理

长时间运行的服务器应用,可以启用自动内存清理:

model = SenseVoiceSmall(auto_cleanup=True)

7. 常见问题解答

7.1 模型缓存位置

服务会自动检测并使用缓存模型,默认路径为:

/root/ai-models/danieldong/sensevoice-small-onnx-quant

7.2 支持的音频格式

服务支持绝大多数常见音频格式:

  • 无损格式:wav、flac
  • 有损格式:mp3、m4a、ogg

7.3 ITN功能说明

逆文本正则化(ITN)功能可以将口语化的数字表达转为标准格式:

  • "三点五" → "3.5"
  • "百分之二十" → "20%"
  • "二零二三年" → "2023年"

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 17:23:36

通义千问3-Reranker-0.6B效果展示:代码检索性能对比

通义千问3-Reranker-0.6B效果展示:代码检索性能对比 1. 这个轻量级重排序模型到底有多强 第一次看到Qwen3-Reranker-0.6B这个名字时,我其实有点怀疑——0.6B参数规模的模型,在代码检索这种专业性极强的任务上真能打吗?毕竟代码不…

作者头像 李华
网站建设 2026/7/15 1:59:36

RetinaFace与计算机网络:分布式人脸检测系统设计

RetinaFace与计算机网络:分布式人脸检测系统设计 1. 为什么单台设备扛不住大规模人脸检测任务 你有没有遇到过这样的场景:公司安防系统需要实时分析200路高清摄像头的画面,每路视频每秒要检测30帧,粗略算下来每秒要处理6000张图…

作者头像 李华
网站建设 2026/7/1 4:11:19

StructBERT中文语义匹配系统版本管理:模型/代码/配置三者协同

StructBERT中文语义匹配系统版本管理:模型/代码/配置三者协同 1. 为什么需要结构化版本管理? 你有没有遇到过这样的情况:上周还能准确识别“苹果手机”和“苹果水果”差异的语义系统,这周突然把两者判为高度相似?或者…

作者头像 李华
网站建设 2026/7/15 3:16:10

Qwen-Turbo-BF16在科研论文写作中的应用

Qwen-Turbo-BF16在科研论文写作中的应用 1. 科研写作的现实困境与新解法 写论文对很多研究者来说,不是最烧脑的部分,而是最耗神的部分。你可能已经反复修改了三遍引言,却还在纠结第一句话怎么写才够学术;文献综述写了两周&#…

作者头像 李华