sherpa-onnx:跨平台全功能语音工具箱(ASR/TTS/VAD/说话人)部署指南
sherpa-onnx 是 k2-fsa 团队开源的跨平台语音推理框架,基于 ONNX Runtime,本地运行 ASR(流式/非流式)、TTS、说话人分离、说话人识别、语种识别、音频标签、VAD、语音增强、关键词检出、声源分离等全功能,覆盖 12 种编程语言与 Android/iOS/Windows/macOS/Linux/HarmonyOS/WebAssembly,支持 RKNN/QNN/Ascend/Axera/Intel NPU 加速。
一、项目官方信息
| 项目 | 信息 |
|---|---|
| GitHub 仓库 | k2-fsa/sherpa-onnx |
| 开源协议 | Apache-2.0 |
| 主要语言 | C++ / Python |
| Star 数 | 12k+ |
| 运行时 | ONNX Runtime |
| 支持 NPU | RKNN / QNN / Ascend / Axera / Intel OpenVINO |
二、官方图片
sherpa-onnx 仓库社交预览图:

三、环境要求
- Python 3.8+;
- 无需 GPU,CPU 即可实时推理;
- 支持 x64 / arm64 / arm32 / riscv64;
- 预编译模型从 Hugging Face k2-fsa 下载;
- 可选 NPU 加速(Rockchip/Qualcomm/Ascend/Axera/Intel)。
四、部署步骤
1. 安装 Python 包
pip install sherpa-onnx
2. 下载预训练模型(以 Zipformer 中文 ASR 为例)
curl -SL -B -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-zh-14M-2023-02-23.tar.bz2
tar xvf sherpa-onnx-streaming-zipformer-zh-14M-2023-02-23.tar.bz2
3. 离线文件转写
import sherpa_onnx
recognizer = sherpa_onnx.OfflineRecognizer.from_transducer(
encoder="model/encoder-epoch-99-avg-1.onnx",
decoder="model/decoder-epoch-99-avg-1.onnx",
joiner="model/joiner-epoch-99-avg-1.onnx",
tokens="model/tokens.txt",
num_threads=1,
sample_rate=16000,
feature_dim=80,
decoding_method="greedy_search",
)
stream = recognizer.create_stream()
stream.accept_waveform(16000, audio_samples)
recognizer.decode_stream(stream)
print(stream.result.text)
4. 流式识别(麦克风实时)
import sherpa_onnx
import sounddevice as sd
recognizer = sherpa_onnx.OnlineRecognizer.from_transducer(
encoder="model/encoder.onnx",
decoder="model/decoder.onnx",
joiner="model/joiner.onnx",
tokens="model/tokens.txt",
num_threads=2,
sample_rate=16000,
feature_dim=80,
)
with sd.InputStream(samplerate=16000, channels=1, dtype="float32") as stream:
s = recognizer.create_stream()
while True:
samples, _ = stream.read(1024)
s.accept_waveform(16000, samples.reshape(-1))
while recognizer.is_ready(s):
recognizer.decode_stream(s)
print(recognizer.get_result(s).text)
5. TTS 合成
import sherpa_onnx
tts_config = sherpa_onnx.OfflineTtsConfig(
model=sherpa_onnx.OfflineTtsModelConfig(
vits=sherpa_onnx.OfflineTtsVitsModelConfig(
model="vits-icefall-zh-aishell3/model.onnx",
lexicon="vits-icefall-zh-aishell3/lexicon.txt",
tokens="vits-icefall-zh-aishell3/tokens.txt",
)
),
max_num_sentences=1,
)
tts = sherpa_onnx.OfflineTts(tts_config)
audio = tts.generate("你好,欢迎使用 sherpa-onnx 语音合成。", sid=0, speed=1.0)
五、使用方法
支持的模型
- ASR:Whisper、Paraformer、Zipformer、FireRedASR、SenseVoice、Qwen2-Audio、TeleSpeech-ASR、Dolphin、Moonshine;
- TTS:VITS、Matcha、Kokoro、MeloTTS、Piper;
- VAD:silero-vad;
- 说话人:3D-Speaker、wespeaker;
- 语音增强:GTCRN、DPDFNet、VoxLock;
- 声源分离:spleeter、UVR;
- 关键词检出:KWS;
- 其他:语种识别、音频标签、标点恢复。
平台与语言
- 跨平台:Android/iOS/Windows/macOS/Linux/HarmonyOS/WebAssembly;
- 12 种语言绑定:C++、C、Python、JS、Java、C#、Kotlin、Swift、Go、Dart、Rust、Pascal;
- 嵌入式:NVIDIA Jetson Orin/Nano、树莓派、RV1126、LicheePi4A、VisionFive 2、旭日 X3、爱芯派、RK3588、SpacemiT-K1/K3;
- NPU:Rockchip RKNN、Qualcomm QNN、Ascend、Axera、Intel OpenVINO;
- 框架:提供 Flutter / Tauri 预编译 App。
Hugging Face Spaces 在线试用
无需安装,浏览器即可体验:说话人分离、ASR、Whisper ASR、TTS、字幕生成、音频标签、声源分离、语种识别。
六、常见问题 FAQ
Q1:sherpa-onnx 是什么? 跨平台语音推理工具箱,覆盖 ASR/TTS/VAD/说话人等全功能。
Q2:怎么安装?
pip install sherpa-onnx,CPU 即可。
Q3:支持移动端吗? 支持 Android/iOS/HarmonyOS,提供预编译 AAR/Framework/APK。
Q4:支持哪些模型? Whisper、Paraformer、Zipformer、SenseVoice、VITS、Kokoro、silero-vad 等。
Q5:需要 GPU 吗? 不需要,ONNX Runtime CPU 实时即可,可选 NPU 加速。
Q6:有哪些语言绑定? C++/C/Python/JS/Java/C#/Kotlin/Swift/Go/Dart/Rust/Pascal,另支持 WebAssembly。
Q7:支持 NPU 吗? 支持 RKNN、QNN、Ascend、Axera、Intel OpenVINO。
七、跳转链接
- GitHub 仓库:k2-fsa/sherpa-onnx
- Hugging Face 模型:k2-fsa
- 预编译 Release:github.com/k2-fsa/sherpa-onnx/releases
- Discord:discord.gg/fJdxzg2VbG