File size: 2,338 Bytes
139f25e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
---
license: other
pipeline_tag: audio-classification
tags:
  - axera
  - npu
  - wake-word
  - onnx
  - int8
---

# WakeUp.axera「你好,爱芯」唤醒词检测(AX650 / AX620E 预编译版)

16kHz 单声道 int16 PCM 输入,每 32ms 一帧输出唤醒得分与触发事件。
**NPU 预编译、开箱即用**:模型已编译为 AXMODEL(INT8),无需自己编译。

| 芯片 | 模型文件 | 说明 |
|------|----------|------|
| AX650 / AX630 | `models/ax650/model.axmodel` | NPU3,板端实测 1.83ms/帧(RTF≈0.057),已验证 |
| AX620E | `models/ax620e/model.axmodel` | NPU2,Pulsar2 编译 + 内置仿真检查通过 |

板端实测(AX650C):**“你好,爱芯”触发(max_sum 9.85)/“你好,其他”静默
(max_sum -5.70)**。量化 cosine ≈ 0.999+。

## 快速开始(板端 AX650/AX630/AX620E)

```bash
bash setup.sh      # 安装 numpy/soundfile + pyaxengine
bash run.sh        # 跑内置示例(你好,爱芯 应触发 / 你好,其他 应静默)
```

用自己的音频:

```bash
python python/wakeup_axera_sdk/example.py \
  --model models/ax650/model.axmodel --input 你的音频.wav --threshold 0.615
```

音频要求:16kHz、单声道、int16 WAV(PCM)。阈值默认 0.615(DET_MODE_95),
更灵敏可用 0.608(DET_MODE_90)。

## 在自己的代码里用(Python)

```python
from wakeup_axera_sdk.detector import WakeWordDetector

det = WakeWordDetector("models/ax650/model.axmodel", threshold=0.615)
result = det.process(int16_512_samples)   # 32ms 一帧
print(result["wake_score"], result["window_sum"], result["triggered"])
```

## C++ SDK

`cpp/` 提供 CMake 工程 + 已交叉编译的 `cpp/build-aarch64/model_example`(aarch64),
直接链接 AX Engine runtime,板端实测与 Python 结果一致(见 `cpp/README.md`)。

## 目录

- `models/`:ax650/(NPU3)与 ax620e/(NPU2)的预编译 AXMODEL + 示例音频
- `python/`:Python SDK(NPU 专用,仅依赖 pyaxengine,无 CPU 回退)
- `cpp/`:C++ SDK + 预编译 example(aarch64)
- `reports/`:训练与板端验证报告
- `setup.sh` / `run.sh`:一键安装与演示

NPU 专用版说明见 `NPU_ONLY_SDK.md`;本包不包含训练/编译流程(GitHub 仓库
ml-inory/WakeUp.axera 提供完整可复现的 model_convert + train 源码)。