From: azao <821478748@qq.com> Date: Thu, 16 Oct 2025 06:03:22 +0000 (+0800) Subject: 将提示从震动改为语音提醒:“您有一条语音留言,按下中间键可以收听” X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=ca8d2a4b9ae270c387606f379910c1bd74b50925;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 0ee91e42..c0c3c4d8 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 @@ -2505,6 +2505,7 @@ class AI_VC(Abstract): self.voice_cnt = 0 #留言定时器计数 self.voicerupt_flag = 0#留言选择按键接听标志位 self.recv_voice = 0 #是否收到留言 + self.voice_choose_flag = 0#当tts和语音留言冲突时,为了防止语音地址被误清,做标志位在close做判断 self.error_data = [] self.asr_taskid = "" @@ -3937,15 +3938,16 @@ class AI_VC(Abstract): EventMesh.publish("open_led_blue") print("VC:Started!!!!!!!!\r\n") - + print("TTS音频为:{},语音下发地址为:{}".format(self.AI_TTS_str,self.AI_new_voice_url)) if self.AI_TTS_str == "" and self.AI_new_voice_url != "": self.voice_timer.start(1000,1,self.voice_judge) elif self.AI_TTS_str != "" and self.AI_new_voice_url == "": EventMesh.publish("publish_AI_btnInfo",{"func":self.AI_client_VC_synthesis}) elif self.AI_TTS_str != "" and self.AI_new_voice_url != "":#遇到tts和语音留言冲突时 - # EventMesh.publish("publish_AI_btnInfo",{"func":self.AI_client_VC_synthesis}) + EventMesh.publish("publish_AI_btnInfo",{"func":self.AI_client_VC_synthesis}) self.voice_timer.start(1000,1,self.voice_judge) - self.AI_TTS_str = "" + self.voice_choose_flag = 1 + # self.AI_TTS_str = "" else: #开始上传语音 if dev_type != "7PIN_coze" and dev_type != "7PIN" and dev_type != "7PIN_1_5": @@ -4083,12 +4085,18 @@ class AI_VC(Abstract): pass elif jsload_data["event"] == "audio.convert.completed":#音频转成完成没有出错 接口 - self.LocalRespondingEnded_timerout = 8 + self.VC_state = VC_State_End + if self.voice_choose_flag == 1:#播放完语音后,有冲突的时候关闭 + self.voice_choose_flag = 0 + self.Close_flag = 1 + self.LocalRespondingEnded_timerout = 8 + # EventMesh.publish("publish_AI_btnInfo",{"func":self.Close}) if EventMesh.publish("get_play_new_voice_state")== 1: EventMesh.publish("set_play_new_voice_state",1) EventMesh.publish("update_play_new_voice_info") EventMesh.publish("play_new_voice_list") + pass elif jsload_data["event"] == "audio.convert.failed": #音频转换失败了 pass @@ -4162,15 +4170,18 @@ class AI_VC(Abstract): def voice_judger_cb(self): self.voice_cnt += 1 if self.voicerupt_flag == 1:#按键被按下 + self.AI_VC_start() EventMesh.publish("publish_AI_btnInfo",{"func":self.AI_client_new_voice})#播放留言 self.voicerupt_flag = 0 #标志位置0 self.voice_timer.stop() self.recv_voice = 0#进入留言定时器,留言清空 - print("进入留言定时器,留言清空!!!!!") + print("进入留言定时器1,留言清空!!!!!") if self.voice_cnt == 10:#10S后退出播放 self.voice_timer.stop() self.recv_voice = 0#进入留言定时器,留言清空 - print("进入留言定时器,留言清空!!!!!") + if self.voice_choose_flag == 1:#播放完语音后,有冲突的时候关闭 + self.voice_choose_flag = 0 + print("进入留言定时器2,留言清空!!!!!") def set_voicerupt_flag(self,event,msg):#按键控制留言播放 self.voicerupt_flag = msg def get_voicerupt_flag(self,event,msg):#获取按键控制留言播放状态 @@ -5327,8 +5338,8 @@ class AI_VC(Abstract): if new_voice_url != "": self.recv_voice = 1#收到留言 print("已收到最新留言!!!!!") - EventMesh.publish("set_motor_time",[1,1,5,8,4])#设置马达参数 - # EventMesh.publish("play_tts",["您有一条语音留言,按下中间键可以收听",1]) + # EventMesh.publish("set_motor_time",[1,1,5,8,4])#设置马达参数 + EventMesh.publish("play_tts",["您有一条语音留言,按下中间键可以收听",1]) self.AI_new_voice_url = new_voice_url if is_close_VC != None: self.Close_flag = is_close_VC @@ -5365,6 +5376,7 @@ class AI_VC(Abstract): self.AI_new_voice_url = "" print("AI_client_new_voice!!!!!!!!!!!!!!!!!!!!!!!!!!!!!{}".format(json_data)) self.AI_client_VC_send(ujson.dumps(json_data)) + def chenggong_tone(self): EventMesh.publish("audio_montage_play",["chenggong.mp3"]) @@ -5559,7 +5571,10 @@ class AI_VC(Abstract): if self.AI_VC_send_data_queue.empty()!=True: self.AI_VC_send_data_queue.clear() self.play_new_voice_flag = 0 #语音消息播放状态 - self.AI_new_voice_url ="" #语音播放地址 + if self.voice_choose_flag == 0:#如果没有未读语音 + self.AI_new_voice_url ="" #语音播放地址 + print("关闭并重置语音标志位") + print("关闭但是没有重置语音标志位") self.AI_ASR_send_buf_len = 0 #self.AI_WS_connect_Queue.put(self.AI_client_VC) EventMesh.publish("close_led")