Skip to content
Go back

Sherpa-ONNX 入门

Published:  at  07:19 PM

sherpa 是下一代 Kaldi 项目的部署框架。 sherpa 支持在多种平台上,使用多种语言绑定来部署与语音相关的预训练模型。

目前,sherpa 包含以下子项目

特性sherpasherpa-onnxsherpa-ncnn
底层框架PyTorch + k2ONNX RuntimeTencent NCNN
主要用途研究、模型训练和实验跨平台高性能推理部署(桌面 / 服务器)移动端、IoT 设备等轻量化推理
模型格式PyTorch .ptONNX .onnxNCNN .param + .bin
支持平台Linux / macOS / WindowsLinux / macOS / WindowsAndroid / iOS / 嵌入式平台
语言绑定PythonC++ / Go / Python / Rust / Node.js 等C++ / Java(Android)
性能优化依赖 GPU 加速CPU/GPU 通用优化(ONNX Runtime)针对 ARM CPU 的高效 SIMD / Vulkan 加速
部署难度偏高(需 Python 环境和依赖安装)中等(只需 ONNX Runtime 依赖)较低(仅需 NCNN 库,适合移动端直接集成)
场景适用研究、定制化模型训练桌面端实时 ASR、跨平台应用移动端、低功耗设备实时语音识别

Kaldi → k2 → icefall → sherpa 关系

+-------------------+      +-------------------+      +-------------------+      +-------------------+
|       Kaldi       | ---> |        k2         | ---> |      icefall      | ---> |      sherpa       |
|  传统ASR工具包    |      |  新一代FSA工具库  |      | 基于k2的训练框架  |      |   部署模型推理    |
|   (C++ + 脚本)    |      |   (C++ + PyTorch) |      | 训练深度学习模型  |      | 多平台部署支持    |
+-------------------+      +-------------------+      +-------------------+      +-------------------+

说明:

Kaldi:经典开源 ASR 工具包。

k2:Kaldi 团队的下一代 FSA 库,专注深度学习集成。

icefall:基于 k2 构建,用于训练深度学习语音识别模型。

sherpa:将 icefall 模型部署到多平台的框架(含 sherpa-onnx、sherpa-ncnn 等)。

常见语音技术术语

缩写 / 术语全称 (英文)中文解释
ASRAutomatic Speech Recognition自动语音识别:将语音转为文本
TTSText-To-Speech语音合成:将文本转为语音
VADVoice Activity Detection语音活动检测:检测语音段起止
Keyword SpottingKeyword Spotting关键词检测:识别特定词汇或短语
Speaker Identification (Speaker ID)Speaker Identification说话人识别:识别说话者的身份
Spoken Language Identification (Language ID)Spoken Language Identification语言识别:识别语音的语言类型
Audio TaggingAudio Tagging音频标签:为音频打标签(事件分类)
PunctuationPunctuation Restoration标点恢复:给识别文本加标点

todo 补充实例操作

TTS

文档:https://k2-fsa.github.io/sherpa/onnx/tts/index.html

模型列表:https://k2-fsa.github.io/sherpa/onnx/tts/all/index.html

Hugging Face 在线演示:https://huggingface.co/spaces/k2-fsa/text-to-speech

RTF 概念

RTF(Real-Time Factor,实时因子):定义与指标 RTF 指模型合成语音所需时间与音频时长之比。例如 RTF=0.5 表示合成 1 秒语音只需 0.5 秒,意味着可以实时生成。

RTF = 处理音频所需的时间 / 音频时长

页面中每个模型后面都有在 Raspberry Pi 4 上的 RTF 测试,例如是否能在单板机上做到近实时 TTS 合成。

模型类型

Sherpa-ONNX 的 TTS 模型家族中,Matcha 系列、Kokoro 系列和 VITS 系列是三类不同的语音合成技术路线。 它们主要在 架构设计、音质、合成速度、可扩展性 上有所区别。

特性MatchaKokoroVITS
音质★★★★☆(清晰但略硬)★★★★(多音色但音质稍逊)★★★★★(自然、流畅)
速度最快(实时/低延迟)快(接近 Matcha)较快(优化后可接近实时)
多说话人❌(单音色)✅(多音色/多语言)部分支持(需多说话人版本)
部署难度低(轻量)中等(模型稍大)中等-偏高
适用场景实时客服、树莓派等低算力设备多角色客服、多语言播报高品质 TTS、视频解说、配音


Previous Post
F5-TTS 入门
Next Post
用 Tauri + FFmpeg + Whisper.cpp 从零打造本地字幕生成器