Files
AC707N/SDK/apps/watch/mode/bt/bt_call_kws_handler.c
T
2025-12-03 11:12:34 +08:00

87 lines
2.6 KiB
C

#ifdef SUPPORT_MS_EXTENSIONS
#pragma bss_seg(".bt_call_kws_handler.data.bss")
#pragma data_seg(".bt_call_kws_handler.data")
#pragma const_seg(".bt_call_kws_handler.text.const")
#pragma code_seg(".bt_call_kws_handler.text")
#endif
#include "btstack/avctp_user.h"
#include "app_main.h"
#include "jl_kws/jl_kws_api.h"
#include "app_config.h"
#include "audio_cvp.h"
#include "smart_voice.h"
#include "esco_player.h"
#include "media/asr/jl_kws.h"
#if (TCFG_KWS_VOICE_RECOGNITION_ENABLE || TCFG_CALL_KWS_SWITCH_ENABLE) && !TCFG_AUDIO_ASR_DEVELOP
static void jl_call_kws_handler(int event)
{
if (event == BT_STATUS_PHONE_INCOME) {
printf("BT_STATUS_PHONE_INCOME");
#if TCFG_KWS_VOICE_RECOGNITION_ENABLE
audio_aec_reboot(1);
jl_kws_speech_recognition_open();
jl_kws_speech_recognition_start();
#endif
#if TCFG_CALL_KWS_SWITCH_ENABLE
audio_aec_reboot(1);
/* audio_phone_call_kws_start(); */
audio_smart_voice_detect_open(JL_KWS_COMMAND_KEYWORD);
#endif /* #if TCFG_CALL_KWS_SWITCH_ENABLE */
} else if (event == BT_STATUS_PHONE_ACTIVE) {
printf("BT_STATUS_PHONE_ACTIVE");
#if TCFG_KWS_VOICE_RECOGNITION_ENABLE
jl_kws_speech_recognition_close();
audio_aec_reboot(0);
#endif
#ifdef CONFIG_BOARD_AISPEECH_VAD_ASR
printf("----aispeech_state phone active");
ais_platform_asr_close();
esco_mic_reset();
#endif /*CONFIG_BOARD_AISPEECH_VAD_ASR*/
#if TCFG_CALL_KWS_SWITCH_ENABLE
audio_smart_voice_detect_close();
audio_aec_reboot(0);
#endif /* TCFG_CALL_KWS_SWITCH_ENABLE */
} else if (event == BT_STATUS_PHONE_HANGUP) {
printf("BT_STATUS_PHONE_HANGUP");
#if TCFG_KWS_VOICE_RECOGNITION_ENABLE
jl_kws_speech_recognition_close();
#endif
#if TCFG_CALL_KWS_SWITCH_ENABLE
if (!esco_player_runing()) {
audio_phone_call_kws_close();
}
#endif /* TCFG_CALL_KWS_SWITCH_ENABLE */
}
}
static int kws_btstack_msg_handler(int *msg)
{
struct bt_event *bt = (struct bt_event *)msg;
switch (bt->event) {
case BT_STATUS_PHONE_INCOME:
jl_call_kws_handler(BT_STATUS_PHONE_INCOME);
break;
case BT_STATUS_PHONE_ACTIVE:
jl_call_kws_handler(BT_STATUS_PHONE_ACTIVE);
break;
case BT_STATUS_PHONE_HANGUP:
jl_call_kws_handler(BT_STATUS_PHONE_HANGUP);
break;
default:
break;
}
return 0;
}
APP_MSG_PROB_HANDLER(call_kws_btstack_msg_entry) = {
.owner = 0xff,
.from = MSG_FROM_BT_STACK,
.handler = kws_btstack_msg_handler,
};
#endif /* #if (TCFG_KWS_VOICE_RECOGNITION_ENABLE || TCFG_CALL_KWS_SWITCH_ENABLE) && !TCFG_AUDIO_ASR_DEVELOP */