202501141619生产固件更新备份
authorp15692025051 <846603105@qq.com>
Tue, 14 Jan 2025 08:19:33 +0000 (16:19 +0800)
committerp15692025051 <846603105@qq.com>
Tue, 14 Jan 2025 08:19:33 +0000 (16:19 +0800)
2.sdk/project/7PIN/sdk/services/microPython/ports/quectel/core/ai_VC.py

index 41dd142..1518324 100644 (file)
@@ -164,19 +164,13 @@ class AI_led(Abstract):
         self.led_blue.write(0)
         self.led_green.write(0)
 
-audio_buf = ['IMEIhao', 'jianquancuowu', 'key_prompt', 'liuliangtishi', 'Low_power_warning', 'R_CHARGE_FULL', 'R_CHARGE_IN', 
-             'R_CHARGE_OUT', 'R_READ_TIME_0', 'R_READ_TIME_1', 'R_READ_TIME_2', 'R_READ_TIME_3', 'R_READ_TIME_4', 'R_READ_TIME_5',
-               'R_READ_TIME_6', 'R_READ_TIME_7', 'R_READ_TIME_8', 'R_READ_TIME_9', 'R_READ_TIME_A', 'R_READ_TIME_B', 'R_READ_TIME_C',
-                 'R_READ_TIME_D', 'R_READ_TIME_E', 'R_READ_TIME_F', 'R_READ_TIME_G', 'R_READ_TIME_H', 'R_READ_TIME_I', 
-                 'R_READ_TIME_J', 'R_READ_TIME_K', 'R_READ_TIME_L', 'R_READ_TIME_M', 'R_READ_TIME_N', 'R_READ_TIME_O', 'R_READ_TIME_P', 
-                 'R_READ_TIME_Q', 'R_READ_TIME_R', 'R_READ_TIME_S', 'R_READ_TIME_T', 'R_READ_TIME_U', 'R_READ_TIME_V', 'R_READ_TIME_W', 
-                 'R_READ_TIME_X', 'R_READ_TIME_Y', 'R_READ_TIME_Z', 'shouhou', 'xinhaoruo1', 'zhengzaiguanji']
+audio_buf = ['didianguanji', 'IMEIhao', 'jianquancuowu', 'key_prompt', 'liuliangtishi', 'Low_power_warning', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_READ_TIME_0', 'R_READ_TIME_1', 'R_READ_TIME_2', 'R_READ_TIME_3', 'R_READ_TIME_4', 'R_READ_TIME_5', 'R_READ_TIME_6', 'R_READ_TIME_7', 'R_READ_TIME_8', 'R_READ_TIME_9', 'R_READ_TIME_A', 'R_READ_TIME_B', 'R_READ_TIME_C', 'R_READ_TIME_D', 'R_READ_TIME_E', 'R_READ_TIME_F', 'R_READ_TIME_G', 'R_READ_TIME_H', 'R_READ_TIME_I', 'R_READ_TIME_J', 'R_READ_TIME_K', 'R_READ_TIME_L', 'R_READ_TIME_M', 'R_READ_TIME_N', 'R_READ_TIME_O', 'R_READ_TIME_P', 'R_READ_TIME_Q', 'R_READ_TIME_R', 'R_READ_TIME_S', 'R_READ_TIME_T', 'R_READ_TIME_U', 'R_READ_TIME_V', 'R_READ_TIME_W', 'R_READ_TIME_X', 'R_READ_TIME_Y', 'R_READ_TIME_Z', 'shouhou', 'xinhaoruo1', 'zhengzaiguanji']
 class AI_dev(Abstract):
     # AI
     def __init__(self):
         self.is_wdt = 1 #是否开启看门狗
 
-        self.VBATT_tab = {"charge_full":4300,"100" :4250 ,  "90":3994 , "80":3883, "60": 3707, "40":3604, "20":3537,  "10":3486,}
+        self.VBATT_tab = {"charge_full":4300,"100" :4250 ,  "90":3994 , "80":3883, "60": 3707, "40":3604, "20":3537,  "10":3486,"5":3400,}
         self.KeyAI_status = 0
         self.KeyAI_timer_count = 0
         self.KeyAI_long_press = 0
@@ -232,10 +226,12 @@ class AI_dev(Abstract):
         self.usb.setCallback(self.usb_event_cb)
         self.usb_status = self.usb.getStatus()
         self.usb_charge_flag = 0 
+        self.Low_power_warning_timer = 0
         self.AI_dev_timer = osTimer()
         self.AI_dev_timer.start(10000, 1, self.AI_dev_timer_cb)
         print("AI_dev:AI_dev_timer")
         self.aud = audio.Audio(0)
+        self.Low_power_warning_flag = 0
         self.VC_TTS_volume =  EventMesh.publish("get_storage_config","VC_TTS_volume")#音量配置
         if self.VC_TTS_volume == None:
             self.VC_TTS_volume = 100
@@ -266,6 +262,7 @@ class AI_dev(Abstract):
                 #self.aud.play(1,1,'U:/static/R_CHARGE_IN.mp3')
                 EventMesh.publish("open_led_red")#充电红灯常亮
                 EventMesh.publish("audio_montage_play",["R_CHARGE_IN.mp3"])
+            self.Low_power_warning_flag  = 0
             pass
         elif status == 0:#拨出usbs
             self.usb_status = 0
@@ -350,6 +347,8 @@ class AI_dev(Abstract):
                         #self.aud.play(1,0,'U:/static/zhengzaiguanji.mp3')#关机音频
                         EventMesh.publish("open_led_red")
                         utime.sleep_ms(2000)
+                        self.aud.stopPlayStream()
+                        self.aud.stopAll()
                         Power.powerDown()
                         #print("AI_key_release")
                         EventMesh.publish("pwk_key_long_press")
@@ -436,6 +435,8 @@ class AI_dev(Abstract):
         #self.aud.play(1,0,'U:/static/zhengzaiguanji.mp3')#关机音频
         EventMesh.publish("open_led_red")
         utime.sleep_ms(3000)
+        self.aud.stopPlayStream()
+        self.aud.stopAll()
         Power.powerDown()
         #print("AI_key_release")
         EventMesh.publish("pwk_key_long_press")
@@ -468,12 +469,22 @@ class AI_dev(Abstract):
                 EventMesh.publish("audio_montage_play",["R_CHARGE_FULL.mp3"])
                 #self.aud.play(1,0,'U:/static/R_CHARGE_FULL.mp3')#充电已满
                 self.usb_charge_flag = 1
-        if  self.usb_status == 0 and Vbatt<self.VBATT_tab["20"]and VC_satrt_flag == 0:#低电报警
+        if  self.usb_status == 0 and Vbatt<self.VBATT_tab["20"]and VC_satrt_flag == 0 and self.Low_power_warning_flag ==0:#低电报警
+            self.Low_power_warning_flag  = 1
             EventMesh.publish("flicker_led_red")
             #self.aud.play(1,0,'Low_power_warning.mp3')
-            if self.usb_charge_flag == 0 :
+            self.Low_power_warning_timer+=1
+            if self.Low_power_warning_timer >= 2:
+                self.Low_power_warning_timer = 0
                 EventMesh.publish("audio_montage_play",["Low_power_warning.mp3"])
-                self.usb_charge_flag = 1
+
+        if  self.usb_status == 0 and Vbatt<self.VBATT_tab["5"]:    
+            EventMesh.publish("audio_montage_play",["didianguanji.mp3"])
+            utime.sleep_ms(4500)
+            self.aud.stopPlayStream()
+            self.aud.stopAll()
+            Power.powerDown()
+
         self.check_rest_timer_count += 1
         if self.check_rest_timer_count >= 8640:#24小时没按键,则关机
             self.pwk_key_Long_Press()
@@ -608,7 +619,7 @@ class device_res_author(Abstract):
         self.pid = "cqxJZi5CNgzjS3mX21Zw"
         
         self.dev_res_timer = osTimer()
-        self.dev_res_timer.start(10000, 1, self.dev_timer_cb)
+        self.dev_res_timer.start(20000, 1, self.dev_timer_cb)
         self.dev_res_timerCount = 0
         self.ud_token_timer = osTimer()
         self.ud_token_timer.start(10000, 1, self.ud_token_timer_cb)
@@ -682,7 +693,7 @@ class device_res_author(Abstract):
                 # self.dev_active() #设备激活
                 # self.dev_sign_in() #设备登入
                 self.dev_res_timerCount+=1
-                if self.dev_res_timerCount > 6: #开机一分钟内没有获取到密码和token 等下一次更新令牌在走登入 激活流程
+                if self.dev_res_timerCount > 3: #开机一分钟内没有获取到密码和token 等下一次更新令牌在走登入 激活流程
                     self.dev_res_timerCount=0
                     self.dev_res_timer.stop()
         except Exception as e:
@@ -1026,7 +1037,7 @@ class OTA():
             battery = EventMesh.publish("get_battery")
             if battery>=40:
                 self.ota_timer = osTimer()
-                self.ota_timer.start(8000, 0, self.ota_timer_cb)
+                self.ota_timer.start(15000, 0, self.ota_timer_cb)
                 ret_str =  1  
             else:
                 ret_str =  2
@@ -1128,19 +1139,19 @@ class AI_VC(Abstract):
         self.play_fd = None
         self.is_VC_ACK = 0 #是否开启ack应答模式
         self.ai_OTA = OTA()
-        self.is_auth = 1 #是否开启dmp鉴权
+        self.is_auth = 0 #是否开启dmp鉴权
         #self.VC_mode = 0 #0:短按连续问答模式 1:长按录音模式
         self.VC_mode = EventMesh.publish("get_storage_config","VC_mode")#
         if self.VC_mode == None :
             self.VC_mode = 0
         
-        self.VC_server = 2 #0正式服务器,1:测试服务器1,2:测试服务器2
+        self.VC_server = 0 #0正式服务器,1:测试服务器1,2:测试服务器2
 
         self.server_ip = EventMesh.publish("get_storage_config","server_ip")#
         if self.server_ip == None:
             if self.VC_server == 1:# 
                 
-                self.server_ip="118.145.158.207:22082"
+                self.server_ip="118.145.158.207:22084"
             elif self.VC_server == 2:# 
                 self.server_ip="118.145.158.207:22082"
             else:
@@ -1151,7 +1162,7 @@ class AI_VC(Abstract):
             if dev_type == "G10":
                 self.power_on_tone = "已开机,您好!我是北科瑞讯智能 AI bot_name"
             else:
-                self.power_on_tone = "æ\82¨å¥½ï¼\81æ\88\91æ\98¯æ\9f\92ç\89\8cç\94·è£\85AIç\94\9f活好帮æ\89\8b-bot_nameï¼\8c å¾\88é«\98å\85´ä¸ºæ\82¨æ\9c\8då\8a¡ï¼\8cæ\88\91å\8f¯ä»¥å¸®æ\82¨è§£ç­\94æ\97¥å¸¸ç\94\9fæ´»ã\80\81å·¥ä½\9cï¼\8cæ\97\85游信æ\81¯ã\80\81å\81¥åº·å\92¨è¯¢ã\80\81æ\95\99è\82²ä¸\8e学习ã\80\81æ\83\85æ\84\9f交æµ\81ã\80\81å\85¨ç\90\83èµ\84讯等问题!请问您有什么需要我帮忙的吗?" 
+                self.power_on_tone = "æ\82¨å¥½ï¼\81æ\88\91æ\98¯æ\9f\92ç\89\8cç\94·è£\85AIç\94\9f活好帮æ\89\8b-bot_nameï¼\8c å¾\88é«\98å\85´ä¸ºæ\82¨æ\9c\8då\8a¡ï¼\8cæ\88\91å\8f¯ä»¥å¸®æ\82¨è§£ç­\94æ\9f\92ç\89\8cå\85¬å\8f¸ç\9f¥è¯\86åº\93ã\80\81æ\97¥å¸¸ç\94\9fæ´»ä¸\8eå·¥ä½\9cã\80\81æ\97\85游信æ\81¯ã\80\81å\81¥åº·ä¸\8eè¿\90å\8a¨å\92¨è¯¢ã\80\81æ\95\99è\82²ä¸\8e学习ã\80\81æ\83\85æ\84\9f交æµ\81ã\80\81å\85¨ç\90\83èµ\84讯ã\80\81ä¸\96ç\95\8cæ\96\87å\8c\96等问题!请问您有什么需要我帮忙的吗?" 
                 #"已开机,这是升级测试前软件,可说查询版本来确认当前版本号,可说OTA升级来触发在线升级"#
         self.VC_record_TYPE = VC_record_TYPE_PCM #0:PCM 1:AMR
         self.VC_play_TYPE = VC_play_TYPE_PCM #0:PCM 1:mp3 
@@ -1318,8 +1329,8 @@ class AI_VC(Abstract):
         self.Audio_buf_size = 16*1024
         self.record = audio.Record()
         #self.record.end_callback(self.record_callback)
-        #self.record.gain_set(4,10)
-        self.record.gain_set(4,12)
+        self.record.gain_set(4,10)
+        #self.record.gain_set(4,12)
         self.aud = audio.Audio(0)
         self.aud.setCallback(self.audio_cb)
         #self.aud.setVolume(self.VC_TTS_volume //10)
@@ -1574,11 +1585,11 @@ class AI_VC(Abstract):
                 print("[Errno 22] EINVAL!!!\r\n")
                 print("[Errno 22] EINVAL!!!\r\n")
                 print("[Errno 22] EINVAL!!!\r\n")
-                # EventMesh.publish("set_storage_config",["powerRestart",1])#调试临时关闭
-                # utime.sleep_ms(1000)
-                # self.aud.stopPlayStream()
-                # self.aud.stopAll()
-                # Power.powerRestart()
+                EventMesh.publish("set_storage_config",["powerRestart",1])#调试临时关闭
+                utime.sleep_ms(1000)
+                self.aud.stopPlayStream()
+                self.aud.stopAll()
+                Power.powerRestart()
                 
             self.websocket_error()
             
@@ -1588,7 +1599,7 @@ class AI_VC(Abstract):
             return 
         self.AI_client_asr_debug+=1
         utime.sleep_ms(10)
-        #self.AI_client_asr.settimeout(6)
+        self.AI_client_asr.settimeout(120)
         #开启发送线程
         if self.AI_ASR_send_data_queue_thread_id == 0:    
             _thread.stack_size(self.Audio_buf_size+8*1024)
@@ -1809,6 +1820,7 @@ class AI_VC(Abstract):
                                 self.VC_record_state_flag = 2
                                 self.VC_state =  VC_State_SpeechStart
                                 EventMesh.publish("open_led_blue")
+                                self.AI_ASR_error_timeout = 0
                                 pass
 
                             elif jsload_data["event"] == "Changed" or jsload_data["event"] == "SentenceEnd" : #开始录音Changed
@@ -1908,13 +1920,13 @@ class AI_VC(Abstract):
                     usys.print_exception(e)
                 
             except Exception as e:
-                    error_str = str(e)
-                    print("ASR ASR:e:{}".format(error_str))
-                    #usys.print_exception(e)
-                    if error_str.find("[Errno 110]")!= -1:
-                        #print("ASR ASR:recv TIMEDOUT 正常")
-                        pass
-                    else:
+                    # error_str = str(e)
+                    # print("ASR ASR:e:{}".format(error_str))
+                    # #usys.print_exception(e)
+                    # if error_str.find("[Errno 110]")!= -1:
+                    #     #print("ASR ASR:recv TIMEDOUT 正常")
+                    #     pass
+                    # else:
                         usys.print_exception(e)
                         print("{}".format(cli))
                         #self.websocket_error()
@@ -1945,7 +1957,7 @@ class AI_VC(Abstract):
             json_data["payload"]["format"]='amr'
             pass
         
-
+        self.AI_ASR_error_timeout = 5
         self.AI_client_asr_send(ujson.dumps(json_data))
     #ASR终止
     def AI_client_asr_StopTranscription_requset(self):   
@@ -2114,9 +2126,20 @@ class AI_VC(Abstract):
                 #print("VC_record_thread:{}".format(Record_len))
                 if Record_len > 0:
                     read_buf = bytes(Record_read_buf[:Record_len])
-                    if self.record_fd != None:
-                        self.record_fd.write(read_buf)
-                        print("write record:{}".format(len(read_buf)))
+                    if self.record_data_save_flag == 1:
+                        if self.record_fd == None:
+                            try:
+                                uos.remove('/usr/record_data.pcm')
+                            except Exception as e:
+                                usys.print_exception(e)
+                            self.record_fd = open('/usr/record_data.pcm','w')
+                        if self.record_fd != None:
+                            self.record_fd.write(read_buf)
+                            print("write record:{}".format(len(read_buf)))
+                            # count+=Record_len
+                            # if count >150*1024:
+                            #     self.record_fd.close()
+                                #self.record_fd = None
                     # if self.VC_record_state_flag >= 2:
                     #     self.AI_client_asr_send(read_buf)
                     
@@ -2129,6 +2152,7 @@ class AI_VC(Abstract):
                             else:
                                 self.AI_client_asr_send(self.AI_record_tmp_queue.get())  #发送之前存的数据
                         self.AI_client_asr_send(read_buf)   
+
                     #print("VC_record_thread:{}".format(len(read_buf)))
                     #count+=len(read_buf)
                 # if count>=500*1024:#结束
@@ -2145,7 +2169,7 @@ class AI_VC(Abstract):
                     usys.print_exception(e)
                     #break
             self.VC_record_thread_lock = 0
-            utime.sleep_ms(60)
+            utime.sleep_ms(100)
         #fd.close()
         print("VC_record_thread:exit")
         self.VC_record_thread_id = 0#线程退出
@@ -2238,11 +2262,11 @@ class AI_VC(Abstract):
                 print("[Errno 22] EINVAL!!!\r\n")
                 print("[Errno 22] EINVAL!!!\r\n")
                 self.websocket_error()
-                # EventMesh.publish("set_storage_config",["powerRestart",1])#调试临时关闭
-                # utime.sleep_ms(1000)
-                # self.aud.stopPlayStream()
-                # self.aud.stopAll()
-                # Power.powerRestart()
+                EventMesh.publish("set_storage_config",["powerRestart",1])#调试临时关闭
+                utime.sleep_ms(1000)
+                self.aud.stopPlayStream()
+                self.aud.stopAll()
+                Power.powerRestart()
                 
             self.websocket_error()
             return
@@ -2253,7 +2277,7 @@ class AI_VC(Abstract):
             return
         self.AI_client_VC_debug+=1
         utime.sleep_ms(10)
-        #self.AI_client_VC.settimeout(6)
+        self.AI_client_VC.settimeout(120)
         #self.AI_VC_send_data_queue_thread_close()#关闭发送线程
         if self.AI_VC_send_data_queue_thread_id == 0:    
             _thread.stack_size(self.Audio_buf_size+8*1024)
@@ -2568,7 +2592,7 @@ class AI_VC(Abstract):
                             self.LocalRespondingEnded_timerout = 10 #最长倒数10秒发送音频结束或者终止对话
                             if self.VC_mode == 0 :#连续问答模式
                                 #EventMesh.publish("publish_AI_btnInfo",{"func":self.VC_Speech_End})#调试临时打开
-                                #EventMesh.publish("publish_AI_btnInfo",{"func":self.VC_Speech_Start})#开始录音 调试临时关闭
+                                #EventMesh.publish("publish_AI_btnInfo",{"func":self.VC_Speech_Start})#开始录音 
                                 pass
                             if self.play_data_save_flag == 1:
                                 if self.play_fd !=None:
@@ -2602,7 +2626,7 @@ class AI_VC(Abstract):
                     else:#下发音频数据
                         #self.AI_ASR_str = ""#下发音频后清掉asr结果
                         
-                        #print("下发音频数据1:{}".format(len(recv_data)))
+                        print("下发音频数据1:{}".format(len(recv_data)))
                         
                         if self.play_data_save_flag == 1:
                             if self.play_fd !=None:
@@ -2617,12 +2641,12 @@ class AI_VC(Abstract):
                 
             except Exception as e:
                     
-                    error_str = str(e)
-                    #print("VC VC:e:{}".format(error_str))
-                    if error_str.find("[Errno 110] ETIMEDOUT")!= -1:
-                        #print("VC VC:recv TIMEDOUT 正常")
-                        pass
-                    else:
+                    # error_str = str(e)
+                    # #print("VC VC:e:{}".format(error_str))
+                    # if error_str.find("[Errno 110] ETIMEDOUT")!= -1:
+                    #     #print("VC VC:recv TIMEDOUT 正常")
+                    #     pass
+                    # else:
                         usys.print_exception(e)
                         #self.websocket_error()
                         print("VC VC :读数据报错,退出")
@@ -2677,7 +2701,7 @@ class AI_VC(Abstract):
                             #self.aud.play(1,0,'U:/static/peizhichenggong.mp3')#切换成功
                             self.AI_TTS_str = "更改成功" 
                             return 0
-                    if text.find("粤") != -1 or text.find("越野") != -1 :
+                    if text.find("粤") != -1 or text.find("越野") != -1 or text.find("广东话") != -1:
                         if "粤" in self.VC_TTS_voice_type:
                             self.VC_TTS_voice_key = "粤"
                             EventMesh.publish("set_storage_config",["VC_TTS_voice_key",self.VC_TTS_voice_key])
@@ -2796,7 +2820,7 @@ class AI_VC(Abstract):
                         return 0
                     if text.find("版本") != -1 :
                         sourceVersion = versions.Build_Time
-                        self.AI_TTS_str ="7PIN-"+sourceVersion
+                        self.AI_TTS_str ="Mr-Seven-"+sourceVersion
                         return 0
                 if text.find("升级") != -1 and (text.find("OTA") != -1 or text.find("ota") != -1):
                     
@@ -2890,7 +2914,7 @@ class AI_VC(Abstract):
     
         EventMesh.publish("system_sleep_rest")#防止黑屏
         self.close_timerout += 1
-        if self.close_timerout > 30:#20秒没数据就close
+        if self.close_timerout > 60:#20秒没数据就close
             
             if self.VC_state >= VC_State_SpeechIng:
                 print("接口无响应,超时退出")
@@ -2906,14 +2930,15 @@ class AI_VC(Abstract):
                 if self.VC_mode == 1 :#长按单次问答模式
                     EventMesh.publish("publish_AI_btnInfo",{"func":self.Close}) 
                 else:
+                    EventMesh.publish("publish_AI_btnInfo",{"func":self.VC_Speech_Start})#开始录音
                     #通知服务器播放结束
                     self.AI_client_VC_LocalRespondingEnded()
         self.VC_pingping_timerout+=1
-        if self.VC_pingping_timerout>5:
+        if self.VC_pingping_timerout>3:
             self.VC_pingping_timerout=0
             self.AI_client_VC_ping()
         self.asr_pingping_timerout += 1
-        if self.asr_pingping_timerout>5:
+        if self.asr_pingping_timerout>3:
             self.asr_pingping_timerout=0
             self.AI_client_asr_ping()    
         if self.VC_Thinking_timerout > 0 and self.VC_Thinking_timerout < 100:#VC Thinking超时后重新开始
@@ -2939,12 +2964,7 @@ class AI_VC(Abstract):
         self.LocalRespondingEnded_timerout = 0
         self.close_timerout = 0
 
-        if self.record_data_save_flag == 1:
-            try:
-                uos.remove('/usr/record_data.pcm')
-            except Exception as e:
-                usys.print_exception(e)
-            self.record_fd = open('/usr/record_data.pcm','w')
+        
         #
         if self.AI_client_VC_isconnect == 0:#没连接的时候请求开始
             self.websocket_connect_VC()#连接服务器
@@ -2997,8 +3017,8 @@ class AI_VC(Abstract):
         else:
             print("AI_VC_start :AI_audio_queue_thread_id != 0 ")
         self._1S_timer.start(1000,1,self._1S_timer_cb)
-        self.VC_pingping_timerout = 0
-        self.asr_pingping_timerout = 0
+        # self.VC_pingping_timerout = 0
+        # self.asr_pingping_timerout = 0
         print("AI_VC_start5")
     #开始会话
     def AI_client_VC_start_requset(self):
@@ -3106,18 +3126,18 @@ class AI_VC(Abstract):
         }
         EventMesh.publish("publish_AI_btnInfo",{"func":self.VC_init}) 
         EventMesh.publish("publish_AI_btnInfo",{"func":self.AI_client_VC_send,"data":ujson.dumps(json_data)}) 
-        json_data = \
-        {
-            "header":{
-                "trace_id":self.get_trace_id(),
-                "event":"AAAAAAAAAAAAAA1"
-                },
-            "payload":{
-                "dialog_id":self.VC_dialog_id,
-                "session_id": self.session_id ,
-                }
-        }
-        EventMesh.publish("publish_AI_btnInfo",{"func":self.AI_client_VC_send,"data":ujson.dumps(json_data)}) 
+        # json_data = \
+        # {
+        #     "header":{
+        #         "trace_id":self.get_trace_id(),
+        #         "event":"AAAAAAAAAAAAAA1"
+        #         },
+        #     "payload":{
+        #         "dialog_id":self.VC_dialog_id,
+        #         "session_id": self.session_id ,
+        #         }
+        # }
+        # EventMesh.publish("publish_AI_btnInfo",{"func":self.AI_client_VC_send,"data":ujson.dumps(json_data)}) 
         # utime.sleep_ms(1)
         # self.AI_client_VC_send(ujson.dumps(json_data))
         self.VC_state = VC_State_End
@@ -3140,6 +3160,7 @@ class AI_VC(Abstract):
         # utime.sleep_ms(1)
     #请求TTS或者chat事件
     def AI_client_VC_RequestToRespond(self):
+        self.session_id  = self.get_session_id()#调试临时打开
         json_data = \
         {
             "header":{