YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Sherpa-ONNX-KWS.AXERA
Sherpa-ONNX Zipformer KWS 语音唤醒 AXERA 推理 demo。
功能
- 支持 AX630C 和 AX650;
- 支持中英文关键词检测;
- 支持通过关键词文件配置唤醒词;
- 提供 Python 和 C++ 板端推理。
目录结构
Sherpa-ONNX-KWS.AXERA/
├── models/
│ ├── 650/ # AX650 axmodel
│ └── 630C/ # AX630C axmodel
├── config/ # tokens、keywords 和初始 decoder 输出
├── audio/sherpa/ # 测试音频
├── scripts/ # Python 推理代码
├── cpp/ # C++ 源码、编译和运行脚本
└── README.md
Python
创建虚拟环境
conda create -n OpenWakeWord python=3.10
conda activate OpenWakeWord
安装 pyaxengine及python库:
pip install axengine-x.x.x-py3-none-any.whl
pip install -r requirements.txt
AX650推理:
python scripts/sherpa_kws_ax650.py --chunk-size 8
AX630C推理:
python scripts/sherpa_kws_ax630c.py --chunk-size 8
C++
编译环境
AX630C 和 AX650 共用 Arm GNU 9.2 AArch64 交叉编译器:
mkdir -p cpp/toolchains
wget -P cpp/toolchains \
https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz
tar -xf cpp/toolchains/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz \
-C cpp/toolchains
BSP SDK 下载地址:
| 平台 | BSP SDK |
|---|---|
| AX650 | https://github.com/ZHEQIUSHUI/assets/releases/download/ax_3.6.2/msp_50_3.10.2.zip |
| AX630C | https://github.com/ZHEQIUSHUI/assets/releases/download/ax_3.6.2/msp_20e_3.0.0.zip |
下载并整理到 cpp/toolchains/:
bash cpp/download_bsp.sh all
交叉编译
export TOOLCHAIN_ROOT="cpp/toolchains/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu"
bash cpp/build_ax650.sh
bash cpp/build_ax630c.sh
编译结果:
cpp/bin/sherpa_kws_ax650
cpp/bin/sherpa_kws_ax630c
板端批量测试
AX650:
CHUNK_SIZE=8 MAX_ACTIVE_PATHS=16 \
bash cpp/run_batch_sherpa_kws_ax650.sh
AX630C:
CHUNK_SIZE=8 MAX_ACTIVE_PATHS=16 \
bash cpp/run_batch_sherpa_kws_ax630c.sh
结果分别写入 outputs/cpp_ax650_batch_* 和 outputs/cpp_ax630c_batch_*。
MAX_ACTIVE_PATHS
MAX_ACTIVE_PATHS 是关键词解码的 beam search 宽度,取值范围为 1 到 32。
1 路速度最快,但可能提前丢掉正确音素路径;16 路是当前测试集的推荐值;
32 路只在较长或容易混淆的关键词仍漏检时尝试。实际部署应选择能够稳定唤醒的
最小值,并用批量测试确认召回率、误报率和 RTF。
新增唤醒词
生成 token 并追加到 config/keywords.txt:
python scripts/generate_keyword_tokens.py \
--text 金融动荡 \
--append
生成结果示例:
j īn r óng d òng d àng @金融动荡
关键词文件在运行时读取,不需要重新导出或量化模型。可在 token 后添加 #0.25
设置触发阈值;降低阈值会提高召回率,同时也可能增加误报。
详细 C++ 说明见 cpp/README.md。
参考
- Downloads last month
- -
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support