From 74d5d83bb91e2d79b59ecca4baae9e9a62ad7287 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Wed, 6 Aug 2025 14:58:31 +0800 Subject: [PATCH] =?utf8?q?tts=E5=8F=91=E9=80=81=E6=96=87=E6=9C=AC=E6=B7=BB?= =?utf8?q?=E5=8A=A0=E9=87=8D=E8=AF=95=E6=9C=BA=E5=88=B6=EF=BC=8C=E8=B6=85?= =?utf8?q?=E8=BF=8710=E6=AC=A1=E5=81=9C=E6=AD=A2=E5=AE=9A=E6=97=B6?= =?utf8?q?=E5=99=A8=EF=BC=8C=E7=9B=AE=E5=89=8Dtts=E6=9C=8D=E5=8A=A1?= =?utf8?q?=E4=BC=9A=E5=87=BA=E7=8E=B0=E5=8F=91=E7=AC=AC=E4=B8=80=E6=AC=A1?= =?utf8?q?=E6=96=87=E6=9C=AC=E6=97=B6=E5=80=99tts=E6=96=AD=E5=BC=80?= =?utf8?q?=E5=AF=BC=E8=87=B4=E4=B8=8D=E4=BC=9A=E6=92=AD=E6=94=BE=E7=AC=AC?= =?utf8?q?=E4=B8=80=E6=AC=A1=E5=8F=91=E9=80=81=E7=9A=84=E6=96=87=E6=9C=AC?= =?utf8?q?=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 | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 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 c70e520dc..792781ad2 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp @@ -1624,15 +1624,23 @@ namespace OHOS static constexpr const int8_t NUMBER_TEN = 15; static int8_t AI4G_IS_START_TTS_PLAY_CNT = NUMBER_TEN; static uint8_t tts_record_flag = 0; + // 添加一个静态变量用于跟踪连续出现0的次数 + static int s_tts_tick_zero_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()); AiVoiceModel::GetInstance().GetInit_4gai_task();//获取4gai服务状态 if (get_ai_tts_server_init_flag() == 0) //tts服务如果断开了,就停止定时器 { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "tts_server disconnect..."); - AiVoiceModel::GetInstance().stop_ai4g_tts_play_timer(); - return; + s_tts_tick_zero_count++; // 增加连续0的次数 + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "s_tts_tick_zero_count count: %d", s_tts_tick_zero_count); + if (s_tts_tick_zero_count >= 10) // 如果连续出现10次0,就停止定时器 + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "tts_server disconnect..."); + AiVoiceModel::GetInstance().stop_ai4g_tts_play_timer(); + return; + } } // 用来判断是否需要停止发送文本 if (AiVoiceModel::GetInstance().GetAccumulatedText().empty()) @@ -1717,6 +1725,7 @@ namespace OHOS } g_ai4g_is_start_tts_play_Handle = nullptr; AI4G_IS_START_TTS_PLAY_CNT = NUMBER_TEN; + s_tts_tick_zero_count = 0; // 重置计数器 #if TTS_TEST tts_record_flag = 0; std::string filePath = "/user/aiRecord456.mp3"; -- 2.17.1