From 84a26abbcfc85d7db0d0bdf0a06a4f489b043c0e Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=AD=99=E6=98=A5=E9=98=B3?= Date: Tue, 30 Dec 2025 11:54:30 +0800 Subject: [PATCH] =?utf8?q?=E9=9B=B7=E9=B8=9F=20VAD=E5=8F=96=E6=B6=88?= =?utf8?q?=E8=AE=A4=E8=AF=81=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../thunderbird/src/ThunderBirdModel.cpp | 2 ++ .../thunderbird/src/ThunderBirdPresenter.cpp | 5 ++++- code/sdk/zhihui/imsl/include/imsl_vad.h | 9 +++++++++ code/sdk/zhihui/imsl/lib/libimslnn.a | Bin 122514 -> 74968 bytes code/sdk/zhihui/imsl/lib/libimslvad.a | Bin 77844 -> 75412 bytes code/sdk/zhihui/imsl/src/vad_server.c | 11 ++++------- code/sdk/zhihui/utils/custom_cmd_service.c | 4 +++- 7 files changed, 22 insertions(+), 9 deletions(-) diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp index a1989ba41..c3b821bd3 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp @@ -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; } diff --git a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp index 79231a007..2e7b28e40 100644 --- a/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp +++ b/code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp @@ -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();//减低视频帧率 diff --git a/code/sdk/zhihui/imsl/include/imsl_vad.h b/code/sdk/zhihui/imsl/include/imsl_vad.h index 0fb9e2017..f25f90cea 100644 --- a/code/sdk/zhihui/imsl/include/imsl_vad.h +++ b/code/sdk/zhihui/imsl/include/imsl_vad.h @@ -1,3 +1,10 @@ +/* + * Build Information + * Git Commit: 66c47c389123d4d655eb5b1d63b5918355f15ce7 + * Branch: master + * Build Date: 2025-12-30 09:34:02 + */ + #ifndef _IMSL_VAD_DLL #define _IMSL_VAD_DLL #include @@ -9,6 +16,7 @@ typedef int (*imsl_nn_printf_func)(const char *format, ...); struct AuthInfo { char dmp_token[64]; + int server_addr; }; #endif @@ -87,6 +95,7 @@ void free_vad(void); init_vad(&conf); struct AuthInfo auth_info; + auth_info.server_addr = 0; // 0 表示 国内 1 表示 海外 strcpy(auth_info.dmp_token, dmp_token); auth_vad(&auth_info); diff --git a/code/sdk/zhihui/imsl/lib/libimslnn.a b/code/sdk/zhihui/imsl/lib/libimslnn.a index 8accb13c5ecd9a16571d32e9ce8d4eff2a498cdb..f782dbaae876f9da3b062b492ab1e1b5871f045a 100644 GIT binary patch delta 484 zcmbQVm;J^`mI;>i#)d`;V35GYz`&5hz`%KfHrUaEfdLcOBLw}vFfic5;XVuu#Nw(D z1_or@62QQK71u*0CQ2|cAme!x7#Ki!X$p3{GlGEu86O4u4jEsTVPJsa+dw&7*a=`fdLCR delta 41023 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

{L|0^@r8YlGY8$YS)k_OQ!Z1 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 delta 16539 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 EKZH$n`v3p{ diff --git a/code/sdk/zhihui/imsl/src/vad_server.c b/code/sdk/zhihui/imsl/src/vad_server.c index f684714be..2b69383d0 100644 --- a/code/sdk/zhihui/imsl/src/vad_server.c +++ b/code/sdk/zhihui/imsl/src/vad_server.c @@ -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); diff --git a/code/sdk/zhihui/utils/custom_cmd_service.c b/code/sdk/zhihui/utils/custom_cmd_service.c index 9857e8e7f..333051de4 100644 --- a/code/sdk/zhihui/utils/custom_cmd_service.c +++ b/code/sdk/zhihui/utils/custom_cmd_service.c @@ -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 -- 2.17.1