From: dxy <1731678236qq.com> Date: Mon, 18 Aug 2025 02:42:29 +0000 (+0800) Subject: AI对话角色协议 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=c3d35994405353e676bb1ba6a2f542e97e847956;p=mirrors%2FASR1603_G5.git AI对话角色协议 --- 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 9c5f2e0b..d3da841c 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 @@ -1892,6 +1892,8 @@ class AI_VC(Abstract): self.play_new_voice_flag =0 #播放文字留言flag EventMesh.subscribe("play_tts",self.play_tts) EventMesh.subscribe("play_new_voice",self.play_new_voice) + EventMesh.subscribe("set_vad_silence",self.set_vad_silence) + self.AI_alarm = _ai_alarm.AI_alarm() self.error_data = [] self.asr_taskid = "" @@ -3617,20 +3619,21 @@ class AI_VC(Abstract): else: EventMesh.publish("publish_AI_btnInfo",{"func":self.websocket_error,"data":jsload_data["payload"]["message"]}) pass + + elif jsload_data["event"] == "audio.convert.completed":#音频转成完成没有出错 接口 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.completed":#接口 + pass + elif jsload_data["event"] == "audio.convert.failed": #音频转换失败了 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 - pass else:#下发音频数据 #self.AI_ASR_str = ""#下发音频后清掉asr结果 @@ -4706,6 +4709,10 @@ class AI_VC(Abstract): # if self.VC_state == VC_State_RequestToRespond: # print("AI_client_VC_RequestToRespond 重复 tts_str:{}\nasr_str:{}".format(self.AI_TTS_str,self.AI_ASR_str)) self.AI_client_VC_send(ujson.dumps(json_data)) + def set_vad_silence(self,event = None,msg= None): + self.vad_silence = msg + EventMesh.publish("set_storage_config",["vad_silence",self.vad_silence]) + # EventMesh.publish("publish_AI_btnInfo",{"func":self.play_new_voice_cb,"data":msg}) def play_new_voice(self,event = None,msg= None): EventMesh.publish("publish_AI_btnInfo",{"func":self.play_new_voice_cb,"data":msg}) def play_new_voice_cb(self,data): 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 2c349523..40fb71e8 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 @@ -665,6 +665,9 @@ class WEB_CMD_ENUM: PLAY_CONTROL_R="player_control_R" PLAY_CONTROL_S="player_control_S" + GET_CHAT_CONFIG_R="get_chat_config_R" + GET_CHAT_CONFIG_S="get_chat_config_S" + class IOTSendCmdManager(Abstract): # def __init__(self): @@ -1292,7 +1295,7 @@ class SockMangager(Abstract): url = data["url"] # url = "http://qipaiai-oss1.tos-cn-beijing.volces.com/qi_pai_ringtone/2025_08_11/742659759219544064test.mp3" self.play_new_voice_state = 1 - EventMesh.publish("play_new_voice",[url,1]) + EventMesh.publish("play_new_voice",[url,0]) break pass @@ -2486,7 +2489,7 @@ class IOTWeb_scheduleProtoCol(ProtoCol): date_tmp = utime.localtime() time_tmp = utime.mktime(date_tmp) schedule = { - "cmd":"post_rest", + "cmd":"dispatch_rest", "ts":time_tmp, "msg":"消息收到响应", "data":{ @@ -2825,7 +2828,7 @@ class IOTWeb_switch_bt_stateProtoCol(ProtoCol): date_tmp = utime.localtime() time_tmp = utime.mktime(date_tmp) switch_bt_state = { - "cmd":"post_rest", + "cmd":"dispatch_rest", "ts":time_tmp, "msg":"消息收到响应", "data":{ @@ -2875,7 +2878,7 @@ class IOTWeb_bt_scanProtoCol(ProtoCol): elif msg == "1": s_msg = "停止扫描附近设备" bt_scan = { - "cmd":"post_rest", + "cmd":"dispatch_rest", "ts":time_tmp, "msg":"消息收到响应", "data":{ @@ -2927,7 +2930,7 @@ class IOTWeb_get_bt_stateProtoCol(ProtoCol): date_tmp = utime.localtime() time_tmp = utime.mktime(date_tmp) bt_state ={ - "cmd":"post_rest", + "cmd":"dispatch_rest", "ts":time_tmp, "msg":"消息收到响应", "data":{ @@ -2960,7 +2963,7 @@ class IOTWeb_bt_scan_restProtoCol(ProtoCol): TYPE = "bt_scan_rest" def send(self, event, msg): - print("send schedule{}".format(msg)) + print("send bt_scan_rest{}".format(msg)) # 通过websocket发送到服务器端 send_data = b'' @@ -2983,7 +2986,7 @@ class IOTWeb_connect_btProtoCol(ProtoCol): TYPE = "connect_bt" def send(self, event, msg): - print("send schedule{}".format(msg)) + print("send connect_bt{}".format(msg)) # 通过websocket发送到服务器端 date_tmp = utime.localtime() time_tmp = utime.mktime(date_tmp) @@ -2991,7 +2994,7 @@ class IOTWeb_connect_btProtoCol(ProtoCol): if msg == 0: s_ret = "error" connect_bt = { - "cmd":"post_rest", + "cmd":"dispatch_rest", "ts":time_tmp, "msg":"消息收到响应", "data":{ @@ -3064,12 +3067,12 @@ class IOTWeb_disconnect_btProtoCol(ProtoCol): TYPE = "disconnect_bt" def send(self, event, msg): - print("send schedule{}".format(msg)) + print("send disconnect_bt{}".format(msg)) # 通过websocket发送到服务器端 date_tmp = utime.localtime() time_tmp = utime.mktime(date_tmp) disconnect_bt = { - "cmd":"post_rest", + "cmd":"dispatch_rest", "ts":time_tmp, "msg":"消息收到响应", "data":{ @@ -3099,6 +3102,44 @@ class IOTWeb_disconnect_btProtoCol(ProtoCol): EventMesh.publish("send_disconnect_bt_mac",mac) print("recv disconnect_bt{}".format(msg)) EventMesh.publish(WEB_CMD_ENUM.DISCONNECT_BT_S,None) +class IOTWeb_get_chat_configProtoCol(ProtoCol): + """get_chat_config""" + TYPE = "get_chat_config" + + def send(self, event, msg): + # print("send get_chat_config{}".format(msg)) + # 通过websocket发送到服务器端 + date_tmp = utime.localtime() + time_tmp = utime.mktime(date_tmp) + get_chat_config = { + "cmd":"get_chat_config", + "ts":time_tmp, + "msg":"获取AI对话配置", + "data":None + } + send_data = b'' + send_data = protocol_send_total_data(get_chat_config) + print("send_data get_chat_config{}".format(send_data)) + EventMesh.publish("CHANNEL_IOT_WEB_SEND", send_data) + + def recv(self, event, msg): + """ + + @param event:上行下发get_chat_config + @param msg: 接收到的下行数据 + """ + # { + # "cmd":"post_rest", + # "ts":1738283829, + # "msg":"消息收到响应", + # "data":{ + # "cmd":"get_chat_config", + # "rest":"success|error", + # "msg":"收到获取AI对话配置请求" + # } + # } + print("RECV get_chat_config{}".format(msg)) + class LK_ProtoCol(ProtoCol): """链路保持"""