sherpa 是下一代 Kaldi 项目的部署框架。 sherpa 支持在多种平台上,使用多种语言绑定来部署与语音相关的预训练模型。
目前,sherpa 包含以下子项目
特性 | sherpa | sherpa-onnx | sherpa-ncnn |
---|---|---|---|
底层框架 | PyTorch + k2 | ONNX Runtime | Tencent NCNN |
主要用途 | 研究、模型训练和实验 | 跨平台高性能推理部署(桌面 / 服务器) | 移动端、IoT 设备等轻量化推理 |
模型格式 | PyTorch .pt | ONNX .onnx | NCNN .param + .bin |
支持平台 | Linux / macOS / Windows | Linux / macOS / Windows | Android / iOS / 嵌入式平台 |
语言绑定 | Python | C++ / 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 等)。
常见语音技术术语
缩写 / 术语 | 全称 (英文) | 中文解释 |
---|---|---|
ASR | Automatic Speech Recognition | 自动语音识别:将语音转为文本 |
TTS | Text-To-Speech | 语音合成:将文本转为语音 |
VAD | Voice Activity Detection | 语音活动检测:检测语音段起止 |
Keyword Spotting | Keyword Spotting | 关键词检测:识别特定词汇或短语 |
Speaker Identification (Speaker ID) | Speaker Identification | 说话人识别:识别说话者的身份 |
Spoken Language Identification (Language ID) | Spoken Language Identification | 语言识别:识别语音的语言类型 |
Audio Tagging | Audio Tagging | 音频标签:为音频打标签(事件分类) |
Punctuation | Punctuation 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 系列是三类不同的语音合成技术路线。 它们主要在 架构设计、音质、合成速度、可扩展性 上有所区别。
特性 | Matcha | Kokoro | VITS |
---|---|---|---|
音质 | ★★★★☆(清晰但略硬) | ★★★★(多音色但音质稍逊) | ★★★★★(自然、流畅) |
速度 | 最快(实时/低延迟) | 快(接近 Matcha) | 较快(优化后可接近实时) |
多说话人 | ❌(单音色) | ✅(多音色/多语言) | 部分支持(需多说话人版本) |
部署难度 | 低(轻量) | 中等(模型稍大) | 中等-偏高 |
适用场景 | 实时客服、树莓派等低算力设备 | 多角色客服、多语言播报 | 高品质 TTS、视频解说、配音 |