OpenWakeWord.AXERA / README.md
HY-2012's picture
First commit
759d0dd verified
|
Raw
History Blame Contribute Delete
2.74 kB
# openWakeWord.AXERA
[openWakeWord](https://github.com/dscripka/openWakeWord) 语音唤醒 AXERA 推理 demo。
## 功能
- 支持 AX650 和 AX630C;
- 支持 Python 和 C++ 板端推理;
## 目录结构
```text
OpenWakeWord.AXERA/
├── models/
│ ├── 650/ # AX650 axmodel
│ └── 630C/ # AX630C axmodel
├── config/ # STFT/mel 权重
├── audio/openwakeword/
├── scripts/ # Python 推理代码
├── cpp/ # C++ 源码、编译和运行脚本
└── README.md
```
## Python
```bash
创建虚拟环境
conda create -n OpenWakeWord python=3.10
conda activate OpenWakeWord
安装 [pyaxengine](https://github.com/AXERA-TECH/pyaxengine/releases/latest):
pip install axengine-x.x.x-py3-none-any.whl
pip install -r requirements.txt
```
AX650:
```bash
python scripts/openwakeword_ax650.py
```
AX630C:
```bash
python scripts/openwakeword_ax630c.py
```
自定义音频目录、阈值和输出文件:
```bash
python scripts/openwakeword_ax630c.py \
--audio-dir audio/openwakeword \
--threshold 0.5 \
--output outputs/openwakeword_ax630c.json
```
## C++
### 编译环境
AX650 和 AX630C 共用 Arm GNU 9.2 AArch64 交叉编译器:
<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>
```bash
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
bash cpp/download_bsp.sh all
```
### 交叉编译
```bash
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
```
编译结果:
```text
cpp/bin/openwakeword_ax650
cpp/bin/openwakeword_ax630c
```
### 板端批量测试
AX650:
```bash
THRESHOLD=0.5 bash cpp/run_batch_openwakeword_ax650.sh
```
AX630C:
```bash
THRESHOLD=0.5 bash cpp/run_batch_openwakeword_ax630c.sh
```
结果分别写入 `outputs/cpp_ax650_batch/``outputs/cpp_ax630c_batch/`
详细 C++ 说明见 `cpp/README.md`
## 参考
- [openWakeWord](https://github.com/dscripka/openWakeWord)
- [Pulsar2](https://pulsar2-docs.readthedocs.io/en/latest/pulsar2/introduction.html)