4GAI对话优化
authorluozheng <1732036298@qq.com>
Mon, 14 Jul 2025 08:14:31 +0000 (16:14 +0800)
committerluozheng <1732036298@qq.com>
Mon, 14 Jul 2025 08:14:31 +0000 (16:14 +0800)
code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoiceModel.h
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp

index ef3ac4d..3892f87 100644 (file)
@@ -122,7 +122,7 @@ namespace OHOS
         void start_ai4g_connect_timer(uint32_t interval = 1000);
         void stop_ai4g_connect_timer(void);
 
-        void start_ai4g_tts_play_timer(uint32_t interval = 500);
+        void start_ai4g_tts_play_timer(uint32_t interval = 700);
         void stop_ai4g_tts_play_timer(void);
 
         void SetSelectAiModel(int index);
index 159c49d..1bb3790 100644 (file)
@@ -755,7 +755,7 @@ namespace OHOS
     {
         const std::string punctuation = ",。!?;:))”、"; // 要替换的中文标点
         const char replacement = ',';                         // 替换为英文逗号
-        const size_t MAX_SEGMENT_LENGTH = 90;                // 最大分段长度
+        const size_t MAX_SEGMENT_LENGTH = 120;                // 最大分段长度
         const size_t MIN_SEGMENT_LENGTH = 1;                  // 最小发送长度(可调整)
 
         if (accumulatedText.empty())
@@ -868,9 +868,9 @@ namespace OHOS
         {
             if (view_ != nullptr)
             {
-                start_ai4g_tts_play_timer(); // 开启一个定时器,用于播放tts音频
                 if (view_->GetAiVoiceScrollView(AIVOICE_RETURN_RESULT_TEXT_VIEWID) && view_->GetAiVoiceScrollView(AIVOICE_RETURN_RESULT_TEXT_VIEWID)->IsVisible())
                 {
+                    start_ai4g_tts_play_timer(); // 开启一个定时器,用于播放tts音频
                     if (!OHOS::AiVoiceModel::GetInstance().GetIsLimitDisplayed()) // 如果ai答案没有显示到极限了,就更新ai答案字符串
                     {
                         aiAnswerStr += str;
@@ -1502,7 +1502,7 @@ namespace OHOS
     /*处理AI4G连接定时器到期时的处理*/
     void AiVoiceModel::start_ai4g_connect_timer(uint32_t interval)
     {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiVoiceModel::start_ai_isready_timer");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiVoiceModel::start_ai4g_connect_timer");
         /* -------------------------- 1.检查定时器是否已经存在,如果存在则返回 ------------------------- */
         if (g_ai4g_is_suc_connected_Handle != nullptr)
         {
@@ -1565,6 +1565,7 @@ namespace OHOS
         if (AiVoiceModel::GetInstance().GetAccumulatedText().empty())
         {
             AiVoiceModel::GetInstance().stop_ai4g_tts_play_timer();
+            return;
         }
         if (get_bk_websocket_tts_tick() == 0) // 代表可以发录音文本
         {
@@ -1592,7 +1593,7 @@ namespace OHOS
 
     void AiVoiceModel::start_ai4g_tts_play_timer(uint32_t interval)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiVoiceModel::start_ai_isready_timer");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiVoiceModel::start_ai4g_tts_play_timer");
         // AI4G_IS_START_TTS_PLAY_CNT = NUMBER_TEN;
         /* -------------------------- 1.检查定时器是否已经存在,如果存在则返回 ------------------------- */
         if (g_ai4g_is_start_tts_play_Handle != nullptr)
index c0690d6..0f6e3a1 100644 (file)
@@ -407,7 +407,8 @@ namespace OHOS
                 {
                     AiVoiceModel::GetInstance().stop_ai4g_tts_play_timer();
                     // usleep(50000);
-                    LOS_Msleep(50);
+                    set_clear_queue_stream(1);
+                    LOS_Msleep(100);
                     uapi_UI_start_asr();
                     ChangeViewAndLogicOperator(AIVOICE_RETURN_RESULT_TEXT_VIEWID, AIVOICE_AIMODE_CONNECTING);
                     return true;
@@ -426,7 +427,7 @@ namespace OHOS
                     // model->cancel_tts_play();
                     set_clear_queue_stream(1);
                     // usleep(50000);
-                    LOS_Msleep(50);
+                    LOS_Msleep(100);
                     dinit_ai_task();
                 }
             }