From: azao <821478748@qq.com> Date: Thu, 25 Dec 2025 09:00:35 +0000 (+0800) Subject: 修改对话中断问题 X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=bdc4d7e76f744b8c4fd139676553fec0bdb7af1f;p=mirrors%2FASR1603_G5.git 修改对话中断问题 修改留言播放时下发被打断的问题 --- diff --git a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py index d42a3ce5..660c5406 100644 --- a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py +++ b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py @@ -4507,6 +4507,7 @@ class AI_VC(Abstract): if self.revoice_cnt > 20:#10S后退出播放,10S是为了给语音提示留时间 self.revoice_cnt = 0 self.voice_flag=0 + EventMesh.publish("set_1M_nowplay_flag",0) print("语音留言回复停止") self.revoice_timer.stop() #音乐播放定时器 @@ -4535,6 +4536,7 @@ class AI_VC(Abstract): def wait_play_cb(self): self.wait_cnt += 1 if self.voicerupt_flag == 1:#按键被按下 + EventMesh.publish("set_is_listen_wait",1)#已听 self.pwk_notice_flag = 1#表示进入收听未听留言 self.AI_VC_start() self.wait_sort = 1 diff --git a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/protocol.py b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/protocol.py index f99d853a..fe263367 100644 --- a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/protocol.py +++ b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/protocol.py @@ -3796,12 +3796,17 @@ class IOTWeb_new_voice_msg_listProtoCol(ProtoCol): def __init__(self): super().__init__() self._1M_flag = 0#判断一分钟定时器是否开启中 + self._1M_nowplay_flag = 0#判断当前留言播放是否结束去影响新留言播放的标志位 self.app_new_voice_flag = 0#app是否下发留言 self._1M_timer = osTimer()#多发留言间隙时间60S self._60S_voice_flag = 0 + self.is_listen_wait = 0#是否收听未听留言 + self.close_timer_cnt = 0 #若两次未听定时器关闭 EventMesh.subscribe("get_app_new_voice_flag",self.get_app_new_voice_flag) EventMesh.subscribe("set_app_new_voice_flag",self.set_app_new_voice_flag) EventMesh.subscribe("get_1M_flag",self.get_1M_flag) + EventMesh.subscribe("set_1M_nowplay_flag",self.set_1M_nowplay_flag) + EventMesh.subscribe("set_is_listen_wait",self.set_is_listen_wait) EventMesh.subscribe("get_60S_voice_flag",self.get_60S_voice_flag) EventMesh.subscribe("set_60S_voice_flag",self.set_60S_voice_flag) @@ -3841,9 +3846,10 @@ class IOTWeb_new_voice_msg_listProtoCol(ProtoCol): pass EventMesh.publish("set_play_new_voice_list",new_voice_list) print("是否收到留言:{},self._1M_flag = {}".format(EventMesh.publish("get_recv_voice"),self._1M_flag)) - if EventMesh.publish("get_recv_voice") == 0 and self._1M_flag == 0:#当没有音频在播放时,再播放新的,否则保存下来不播放,等60S后一起播放 + if EventMesh.publish("get_recv_voice") == 0 and self._1M_flag == 0 and self._1M_nowplay_flag == 0:#当没有音频在播放时,再播放新的,否则保存下来不播放,等60S后一起播放 EventMesh.publish("set_recv_voice",1) #设置留言播放状态 EventMesh.publish("play_new_voice_list") + self._1M_nowplay_flag == 1 else:#当有音频在播放时,存下来开始倒计时 pass if self._1M_flag == 0 : @@ -3867,7 +3873,7 @@ class IOTWeb_new_voice_msg_listProtoCol(ProtoCol): EventMesh.publish("set_history_voice_flag",1)#修改历史留言标志位 EventMesh.publish("set_wait_voice_flag",1)#修改60S标志位 EventMesh.publish(WEB_CMD_ENUM.GET_NEW_VOICE_MSG_S) - + def get_app_new_voice_flag(self,event,msg): return self.app_new_voice_flag def set_app_new_voice_flag(self,event,msg): @@ -3878,6 +3884,10 @@ class IOTWeb_new_voice_msg_listProtoCol(ProtoCol): return self._60S_voice_flag def set_60S_voice_flag(self,event,msg): self._60S_voice_flag = msg + def set_1M_nowplay_flag(self,event,msg): + self._1M_nowplay_flag = msg + def set_is_listen_wait(self,event,msg): + self.is_listen_wait = msg class IOTWeb_put_voice_msg_stateProtoCol(ProtoCol): """put_voice_msg_state""" TYPE = "put_voice_msg_state" diff --git a/2.sdk/project/K8/sdk/services/microPython/ports/quectel/core/ai_VC.py b/2.sdk/project/K8/sdk/services/microPython/ports/quectel/core/ai_VC.py index 45238163..6fa1035f 100644 --- a/2.sdk/project/K8/sdk/services/microPython/ports/quectel/core/ai_VC.py +++ b/2.sdk/project/K8/sdk/services/microPython/ports/quectel/core/ai_VC.py @@ -3165,9 +3165,9 @@ class AI_VC(Abstract): #EventMesh.publish("open_led_green")#绿色 self.LocalRespondingEnded_timerout = 3 self.VC_state = VC_State_End - if self.stop_tts == 1 and self.tts_completed == 1:#已经播放了音频并且音频停止了 + if self.tts_completed == 1:#已经播放了音频并且音频停止了 self.AI_client_VC_end_tts()#音频结束 - self.stop_tts = 0 + # self.stop_tts = 0 self.tts_completed = 0 EventMesh.publish("send_device_VC_state")#上传VC状态 pass @@ -4049,7 +4049,6 @@ class AI_VC(Abstract): try: self.play_pcm.stream_stop() self.play_pcm.close() - self.stop_tts = 1 except Exception as e: usys.print_exception(e) self.play_pcm=None