使用 sherpa-onnx 实现轻量级、高效的关键词检测(Keyword Spotting)前言在智能语音交互中,关键词检测(Keyword Spotting, KWS) 是唤醒语音助手的第一步。 本文将介绍如何使用 sherpa-onnx —— 一个由新一代 Kaldi 团队开发的开源语音识别工具包,来快速搭建一个实时关键词检测系统。为什么选择 sherpa-onnx? /sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01/test_wavs/test_keywords.txt三、自定义关键词sherpa-onnx sherpa-onnx 支持多种平台,可以使用:C++ API 直接集成交叉编译到 ARM/RISC-V使用 int8 量化模型减少内存占用七、总结本文介绍了如何使用 sherpa-onnx 快速搭建一个实时关键词检测系统 /usr/bin/env python3# -*- coding: utf-8 -*-"""Sherpa-ONNX 关键词检测 Demo使用 PyAudio 从麦克风实时读取音频,结合 sherpa-onnx
Sherpa-onnx 是一个基于 ONNX 运行时的开源语音处理库,支持多种语音相关任务,包括语音识别、语音合成、说话人识别、语言识别等。 sherpa-onnx的设计理念是提供一个灵活、易用且高性能的语音处理解决方案,可以在各种设备和场景中部署使用。 离线运行:sherpa-onnx的一大特点是可以完全离线运行,不需要网络连接。这对于注重隐私和安全性的应用场景非常重要。 高性能:基于ONNX运行时,sherpa-onnx能够提供高效的推理性能,适合在各种计算能力的设备上部署。 从实际应用的角度来看,Sherpa-onnx 已经被用于离线语音识别与声纹识别技术的实践。 Sherpa-onnx 在说话人识别功能方面表现出色,具备强大的硬件兼容性、灵活的编程语言支持以及高效的模型优化能力。
rv1109&rv1126移植sherpa-onnx 实现TTS功能 主要问题是rv1126&1109使用的gcc是gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf 10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc alientek@ubuntu:~/rv1106/sherpa-onnx 5、下载模型,运行 wget https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-icefall-zh-aishell3 /rule-10-0.wav \ > "WIFI配置完成" /home/alientek/rv1106/sherpa-onnx/sherpa-onnx/csrc/parse-options.cc:Read /rule-10-0.wav 'WIFI配置完成' /home/alientek/rv1106/sherpa-onnx/sherpa-onnx/csrc/lexicon.cc:ConvertTextToToken
服务端部署通常用 FunASR 的 Docker 服务或 vLLM;端侧部署(手机、嵌入式设备)则主要靠: sherpa-onnx(Next-gen Kaldi,10.8k Star):把 Paraformer 比如"用 SenseVoice 模型 + 通过 FunASR 接口调用 + 用 sherpa-onnx 部署到手机上"。下面先比模型,再讲怎么用、怎么部署。 Paraformer-zh(220M) 否 sherpa-onnx(iOS/Android/鸿蒙/RPi/RISC-V/WebAssembly) Qwen3-ASR-0.6B 未明确 未提及端侧方案 八、服务端部署 如果部署在服务器上(云端/机房),不需要 sherpa-onnx 这类端侧运行时,各方案都有自己的服务端部署方式: FunASR Docker 服务:提供离线文件转录和实时流式转录两种服务 需要部署到手机或嵌入式设备中文精度优先选 SenseVoice-Small 或 Paraformer,通过 sherpa-onnx 部署,平台覆盖最广。
k2-fsa/sherpa-onnxhttps://github.com/k2-fsa/sherpa-onnx Stars: 2.0k License: Apache-2.0 sherpa-onnx
本地运行语音处理:Sherpa-ONNX介绍sherpa-ONNX 是一个开源项目,它允许您在本地设备上运行语音处理模型,包括语音识别、语音合成、说话人识别和语音活动检测。
sherpa-onnx:基于ONNXRuntime的ASR/TTS推理框架。README中明确提到,SmartJavaAI在ASR侧支持100+语言,并支持实时语音识别。 语音合成(TTS):多语言、多风格发声在TTS侧,SmartJavaAI同样通过sherpa-onnx集成了多语言语音合成能力,支持中文、方言、粤语、英文、德语等多种语言。 语音与会议场景通过ASR(Whisper/Vosk/sherpa-onnx)+TTS,可以支持会议转写、语音助手、语音导航等功能;实时语音识别能力也适合在客服热线、语音机器人等场景中使用。
funasr-export ++model=paraformer ++quantize=false ++device=cpu社区生态围绕 FunASR 的模型,社区贡献了多种部署方案:Triton GPU 部署sherpa-onnx
mitmproxy mitmproxy Python 37 https://github.com/rainyl/dartcv dartcv C++ 38 https://github.com/k2-fsa/sherpa-onnx sherpa-onnx C++ 39 https://github.com/mattdesl/gifenc gifenc JavaScript 40 https://github.com/Akaaba