Loading...

文章背景图

sherpa-onnx:跨平台全功能语音工具箱(ASR/TTS/VAD/说话人)部署指南

2026-10-27
0
- 字
- 分钟
|

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 仓库社交预览图:

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。

七、跳转链接

评论交流

文章目录