return tts_break;
}
+char result_str_asr[256]={0};
+
void uapi_UI_start_asr(void)
{
-
- if(get_AIStreamend()==1)
- {
- AIStreamFlush();
+ memset_s(result_str_asr,256,0,256);
- tts_break=1;
+ // uapi_stop_tts();
- if(bk_websocket_tts_tick!=0)
- {
- send_msg_data_into_Ai_msg_queue((uint8_t *)"tts_recv_buf",13,201);
- tts_server_deinit();
- tts_reconnect=1;
- }
+ tts_break=1;
+ tts_server_deinit();
+ tts_reconnect=1;
- }
+ AIStreamFlush();
+ send_msg_data_into_Ai_msg_queue((uint8_t *)"tts_recv_buf",13,201);
+
+
+
asr_need_stop=0;
asr_server_init();
{
tts_server_init();
}
-
+
}
void uapi_UI_stop_asr(void)
{
- stop_AudioCaptureProcess_AI();
+ if(stop_AudioCaptureProcess_AI())
+ {
+ // if(strlen(result_str_asr))
+ // {
+ // send_ai_txt(0,result_str_asr);
+ // memset_s(result_str_asr,256,0,256);
+ // }
+
+ }
}
-void send_ai_txt(uint8_t type,char *msg)
+bool send_ai_txt(uint8_t type,char *msg)
{
cJSON* dataJSON = cJSON_CreateObject();
if (dataJSON == NULL) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"Error creating JSON object\n");
- return;
+ return false;
}
if (jsonString == NULL) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"Error printing JSON to string\n");
cJSON_Delete(dataJSON);
- return;
+ return false;
}
uint32_t data_len = strlen(jsonString);
if (data_len == 0) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"Error: JSON string length is 0\n");
- return;
+ cJSON_free(jsonString);
+ return false;
}
if (send_websocket_message(chat_client,( uint8_t *)jsonString,strlen(jsonString),WS_TEXT)==0)
+{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"send_websocket_message succ 0\n");
+ cJSON_free(jsonString);
+ return true;
+ }
+
else
{
if(chat_client==NULL)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"chat_client is NULL\n");
}
+ cJSON_free(jsonString);
+ return false;
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"send_websocket_message fail\n");
}
- cJSON_free(jsonString);
+
}
}
- char result_str_asr[256]={0};
+
uint8_t asr_is_start=0;
bool aer_result_analysis(char *buf)
SendMsgToUIService(UI_AI_JUMP_TO_RESULT_VIEW, 0, nullptr, 0);//先跳转到结果界面
ble_set_ai_Question_str(result_str_asr);
- stop_AudioCaptureProcess_AI();
+ // stop_AudioCaptureProcess_AI();
send_ai_txt(0,result_str_asr);
-
+
}
if(strcmp(event_str,"TranscriptionStarted")==0) //可以对话了,切换到聆听界面
{
\"trace_id\": \"3fa6b9e6a30b407ea38ad7ae69e6c291\"},\
\"payload\": \
{\"voice\":\"xiaoyun\",\
- \"format\":\"pcm\",\
+ \"format\":\"mp3\",\
\"sample_rate\":16000,\
- \"volume\":50,\
+ \"volume\":80,\
\"speech_rate\":0}\
}";
if (send_websocket_message(tts_client,( uint8_t *)jsonString,strlen(jsonString),WS_TEXT)==0)
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"send_websocket_message succ 0\n");
}
+
+
+void uapi_stop_tts(void)
+{
+ char *jsonString =
+ " { \
+ \"header \": { \
+ \"event\": \"StopSynthesis\", \
+ \"trace_id\": \" 3fa6b9e6a30b407ea38ad7ae69e6c291 \" \
+ } \
+ } ";
+
+ printf("uapi_start_tts : %s\r\n",jsonString);
+
+ if (send_websocket_message(tts_client,( uint8_t *)jsonString,strlen(jsonString),WS_TEXT)==0)
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"send_websocket_message succ 0\n");
+}
+
+
+
void uapi_start_tts_single(void)
{
char *jsonString =
char *jsonString = (char *)malloc(strlen(buf)+300);// [512] ={0};
- sprintf(jsonString, " { \"header\": { \
+ sprintf(jsonString,
+
+ // " {\" header\" : { \
+ // \"event\": \" RunSynthesis\", \
+ // \"trace_id \": \" 3fa6b9e6a30b407ea38ad7ae69e6c291 \" \
+ // }, \
+ // \"payload \": { \
+ // \"text \":\" %s \" \
+ // }}"
+
+ " { \"header\": { \
\"event\": \"LongTextStream\", \
\"trace_id\": \"3fa6b9e6a30b407ea38ad7ae69e6c291\"\
},\
\"volume\":80,\
\"speech_rate\":0,\
\"text\":\"%s\"\
- } } ",buf);
+ } } "
+
+ ,buf);
printf("uapi_start_tts : %s\r\n",jsonString);
// uapi_start_asr();
// uapi_start_tts_single_txt("2025英超夏季转会窗分阶段开启第一阶段2025年6月1日至2025年6月11日凌晨2:00北京时间第二阶段常规夏窗2025年6月16日至2025年9月2日凌晨2:00北京时间本贴将持续更新2025年夏窗以曼联转会相关为主的新闻和消息。");
}
-
+ tts_break=0;
// uapi_start_tts_single();
char* tts_recv_buf=(char *)malloc(1024*4);
bk_websocket_tts_tick=0;
// tts_paly();
}
-
// aer_result_analysis(asr_recv_buf);
-
}
+ bk_websocket_tts_tick=0;
+
set_ai_tts_server_init_flag(0);
lwip_close_websocket_client(tts_client);