From: azao <821478748@qq.com> Date: Tue, 3 Feb 2026 10:01:31 +0000 (+0800) Subject: 一代验收 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=07595250d623c7a421df38e1e017143224cb150b;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 987d0fd1..4ce0da7c 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 @@ -1385,12 +1385,12 @@ class AI_dev(Abstract): self.KeyAI_status = 0 if self.KeyAI_status == 0:#按下 - if EventMesh.publish("get_recv_voice") == 1:#当处于收到留言的时候 - print("收到留言") - EventMesh.publish("set_voicerupt_flag",1) - return if EventMesh.publish("get_wait_voice_flag") == 1: print("播放未读") + EventMesh.publish("set_wait_voicerupt_flag",1) + return + if EventMesh.publish("get_recv_voice") == 1:#当处于收到留言的时候 + print("收到留言") EventMesh.publish("set_voicerupt_flag",1) return if self.KeyAI_press == 0 : @@ -1810,7 +1810,7 @@ class device_res_author(Abstract): url = "http://dmp-global.raisound.com/bz-api/dev/time" else: url = "https://dmp-api.qipai.com/qp-dmp-api/dev/time" - # url = "http://dmp.raisound.com/bz-api/dev/time" + # url = "https://dmp-dev.raisound.com/dmp-api/dev/time" response = request.get(url,timeout=5) data = response.json() print("dev_NTP:{}".format(data)) @@ -1941,7 +1941,7 @@ class device_res_author(Abstract): url = "http://dmp-global.raisound.com/bz-api/dev/auth/active" else: url = "https://dmp-api.qipai.com/qp-dmp-api/dev/auth/active" - # url = "http://dmp.raisound.com/bz-api/dev/auth/active" + # url = "https://dmp-dev.raisound.com/dmp-api/dev/auth/active" data =ujson.dumps(data) response = None response_result = 0 @@ -2054,7 +2054,7 @@ class device_res_author(Abstract): sign_url = "http://dmp-global.raisound.com/bz-api/dev/auth/sign_in" #登入地址 else: sign_url = "https://dmp-api.qipai.com/qp-dmp-api/dev/auth/sign_in" - # sign_url = "http://dmp.raisound.com/bz-api/dev/auth/sign_in" #登入地址 + # sign_url = "https://dmp-dev.raisound.com/dmp-api/dev/auth/sign_in" #登入地址 #获取验证码 #url = "http://dmp.qipai.com.cn:30461/dev/device/bind-code/860132066060377" # token = EventMesh.publish("get_dev_token") @@ -2127,7 +2127,7 @@ class device_res_author(Abstract): url = "http://dmp-global.raisound.com/bz-api/dev/iccid?deviceId={}&iccid={}".format(modem.getDevImei(),iccid) else: url = "https://dmp-api.qipai.com/qp-dmp-api/dev/iccid?deviceId={}&iccid={}".format(modem.getDevImei(),iccid) - # url = "http://dmp.raisound.com/bz-api/dev/iccid?deviceId={}&iccid={}".format(modem.getDevImei(),iccid) #北科地址 + # url = "https://dmp-dev.raisound.com/dmp-api/dev/iccid?deviceId={}&iccid={}".format(modem.getDevImei(),iccid) #北科地址 print("{} H:{}".format(url,headers_T)) response = request.post(url,headers = headers_T) if response.status_code == 200: @@ -2166,7 +2166,7 @@ class device_res_author(Abstract): dev_tokenip = "http://dmp-global.raisound.com/bz-api/dev/auth/token" #设备新令牌更新地址 else: dev_tokenip = "https://dmp-api.qipai.com/qp-dmp-api/dev/auth/token" - # dev_tokenip = "http://dmp.raisound.com/bz-api/dev/auth/token" #设备新令牌更新地址 + # dev_tokenip = "https://dmp-dev.raisound.com/dmp-api/dev/auth/token" #设备新令牌更新地址 token = self.dev_token if token == None: @@ -2545,6 +2545,7 @@ class AI_VC(Abstract): self.voice_timer = osTimer()#语音留言10S按下按键确定是否播放的判断定时器 self.voice_cnt = 0 #留言定时器计数 self.voicerupt_flag = 0#留言选择按键接听标志位 + self.wait_voicerupt_flag = 0#未读留言选择按键接听标志位 self.recv_voice = 0 #是否收到留言 self.voice_notice = 0 #收到留言并播放则置为1,接下来要播放提示词 self.voice_choose_flag = 0#当tts和语音留言冲突时,为了防止语音地址被误清,做标志位在close做判断 @@ -2605,7 +2606,8 @@ class AI_VC(Abstract): elif dev_type == "7PIN" or dev_type == "7PIN_1_5": #self.server_ip="sevenpin.qipai.com.cn" # self.server_ip="220.160.104.34" - # self.server_ip="118.145.158.207:22082" + # self.server_ip="118.145.158.207:22080" + # self.server_ip="amp-dev-global.raisound.com:22080" # self.server_ip="118.145.158.207:22080/22087" #self.server_ip="ai.qipai.com" self.server_ip="dmp-api.qipai.com/qp-amp-api" @@ -2647,6 +2649,7 @@ class AI_VC(Abstract): self.power_on_tone = "欢迎使用助手小福" else: self.power_on_tone = "您好!我是世界首创柒牌男装AI生活好帮手-bot_name, 很高兴为您服务,我可以帮您解答柒牌公司知识库、日常生活与工作、旅游信息、健康与运动咨询、教育与学习、情感交流、全球资讯、世界文化等问题!请问您有什么需要我帮忙的吗?" + self.power_on_tone = "你好,我来了" self.VC_record_TYPE = VC_record_TYPE_PCM #0:PCM 1:AMR self.VC_play_TYPE = VC_play_TYPE_PCM #0:PCM 1:mp3 @@ -2976,6 +2979,7 @@ class AI_VC(Abstract): EventMesh.subscribe("set_trans_flag",self.set_trans_flag)#设置翻译状态 EventMesh.subscribe("get_audio_play_state",self.get_audio_play_state) EventMesh.subscribe("set_voicerupt_flag",self.set_voicerupt_flag)#按键中断触发留言播放 + EventMesh.subscribe("set_wait_voicerupt_flag",self.set_wait_voicerupt_flag)#按键中断触发未读留言播放 EventMesh.subscribe("get_recv_voice",self.get_recv_voice)#获取是否收到留言 EventMesh.subscribe("rate_change",self.rate_change)#直接修改语速 EventMesh.subscribe("get_history_voice_flag",self.get_history_voice_flag)#获取查找历史留言状态 @@ -3001,6 +3005,7 @@ class AI_VC(Abstract): if self.inbound_attributess_provider == None: if dev_type == "7PIN" or dev_type == "7PIN_1_5" or dev_type == "7PIN_coze" : self.inbound_attributess_provider = "xun-fei" + self.inbound_attributess_provider = "volcengine" else: self.inbound_attributess_provider = "volcengine" @@ -3298,7 +3303,7 @@ class AI_VC(Abstract): EventMesh.publish("send_meet_end_flag_to_iot")#结束会议 self.meet_flag=0 EventMesh.publish("stop_voice_record") #关闭语音录音 - exit_tts ="已退出会议纪要模式" + exit_tts ="录音结束,已退出会议纪要模式" EventMesh.publish("play_tts",[exit_tts,1]) pass def come_trans_mode(self, event=None, msg = None): @@ -3323,9 +3328,9 @@ class AI_VC(Abstract): pass def ai_key_press_audio_cb1(self, event=None, msg = None): print("播放按键音!!!!!!!!!!") - EventMesh.publish("audio_montage_play",["chenggong.mp3"]) + # EventMesh.publish("audio_montage_play",["chenggong.mp3"]) # self.chenggong_tone() - # self.aud.aud_tone_play(10,400)#播放按键音 + self.aud.aud_tone_play(10,400)#播放按键音 def ai_key_press_audio_cb2(self, event=None, msg = None): EventMesh.publish("audio_montage_play",["chenggong.mp3"]) # self.chenggong_tone() #播放按键音 @@ -3356,8 +3361,8 @@ class AI_VC(Abstract): self.get_config_timer_count = 0 self.key_state = 1 if dev_type == "7PIN": #2代产品要延时播放按键音 为了连接蓝牙后不播放按键音的问题 - # self.aud.aud_tone_play(10,400)#播放按键音 - EventMesh.publish("audio_montage_play",["chenggong.mp3"]) + self.aud.aud_tone_play(10,400)#播放按键音 + # EventMesh.publish("audio_montage_play",["chenggong.mp3"]) # self.chenggong_tone() #播放按键音 elif dev_type == "7PIN_1_5": #2代产品要延时播放按键音 为了连接蓝牙后不播放按键音的问题 self.ai_key_press_audio.stop() @@ -3420,8 +3425,8 @@ class AI_VC(Abstract): print("AI_key_press") self.get_config_timer_count = 0 self.key_state = 1 - # self.aud.aud_tone_play(10,400)#播放按键音 - EventMesh.publish("audio_montage_play",["chenggong.mp3"]) + self.aud.aud_tone_play(10,400)#播放按键音 + # EventMesh.publish("audio_montage_play",["chenggong.mp3"]) # self.chenggong_tone() #播放按键音 if PRESS_AUDIO_MODE == 1: if dev_type == "7PIN" or dev_type == "7PIN_1_5": @@ -3536,13 +3541,15 @@ class AI_VC(Abstract): print("pwk_key_release") # EventMesh.publish("set_temp") # return - EventMesh.publish("exit_meet_mode")#退出会议纪要 - EventMesh.publish("exit_trans_mode")#退出AI翻译 if EventMesh.publish("get_recv_voice") == 1: EventMesh.publish("update_play_new_voice_info")#更新已读状态 self.recv_voice = 0#退出留言以及留言查看 EventMesh.publish("set_history_voice_flag",0)#修改标志位 self.AI_new_voice_url = "" + if self.trans_flag == 1 or self.meet_flag == 1: + EventMesh.publish("exit_meet_mode")#退出会议纪要 + EventMesh.publish("exit_trans_mode")#退出AI翻译 + return EventMesh.publish("publish_AI_btnInfo",{"func":self.Close}) EventMesh.publish("stop_sos_call") #EventMesh.publish("sleep_BT")#休眠蓝牙 @@ -3888,7 +3895,8 @@ class AI_VC(Abstract): req_str = "vc/coze?is_auth={}".format(self.is_auth) elif dev_type == 'jswm' or dev_type == 'jswm_BOX' : req_str = "vc/agent?is_auth={}".format(self.is_auth) - + # elif dev_type == "7PIN":#内部测试,不用coze + # req_str = "vc/agent?is_auth={}".format(self.is_auth) if(token): url = 'ws://{}/{}&dt={}'.format(self.server_ip,req_str,token) else: @@ -4393,6 +4401,8 @@ class AI_VC(Abstract): self.pwk_notice_flag = 0 self.wait_sort = 0 self.wait_first_flag = 0#让下次未读播放提示恢复 + self.voicerupt_flag = 0 #标志位置0 + self.wait_voicerupt_flag = 0 self.voice_notice = 1#开启回复 if self.history_voice_flag == 1 and self.wait_voice_flag == 0: self.voice_notice = 0 @@ -4501,7 +4511,6 @@ class AI_VC(Abstract): self.pwk_notice_flag = 1#表示进入收听未听留言 self.AI_VC_start() EventMesh.publish("publish_AI_btnInfo",{"func":self.AI_client_new_voice})#播放留言 - self.voicerupt_flag = 0 #标志位置0 self.voice_cnt = 0 # self.recv_voice = 0#进入留言定时器,留言清空 print("进入留言定时器1,留言清空!!!!!") @@ -4553,7 +4562,7 @@ class AI_VC(Abstract): EventMesh.publish("publish_AI_btnInfo",{"func":self.wait_play_cb}) def wait_play_cb(self): self.wait_cnt += 1 - if self.voicerupt_flag == 1:#按键被按下 + if self.wait_voicerupt_flag == 1:#按键被按下 EventMesh.publish("set_is_listen_wait",1)#已听 self.pwk_notice_flag = 1#表示进入收听未听留言 self.AI_VC_start() @@ -4563,7 +4572,6 @@ class AI_VC(Abstract): # self.wait_cnt = 0 # print("进入留言定时器1,留言清空!!!!!") # EventMesh.publish("update_play_new_voice_info")#更新已读状态 - self.voicerupt_flag = 0 self.wait_timer.stop() if self.wait_cnt > 10:#10S后退出播放,5S是为了给语音提示留时间 self.wait_cnt = 0 @@ -4586,8 +4594,10 @@ class AI_VC(Abstract): EventMesh.publish("publish_AI_btnInfo",{"func":self.AI_client_new_voice})#播放留言 self.wait_cnt = 0 self.wait_timer.stop() - def set_voicerupt_flag(self,event,msg):#按键控制留言播放 + def set_voicerupt_flag(self,event,msg):#按键控制当前留言播放 self.voicerupt_flag = msg + def set_wait_voicerupt_flag(self,event,msg):#按键控制未读留言播放 + self.wait_voicerupt_flag = msg def get_voicerupt_flag(self,event,msg):#获取按键控制留言播放状态 return self.voicerupt_flag def get_recv_voice(self,event,msg): @@ -5452,7 +5462,7 @@ class AI_VC(Abstract): "user_agent": "AudioClient/1.0", "dialog_attributes": { #"provider": "doubao", - "provider": "coze", + # "provider": "coze", "cfg": { "disable_empty_prompt" : True,#拦截空字符请求大模型 @@ -5492,8 +5502,8 @@ class AI_VC(Abstract): } }, "inbound_attributes": { - "provider": "xun-fei",# - #"provider": "volcengine", + # "provider": "xun-fei",# + "provider": "volcengine", "disable_vad":True, "vad_silence":self.vad_silence, "interrupt_options":{ @@ -5530,10 +5540,10 @@ class AI_VC(Abstract): json_data["payload"]["outbound_attributes"]["provider"]=self.outbound_attributess_provider#TTS音色服务选择,火山 json_data["payload"]["inbound_attributes"]["provider"]=self.inbound_attributess_provider#ASR服务选择,火山 #优先选择self.VC_TTS_voice_type[self.VC_TTS_voice_key]里得参数 - if "inbound_attributess_provider" in self.VC_TTS_voice_type[self.VC_TTS_voice_key]: - if len(self.VC_TTS_voice_type[self.VC_TTS_voice_key]["inbound_attributess_provider"])>0: - json_data["payload"]["inbound_attributes"]["provider"]=self.VC_TTS_voice_type[self.VC_TTS_voice_key]["inbound_attributess_provider"] - print("inbound_attributess_provider是VC_TTS_voice_type里的:{}".format(self.VC_TTS_voice_type[self.VC_TTS_voice_key]["inbound_attributess_provider"])) + # if "inbound_attributess_provider" in self.VC_TTS_voice_type[self.VC_TTS_voice_key]: + # if len(self.VC_TTS_voice_type[self.VC_TTS_voice_key]["inbound_attributess_provider"])>0: + # json_data["payload"]["inbound_attributes"]["provider"]=self.VC_TTS_voice_type[self.VC_TTS_voice_key]["inbound_attributess_provider"] + # print("inbound_attributess_provider是VC_TTS_voice_type里的:{}".format(self.VC_TTS_voice_type[self.VC_TTS_voice_key]["inbound_attributess_provider"])) if "outbound_attributess_provider" in self.VC_TTS_voice_type[self.VC_TTS_voice_key]: if len(self.VC_TTS_voice_type[self.VC_TTS_voice_key]["outbound_attributess_provider"])>0: json_data["payload"]["outbound_attributes"]["provider"]=self.VC_TTS_voice_type[self.VC_TTS_voice_key]["outbound_attributess_provider"] @@ -5570,8 +5580,10 @@ class AI_VC(Abstract): json_data["payload"]["dialog_attributes"]["cfg"]["bot_option"]["use_workflow"]=False json_data["payload"]["dialog_attributes"]["cfg"]["bot_option"]["workflow_id"]="" elif dev_type == "7PIN" or dev_type == "7PIN_1_5" :#柒牌 - json_data["payload"]["dialog_attributes"]["cfg"]["bot_option"]["bot_id"]="7550138354483298347"# - json_data["payload"]["dialog_attributes"]["cfg"]["bot_option"]["workflow_id"]="7549142130376671267" + # json_data["payload"]["dialog_attributes"]["cfg"]["bot_option"]["bot_id"]="7550138354483298347"# + # json_data["payload"]["dialog_attributes"]["cfg"]["bot_option"]["workflow_id"]="7549142130376671267" + json_data["payload"]["dialog_attributes"]["cfg"]["bot_option"]["bot_id"]="7411071327182438412" + json_data["payload"]["dialog_attributes"]["cfg"]["bot_option"]["workflow_id"]="7601036330500669467" #json_data["payload"]["inbound_attributes"]["vad_silence"] = 1000 elif dev_type == "7PIN_coze": json_data["payload"]["dialog_attributes"]["cfg"]["bot_option"]["bot_id"]="7550138354483298347"# @@ -5705,8 +5717,8 @@ class AI_VC(Abstract): return elif EventMesh.publish("get_voice_record_mode") == 1: #静默录音需要打断 EventMesh.publish("stop_voice_record")#停止静默录音 - # self.aud.aud_tone_play(10,400) - EventMesh.publish("audio_montage_play",["chenggong.mp3"]) + self.aud.aud_tone_play(10,400) + # EventMesh.publish("audio_montage_play",["chenggong.mp3"]) if PRESS_AUDIO_MODE == 1: if dev_type == "7PIN" or dev_type == "7PIN_1_5" : # self.aud.aud_tone_play(10,200) @@ -5838,12 +5850,20 @@ class AI_VC(Abstract): #改变音色判断 def change_voice(self,event ,msg): voice = msg + # if "男声" in msg or "普通话" in msg: + # self.VC_TTS_voice_key = "男" + # else: + # self.VC_TTS_voice_key = voice + self.outbound_attributess_provider = "xun-fei" if "男声" in msg or "普通话" in msg: self.VC_TTS_voice_key = "男" + self.outbound_attributess_provider = "volcengine" elif "女声" in msg: self.VC_TTS_voice_key = "女" + self.outbound_attributess_provider = "volcengine" elif "童声" in msg: self.VC_TTS_voice_key = "ç«¥" + self.outbound_attributess_provider = "volcengine" elif "香港粤语" in msg: self.VC_TTS_voice_key = "香港粤语" elif "四川话" in msg: @@ -6111,7 +6131,8 @@ class AI_VC(Abstract): def chenggong_tone(self): - EventMesh.publish("audio_montage_play",["chenggong.mp3"]) + # EventMesh.publish("audio_montage_play",["chenggong.mp3"]) + self.aud.aud_tone_play(10,400) def send_tone(self): EventMesh.publish("audio_montage_play",["send_tone.mp3"]) def concurrency_limit_exceeded_tone(self): diff --git a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/main_init.py b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/main_init.py index c599a04a..abcf9b94 100644 --- a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/main_init.py +++ b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/main_init.py @@ -213,7 +213,6 @@ def main_init(): if dev_type == "7PIN_1_5":#二代专属功能 pcr.add_support(pro.IOTWeb_LocateNowProtoCol()) pcr.add_support(pro.IOTWeb_post_sosProtoCol()) - pcr.add_support(pro.IOTWeb_post_device_stateProtoCol()) pcr.add_support(pro.IOTWeb_post_alarmProtoCol()) pcr.add_support(pro.IOTWeb_post_scheduleProtoCol()) pcr.add_support(pro.IOTWeb_post_locationProtoCol()) @@ -244,7 +243,6 @@ def main_init(): pcr.add_support(pro.IOTWeb_fence_sosProtoCol()) pcr.add_support(pro.IOTWeb_player_controlProtoCol()) pcr.add_support(pro.IOTWeb_post_bt_connect_restProtoCol()) - pcr.add_support(pro.IOTWeb_play_MusicProtoCol()) pcr.add_support(pro.IOTWeb_play_trans_TTSProtoCol())#播放下发翻译音频 pcr.add_support(pro.IOTWeb_come_transProtoCol())#接收小程序控制进入翻译 pcr.add_support(pro.IOTWeb_exit_transProtoCol())#接收小程序控制退出翻译 @@ -257,6 +255,7 @@ def main_init(): pcr.add_support(pro.IOTWeb_unbind_devProtoCol()) pcr.add_support(pro.IOTWeb_user_unbind_devProtoCol()) pcr.add_support(pro.IOTWeb_Nlp_ConfigProtoCol()) + pcr.add_support(pro.IOTWeb_play_MusicProtoCol()) sm = pro.SockMangager() sm.add_support_resolver(pcr) 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 1291de2b..cc7b93f5 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 @@ -1455,7 +1455,8 @@ class SockMangager(Abstract): try: if token != None: self.connect_web_timer_count = 0 - url_t = "wss://dmp-api.qipai.com/qp-iot-api/ws-hub/dev/v1?qp-dt={}".format(token) + url_t = "wss://dmp-api.qipai.com/qp-iot-api/ws-hub/dev/v1?qp-dt={}".format(token)#柒牌测试 + # url_t = "wss://dmp-dev.raisound.com/iot-api/ws-hub/dev/v1?bz-dt={}".format(token)#北科测试 try: self.iot_protocol_client=uwebsocket.Client.connect(url_t, debug=True) self.reconnect_count=0 @@ -2748,7 +2749,7 @@ def ai_cmd_handle(cmd): EventMesh.publish("play_tts",[tts_play_str,0]) if dev_type == "7PIN":#一代没有下面的功能 - print("一代不支持") + # print("一代不支持") return if "会议纪要" in cmd:#当指令中有会议纪要时,进入会议纪要模式 if dev_type == "7PIN_1_5": @@ -2796,7 +2797,6 @@ class IOTWeb_Nlp_ConfigProtoCol(ProtoCol): cmdName = msg["data"] print("提取到的AI指令为{}".format(cmdName)) ai_cmd_handle(cmdName) - print("recv push_music{}".format(msg)) #设备进入翻译,小程序返回在线情况 class IOTWeb_translate_device_enterProtoCol(ProtoCol): """translate_device_enter""" @@ -2974,11 +2974,12 @@ class IOTWeb_play_MusicProtoCol(ProtoCol): @param msg: 接收到的下行数据 """ #提取音乐播放名称,地址 + print("recv push_music{}".format(msg)) musicName = msg["data"]["musicName"] musicUrl = msg["data"]["musicUrl"] print("提取到的音乐名称为{},路径为{}".format(musicName,musicUrl)) EventMesh.publish("play_music",[musicName,musicUrl,1]) - print("recv push_music{}".format(msg)) + #音量下发 class IOTWeb_volumeProtoCol(ProtoCol):