修改为强制执行打断 1936/1 1936/head
authorhcj <1224667075@qq.com>
Sat, 5 Jul 2025 11:33:07 +0000 (19:33 +0800)
committerhcj <1224667075@qq.com>
Sat, 5 Jul 2025 11:33:07 +0000 (19:33 +0800)
code/sdk/drivers/peripheral/slip/cat1Service/cat1_at_cmd.cpp
code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.cpp
code/sdk/drivers/peripheral/slip/cat1Service/cat1_ws.h
code/sdk/middleware/services/media/foundation/sample/wrapper/voice_call_volte_sample_wrapper.cpp
code/sdk/middleware/services/media/foundation/sample/wrapper/voice_call_volte_sample_wrapper.h

index 5391356..d184439 100644 (file)
@@ -465,7 +465,7 @@ static uint32_t wstest(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
     return 0;
 }
 
-extern void send_ai_txt(uint8_t type,char *msg);
+extern bool send_ai_txt(uint8_t type,char *msg);
 
 static uint32_t ai_msg(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
 {
@@ -689,7 +689,7 @@ static const at_cmd_table_t g_cat1_cmd[] = {
     { (char *)"AT^STARTTTS",      starttts, (char *)"1" },
     { (char *)"AT^SENDTTTS",      sendttstxt, (char *)"1" },
     { (char *)"AT^STOPTEST",      stopwstest, (char *)"1" },
-    
+        
 };
 
 at_cmd_table_t *get_cat1_cmd_table(uint32_t *cmd_count)
index 869db83..4da61b1 100644 (file)
@@ -931,26 +931,26 @@ uint8_t uapi_get_tts_break(void)
     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();
@@ -963,7 +963,7 @@ void uapi_UI_start_asr(void)
     {
         tts_server_init();
     }
-  
+      
 
 }
 
@@ -975,19 +975,27 @@ void uapi_UI_stop_start_asr_timeout(void)
 
 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;
     }
     
    
@@ -1000,7 +1008,7 @@ void send_ai_txt(uint8_t type,char *msg)
     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);
@@ -1008,21 +1016,29 @@ void send_ai_txt(uint8_t type,char *msg)
     
     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);
+    
 }
 
 
@@ -1355,7 +1371,7 @@ void asr_record_test(void)
 }
 
 
- char result_str_asr[256]={0};
+ 
 uint8_t asr_is_start=0;
 
 bool aer_result_analysis(char *buf)
@@ -1410,9 +1426,9 @@ 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) //可以对话了,切换到聆听界面
     {
@@ -1665,9 +1681,9 @@ void uapi_start_tts(void)
      \"trace_id\": \"3fa6b9e6a30b407ea38ad7ae69e6c291\"},\
      \"payload\": \
     {\"voice\":\"xiaoyun\",\
-     \"format\":\"pcm\",\
+     \"format\":\"mp3\",\
      \"sample_rate\":16000,\
-     \"volume\":50,\
+     \"volume\":80,\
      \"speech_rate\":0}\
      }";
 
@@ -1676,6 +1692,26 @@ void uapi_start_tts(void)
     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 =
@@ -1706,7 +1742,17 @@ void uapi_start_tts_single(void)
 
     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\"\
     },\
@@ -1717,7 +1763,9 @@ void uapi_start_tts_single(void)
         \"volume\":80,\
         \"speech_rate\":0,\
         \"text\":\"%s\"\
-     } } ",buf);
+     } } "
+     
+     ,buf);
 
      printf("uapi_start_tts : %s\r\n",jsonString);
 
@@ -1859,7 +1907,7 @@ void bk_websocket_tts(void *data) {
             // 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);
@@ -1902,11 +1950,11 @@ void bk_websocket_tts(void *data) {
                 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);
index 0039031..4991e32 100644 (file)
@@ -40,10 +40,11 @@ void uapi_start_asr_task(void);
 
 void asr_record_test(void);
 
-void send_ai_bin(uint8_t *buf,uint32_t len);
+bool send_ai_txt(uint8_t type,char *msg);
 
 void uapi_start_asr(void);
 
+void uapi_stop_tts(void);
 
 
 
index a87b229..141a5c2 100755 (executable)
@@ -1247,12 +1247,14 @@ uint8_t g_sample_needStop=0;
 
 uint8_t AudioCaptureTask_is_run=0;
 
-void stop_AudioCaptureProcess_AI(void)
+uint8_t stop_AudioCaptureProcess_AI(void)
 {
     if(AudioCaptureTask_is_run)
     {
         g_sample_needStop=1;
+return 1;
     }
+return 0;
    
 }
 
index 4d39985..459b975 100755 (executable)
@@ -27,7 +27,7 @@ AudioSession get_ai_g_sessionId(void);
 
 void startAudioCaptureTask(void);
 
-void stop_AudioCaptureProcess_AI(void);
+uint8_t stop_AudioCaptureProcess_AI(void);
 
 int32_t AIStreamFlush(void);