File size: 1,459 Bytes
759d0dd 12d8ee3 759d0dd 12d8ee3 759d0dd 12d8ee3 759d0dd | 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 | #!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TARGET="${AXERA_TARGET:-AX650}"
AUDIO="${AUDIO:-${ROOT}/audio/openwakeword/alexa_test.wav}"
THRESHOLD="${THRESHOLD:-0.5}"
case "${TARGET}" in
AX650)
BINARY="${ROOT}/cpp/bin/openwakeword_ax650"
MODELS_DIR="${MODELS_DIR:-${ROOT}/models/650}"
# 板端运行库默认路径(AX650 通常为 /soc/lib),可用 AXERA_BSP_LIB_DIR 覆盖
BSP_LIB_DIR="${AXERA_BSP_LIB_DIR:-${AX650_BSP_LIB_DIR:-/soc/lib}}"
;;
AX630C)
BINARY="${ROOT}/cpp/bin/openwakeword_ax630c"
MODELS_DIR="${MODELS_DIR:-${ROOT}/models/630C}"
BSP_LIB_DIR="${AXERA_BSP_LIB_DIR:-${AX630C_BSP_LIB_DIR:-/opt/lib}}"
;;
*)
echo "ERROR: AXERA_TARGET must be AX650 or AX630C" >&2
exit 2
;;
esac
if [[ ! -x "${BINARY}" ]]; then
echo "ERROR: 预编译二进制不存在: ${BINARY}(HF 发布版应包含 cpp/bin/)" >&2
exit 2
fi
for name in embedding_model alexa_v0.1 hey_jarvis_v0.1 hey_mycroft_v0.1 \
hey_rhasspy_v0.1 timer_v0.1 weather_v0.1; do
model="${MODELS_DIR}/openwakeword__${name}.axmodel"
if [[ ! -f "${model}" ]]; then
echo "ERROR: ${TARGET} model is missing: ${model}" >&2
exit 2
fi
done
export LD_LIBRARY_PATH="${BSP_LIB_DIR}:${LD_LIBRARY_PATH:-}"
exec "${BINARY}" \
--models-dir "${MODELS_DIR}" \
--mel-weights "${ROOT}/config/openwakeword_mel_weights.bin" \
--audio "${AUDIO}" \
--threshold "${THRESHOLD}"
|