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 = ""
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":
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
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):#获取按键控制留言播放状态
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
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"])
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")