// 添加一个静态变量用于跟踪连续出现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());
{
AiVoiceModel::GetInstance().ProcessTextByPunctuation();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "发送TTS文本(连续第%d次为0,奇数次)", continue_zero_count);
+ fouce_count = 0;
}
}
else // 偶数次(第2、4、6...次):跳过
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;
}
AI4G_IS_START_TTS_PLAY_CNT = NUMBER_TEN;
s_tts_tick_zero_count = 0; // 重置计数器
continue_zero_count = 0; // 重置静态变量
+ fouce_count = 0;
}
}
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);
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;
}
}
- void uapi_start_tts_single_txt(char *buf)
+bool uapi_start_tts_single_txt(char *buf)
{
{
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=
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) {
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);
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);