雷鸟 VAD取消认证流程
author孙春阳 <snickersun@163.com>
Tue, 30 Dec 2025 03:54:30 +0000 (11:54 +0800)
committer孙春阳 <snickersun@163.com>
Tue, 30 Dec 2025 03:54:30 +0000 (11:54 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp
code/sdk/zhihui/imsl/include/imsl_vad.h
code/sdk/zhihui/imsl/lib/libimslnn.a
code/sdk/zhihui/imsl/lib/libimslvad.a
code/sdk/zhihui/imsl/src/vad_server.c
code/sdk/zhihui/utils/custom_cmd_service.c

index a1989ba..c3b821b 100644 (file)
@@ -1742,8 +1742,10 @@ extern "C" {
                         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;
                 }
                
index 79231a0..2e7b28e 100644 (file)
@@ -1152,6 +1152,7 @@ namespace OHOS
                 // 检查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();
@@ -1159,7 +1160,7 @@ namespace OHOS
                 {
                     vadFirstSuccess = true;
                 }
-
+                #endif
                 if (!wsConnected) {
                     // 不满足条件,显示提示并设置2秒定时器自动隐藏
                     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入对话模式条件不满足: wsConnected=%d", wsConnected);
@@ -1188,6 +1189,7 @@ namespace OHOS
                     dialogueTransitioning = false;
                     return; // 不满足条件,不进入对话模式
                 }
+                #ifdef DO_VAD_AUTH
                 else if(vadAuthSuccess == false)
                 {
                     ThunderBirdModel::GetInstance()->StartReminderHideTimer(2000);
@@ -1215,6 +1217,7 @@ namespace OHOS
                     dialogueTransitioning = false;
                     return;
                 }
+                #endif
                 do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_INIT_VAD_ENABLE, NULL, 0);
                 // 条件满足,进入对话模式
                 ThunderBirdModel::GetInstance()->LowFrequence();//减低视频帧率
index 0fb9e20..f25f90c 100644 (file)
@@ -1,3 +1,10 @@
+/*\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
@@ -9,6 +16,7 @@ typedef int (*imsl_nn_printf_func)(const char *format, ...);
 struct AuthInfo\r
 {\r
     char dmp_token[64];\r
+    int server_addr;\r
 };\r
 #endif\r
 \r
@@ -87,6 +95,7 @@ void free_vad(void);
     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
index 8accb13..f782dba 100644 (file)
Binary files a/code/sdk/zhihui/imsl/lib/libimslnn.a and b/code/sdk/zhihui/imsl/lib/libimslnn.a differ
index a0f4521..5139cdf 100644 (file)
Binary files a/code/sdk/zhihui/imsl/lib/libimslvad.a and b/code/sdk/zhihui/imsl/lib/libimslvad.a differ
index f684714..2b69383 100644 (file)
@@ -27,6 +27,7 @@
 /* VAD 处理参数 */
 // ⚠️ 注意:VAD 库支持可变长度输入,推荐每次 < 100ms(imsl_vad.h 第 93 行)
 // 因此无需固定帧大小和缓冲区,直接传入 MP3 解码后的 PCM 数据即可
+#define MAX_SAMPLES_PER_CALL 1600UL  // 100ms @ 16kHz
 
 /* VAD 服务器状态 */
 typedef struct {
@@ -144,8 +145,8 @@ static errcode_t vad_process_pcm_data(const int16_t *pcm_data, size_t sample_cou
     
     pcm_call_count++;
     
+#ifdef DO_VAD_AUTH
 LOGIN_SUCC:
-
     if(dmp_auth==0)
     {
         char dmp_token[64]={0};
@@ -171,12 +172,8 @@ LOGIN_SUCC:
             }
         }  
     }
-
-
-
-    
-    /* 检查数据长度是否合理(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);
index 9857e8e..333051d 100644 (file)
@@ -504,8 +504,10 @@ case CUSTOM_CMD_MSG_START_AI_ASR:
             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