From cd090fc82eda6cd24e9f4d18559ffdc67b7afe35 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Sat, 16 Aug 2025 18:57:26 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96tts=E5=8F=91=E9=80=81=E6=96=87?= =?utf8?q?=E6=9C=AC=E9=80=BB=E8=BE=91=E8=A7=A3=E5=86=B3=E9=95=BF=E6=97=B6?= =?utf8?q?=E9=97=B4tick=E4=B8=8D=E6=9B=B4=E6=96=B0=E5=AF=BC=E8=87=B4?= =?utf8?q?=E7=9A=84=E4=B8=8D=E6=92=AD=E6=94=BE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/aivoice/src/AiVoiceModel.cpp | 13 +++++++++++++ .../slip/cat1Service/cat1_ai_server.cpp | 15 ++++++++------- .../drivers/peripheral/slip/cat1Service/cat1_ws.h | 4 ++-- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp index 65195626d..30f7a0b8d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp @@ -1530,6 +1530,7 @@ namespace OHOS // 添加一个静态变量用于跟踪连续出现0的次数 static int s_tts_tick_zero_count = 0; static int continue_zero_count = 0; // 静态变量:记录连续为0的次数(初始化为0) + static int fouce_count = 0; // static void AI4G_IS_START_TTS_CallbackProc(int data) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AI4G_IS_START_TTS_CallbackProc:%s", AiVoiceModel::GetInstance().GetAccumulatedText().c_str()); @@ -1575,6 +1576,7 @@ namespace OHOS { AiVoiceModel::GetInstance().ProcessTextByPunctuation(); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "发送TTS文本(连续第%d次为0,奇数次)", continue_zero_count); + fouce_count = 0; } } else // 偶数次(第2、4、6...次):跳过 @@ -1585,6 +1587,16 @@ namespace OHOS else { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "get_bk_websocket_tts_tick:%d(不满足发送条件)", get_bk_websocket_tts_tick()); + fouce_count++; + if(fouce_count >= 20) + { + if (!get_ai_osal_msg_queue_is_full()) + { + AiVoiceModel::GetInstance().ProcessTextByPunctuation(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "强行发送fouce_count:%d", fouce_count); + fouce_count = 0; + } + } } return; } @@ -1648,6 +1660,7 @@ namespace OHOS AI4G_IS_START_TTS_PLAY_CNT = NUMBER_TEN; s_tts_tick_zero_count = 0; // 重置计数器 continue_zero_count = 0; // 重置静态变量 + fouce_count = 0; } } diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ai_server.cpp b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ai_server.cpp index 360391565..9e3f29975 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ai_server.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ai_server.cpp @@ -274,7 +274,7 @@ bool ai_system_health_check(void); static osTimerId_t g_timer_time_sync = NULL; -void uapi_start_tts_single_txt(char *buf); +bool uapi_start_tts_single_txt(char *buf); void uapi_start_tts_single(void); @@ -951,7 +951,7 @@ void set_ai_tts_server_init_flag(uint8_t flag) ai_tts_server_init_flag = flag; } -uint8_t get_bk_websocket_tts_tick(void) +uint32_t get_bk_websocket_tts_tick(void) { return bk_websocket_tts_tick; } @@ -1942,7 +1942,7 @@ void uapi_start_tts_single(void) } - void uapi_start_tts_single_txt(char *buf) +bool uapi_start_tts_single_txt(char *buf) { @@ -1979,11 +1979,12 @@ void uapi_start_tts_single(void) { tts_reconnect=0; WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"send_websocket_message succ 0\n"); + free(jsonString); + return true; } - - free(jsonString); - } + return false; +} // char *tts_txt_str= @@ -2236,7 +2237,7 @@ TTS_SATRT: WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "TTS binary data received: %d bytes", len); msleep(1); } else if (type == WS_TEXT) { - WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "TTS text data received: %s", tts_recv_buf); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "TTS text data received: %s %d %d", tts_recv_buf,bk_websocket_tts_tick,osKernelGetTickCount()); send_msg_data_into_Ai_msg_queue((uint8_t *)tts_recv_buf, len, 201); bk_websocket_tts_tick = 0; } else if (type == WS_PONG) { diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.h b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.h index ade7af40c..ed1a69752 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.h +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.h @@ -14,7 +14,7 @@ void uapi_UI_start_asr(uint8_t type); void uapi_UI_stop_asr(void); -void uapi_start_tts_single_txt(char *buf); +bool uapi_start_tts_single_txt(char *buf); void uapi_UI_stop_start_asr_timeout(void); @@ -52,7 +52,7 @@ uint8_t get_ai_chat_service_init_flag(void); void set_ai_chat_service_init_flag(uint8_t flag); uint8_t get_ai_tts_server_init_flag(void); void set_ai_tts_server_init_flag(uint8_t flag); -uint8_t get_bk_websocket_tts_tick(void); +uint32_t get_bk_websocket_tts_tick(void); void uapi_start_asr_task(void); -- 2.17.1