OpenWakeWord.AXERA / cpp /README.md
inoryQwQ's picture
cpp 脚本清理:移除批量脚本、修正单条运行脚本 BSP 路径、README 对齐预编译发布 (#4)
12d8ee3
|
Raw
History Blame Contribute Delete
2.57 kB

openWakeWord C++(HF 发布版)

本目录只包含预编译产物:可直接运行的二进制与供二次开发链接的共享库。 源码、构建脚本与 BSP 下载在 GitHub 仓库: https://github.com/AXERA-TECH/openWakeWord.AXERA

目录

cpp/
├── bin/
│   ├── openwakeword_ax650     # AX650 预编译可执行文件
│   └── openwakeword_ax630c    # AX630C 预编译可执行文件
├── lib/
│   ├── ax650/libopenwakeword_ax.so     # AX650 共享库
│   └── ax630c/libopenwakeword_ax.so    # AX630C 共享库
├── include/openwakeword_ax.hpp         # 公共 API 头文件
└── run_openwakeword_ax*.sh             # 板端单条运行脚本

WAV、STFT、mel 在 CPU 端完成,embedding 与 6 个 classifier 使用对应平台的 axmodel 在 NPU 执行。

板端运行(预编译二进制)

AX650:

AUDIO=audio/openwakeword/alexa_test.wav bash cpp/run_openwakeword_ax650.sh

AX630C:

AUDIO=audio/openwakeword/alexa_test.wav bash cpp/run_openwakeword_ax630c.sh

运行脚本自动设置板端运行库路径(AX650 默认 /soc/lib,AX630C 默认 /opt/lib);如 BSP 在其他位置,用环境变量覆盖:

AXERA_BSP_LIB_DIR=/path/to/bsp/lib bash cpp/run_openwakeword_ax650.sh

阈值可通过 THRESHOLD 调整。输入音频必须为 16 kHz、单声道、16-bit PCM WAV。

二次开发(共享库)

#include "openwakeword_ax.hpp"

openwakeword::WakeWordDetector detector(
    "models/650",                                 // axmodel 目录
    "config/openwakeword_mel_weights.bin",        // CPU mel 权重
    0.5f);                                        // 阈值

// 每 80ms 喂一帧 1280 个 int16 样本(16 kHz)
openwakeword::FrameResult result = detector.ProcessFrame(pcm_frame);
for (std::size_t i = 0; i < result.names.size(); ++i) {
    printf("%s max_score=%.4f\n", result.names[i].c_str(),
           result.max_scores[i]);
}
if (result.any_triggered) { /* 唤醒 */ }
detector.Reset();  // 新会话时清空流式状态

在自己的 CMake 工程中链接:

add_library(openwakeword_ax SHARED IMPORTED)
set_target_properties(openwakeword_ax PROPERTIES
  IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/cpp/lib/ax650/libopenwakeword_ax.so")
target_include_directories(your_app PRIVATE cpp/include)
target_link_libraries(your_app PRIVATE openwakeword_ax)

板端运行时需提供 BSP 动态库路径(AX650 通常为 /soc/lib,AX630C 为 /opt/lib)。