ln_bt_report_earphone_connection_status();//上报耳机状态
}
+ #ifdef DO_VAD_AUTH
//VAD认证
do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_VAD_AUTH, NULL, 0);
+ #endif
init_falg = true;
}
// 检查WebSocket连接状态
int wsState = ln_ws_get_connection_state();
bool wsConnected = (wsState == 2); // WS_STATE_CONNECTED = 2
+ #ifdef DO_VAD_AUTH
// 检查vad认证状态
bool vadInitialized = ln_ws_is_vad_server_initialized();
bool vadAuthSuccess = ln_ws_is_vad_server_auth_success();
{
vadFirstSuccess = true;
}
-
+ #endif
if (!wsConnected) {
// 不满足条件,显示提示并设置2秒定时器自动隐藏
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入对话模式条件不满足: wsConnected=%d", wsConnected);
dialogueTransitioning = false;
return; // 不满足条件,不进入对话模式
}
+ #ifdef DO_VAD_AUTH
else if(vadAuthSuccess == false)
{
ThunderBirdModel::GetInstance()->StartReminderHideTimer(2000);
dialogueTransitioning = false;
return;
}
+ #endif
do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_INIT_VAD_ENABLE, NULL, 0);
// 条件满足,进入对话模式
ThunderBirdModel::GetInstance()->LowFrequence();//减低视频帧率
+/*\r
+ * Build Information\r
+ * Git Commit: 66c47c389123d4d655eb5b1d63b5918355f15ce7\r
+ * Branch: master\r
+ * Build Date: 2025-12-30 09:34:02\r
+ */\r
+\r
#ifndef _IMSL_VAD_DLL\r
#define _IMSL_VAD_DLL\r
#include <stdint.h>\r
struct AuthInfo\r
{\r
char dmp_token[64];\r
+ int server_addr;\r
};\r
#endif\r
\r
init_vad(&conf);\r
\r
struct AuthInfo auth_info;\r
+ auth_info.server_addr = 0; // 0 表示 国内 1 表示 海外\r
strcpy(auth_info.dmp_token, dmp_token);\r
auth_vad(&auth_info);\r
\r
/* VAD 处理参数 */
// ⚠️ 注意:VAD 库支持可变长度输入,推荐每次 < 100ms(imsl_vad.h 第 93 行)
// 因此无需固定帧大小和缓冲区,直接传入 MP3 解码后的 PCM 数据即可
+#define MAX_SAMPLES_PER_CALL 1600UL // 100ms @ 16kHz
/* VAD 服务器状态 */
typedef struct {
pcm_call_count++;
+#ifdef DO_VAD_AUTH
LOGIN_SUCC:
-
if(dmp_auth==0)
{
char dmp_token[64]={0};
}
}
}
-
-
-
-
- /* 检查数据长度是否合理(VAD 推荐 < 100ms)*/
- const size_t MAX_SAMPLES_PER_CALL = 1600; // 100ms @ 16kHz
+#endif
+ // 检查数据长度是否合理(VAD 推荐 < 100ms)
if (sample_count > MAX_SAMPLES_PER_CALL) {
IMSL_WARN("[VAD_SERVER] Warning: PCM data too long (%zu samples > %zu), consider splitting\n",
sample_count, MAX_SAMPLES_PER_CALL);
ln_ws_audio_deinit();
break;
case CUSTOM_CMD_MSG_VAD_AUTH:
- PRINT("VAD auth via custom cmd\n");
+ PRINT("VAD auth via custom cmd\n");
+ #ifdef DO_VAD_AUTH
ln_ws_vad_auth();
+ #endif
break;
case CUSTOM_CMD_MSG_START_SECOND_STREAM_IN:
#ifdef SUPPORT_AI_SERVICE