feat(voice): gate local wake prompt on network readiness

This commit is contained in:
chenjintao
2026-08-12 09:47:55 +08:00
parent 004400fee7
commit 7a4699ea68
15 changed files with 323 additions and 62 deletions
+19
View File
@@ -50,6 +50,10 @@ fi
if ! rg -n 'TQ_LOCAL_WAKE_RESPONSE_PROMPT_ENABLE' \
main/Kconfig.projbuild \
components/control_plane/src/multimodal/control_plane_multimodal_local_wake.c >/dev/null 2>&1 ||
! rg -n 'TQ_LOCAL_WAKE_READY_TIMEOUT_MS' \
main/Kconfig.projbuild \
sdkconfig.defaults \
components/control_plane/src/multimodal/control_plane_multimodal_local_wake.c >/dev/null 2>&1 ||
! rg -n 'CONFIG_TQ_LOCAL_WAKE_RESPONSE_PROMPT_ENABLE=y' \
sdkconfig.defaults >/dev/null 2>&1 ||
! rg -n 'local_wake_response\.opus' \
@@ -59,6 +63,21 @@ if ! rg -n 'TQ_LOCAL_WAKE_RESPONSE_PROMPT_ENABLE' \
[[ ! -f components/platform/assets/audio_prompts/local_wake_response.opus ]]; then
fail "Local wake response prompt must remain enabled with its packaged asset contract"
fi
if ! rg -n 'DOMAIN_EXPRESSION_LISTENING|DOMAIN_EXPRESSION_TRIGGER_LOCAL_WAKE' \
components/domain/include/domain.h \
components/domain/src/runtime/domain_runtime_adapters.c \
components/control_plane/src/multimodal/control_plane_multimodal_local_wake.c >/dev/null 2>&1 ||
! rg -n 'PTT_STATE_WAIT_WAKE_PROMPT|control_plane_local_wake_prompt_gate_active' \
components/control_plane/src/runtime/control_plane_runtime_workers.c >/dev/null 2>&1 ||
! rg -n '!local_wake_prompt_gate.*&&' \
components/control_plane/src/runtime/control_plane_runtime_workers.c >/dev/null 2>&1 ||
! rg -n '^ listening[012]$' components/platform/CMakeLists.txt >/dev/null 2>&1 ||
! rg -n 'listening[012]\.png' components/platform/src/lcd_direct_assets.c >/dev/null 2>&1 ||
[[ ! -f components/platform/assets/lcd/listening0.png ]] ||
[[ ! -f components/platform/assets/lcd/listening1.png ]] ||
[[ ! -f components/platform/assets/lcd/listening2.png ]]; then
fail "Local wake must show its packaged listening animation while gating speech uplink until the ready prompt finishes"
fi
if ! rg -n '#include "esp_afe_aec.h"' components/platform/src/multimodal/audio_pipeline.c >/dev/null 2>&1 ||
! rg -n 'afe_aec_create\(' components/platform/src/multimodal/audio_pipeline/audio_pipeline_codec_impl.c >/dev/null 2>&1 ||
! rg -n 'afe_aec_process\(' components/platform/src/multimodal/audio_pipeline/audio_pipeline_runtime_impl.c >/dev/null 2>&1; then