[client] fix bugs
This commit is contained in:
parent
5c67ef58ff
commit
af541c7a0f
|
@ -188,5 +188,5 @@ class BaseWebSocketClient:
|
||||||
print(f"json: {recv_data}")
|
print(f"json: {recv_data}")
|
||||||
return recv_data, type(recv_data)
|
return recv_data, type(recv_data)
|
||||||
except json.JSONDecodeError as e:
|
except json.JSONDecodeError as e:
|
||||||
pass
|
return None, None
|
||||||
|
|
|
@ -377,30 +377,35 @@ class WebSocketClinet:
|
||||||
response, data_type = client.receive_per_data()
|
response, data_type = client.receive_per_data()
|
||||||
if data_type == dict:
|
if data_type == dict:
|
||||||
print(f"{datetime.now()}: receive json data: {response}") # 打印接收到的消息
|
print(f"{datetime.now()}: receive json data: {response}") # 打印接收到的消息
|
||||||
# 误识别情况
|
# 5xx: 结束错误码处理
|
||||||
if response['code'] in [201, 501, 502, 503, 504, 505] :
|
if response['code'] in [501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545]:
|
||||||
# 恢复对话状态
|
# 恢复录音状态
|
||||||
self.listening_event.set()
|
self.listening_event.set()
|
||||||
self.speaking_event.clear()
|
self.speaking_event.clear()
|
||||||
break
|
break
|
||||||
|
# 200: 正常结束
|
||||||
elif response['code'] == 200:
|
elif response['code'] == 200:
|
||||||
self.audio_play_queue.put(('audio_json', response))
|
|
||||||
# 切换播放模式
|
|
||||||
self.listening_event.clear()
|
|
||||||
self.speaking_event.set()
|
|
||||||
if response['type'] == 'close':
|
if response['type'] == 'close':
|
||||||
break
|
break
|
||||||
|
# 201: 切换沉默模式
|
||||||
|
elif response['code'] == 201:
|
||||||
|
self.listening_event.set()
|
||||||
|
self.speaking_event.clear()
|
||||||
|
self.wakeup_event.clear() # 沉默状态下,关闭唤醒状态
|
||||||
elif data_type == list:
|
elif data_type == list:
|
||||||
# ####################### 更新后的代码 #
|
print(f"{datetime.now()}: receive text_audio_data")
|
||||||
print(f"{datetime.now()}: receive audio_list")
|
# 切换播放模式
|
||||||
self.audio_play_queue.put(('audio_list', response))
|
self.listening_event.clear()
|
||||||
|
self.speaking_event.set()
|
||||||
|
self.audio_play_queue.put(('text_audio_data', response))
|
||||||
|
|
||||||
elif data_type == bytes:
|
elif data_type == bytes:
|
||||||
# 开始播放
|
# 开始播放
|
||||||
# print(f"{datetime.now()}: receive audio data")
|
print(f"{datetime.now()}: receive audio bytes")
|
||||||
self.audio_play_queue.put(('audio_bytes', response))
|
self.audio_play_queue.put(('audio_bytes', response))
|
||||||
elif data_type == None:
|
elif data_type == None:
|
||||||
print(f"{datetime.now()}: receive None data, break loop.")
|
print(f"{datetime.now()}: receive None data, break loop.")
|
||||||
|
# 切换录音模式
|
||||||
self.listening_event.set()
|
self.listening_event.set()
|
||||||
self.speaking_event.clear()
|
self.speaking_event.clear()
|
||||||
# print(f"listening_event: {self.listening_event.is_set()}, speaking_event: {self.speaking_event.is_set()}")
|
# print(f"listening_event: {self.listening_event.is_set()}, speaking_event: {self.speaking_event.is_set()}")
|
||||||
|
@ -423,13 +428,12 @@ class WebSocketClinet:
|
||||||
if not self.wakeup_event.is_set():
|
if not self.wakeup_event.is_set():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if item[0] == 'audio_list':
|
if item[0] == 'text_audio_data':
|
||||||
# TODO: 判断bytes是否是最后一个,如果是最后一个,则播放完毕,切换监听模式
|
# TODO: 判断bytes是否是最后一个,如果是最后一个,则播放完毕,切换监听模式
|
||||||
audio_info, audio_data = item[1]
|
audio_text, audio_data = item[1]
|
||||||
data_type = audio_info['type']
|
|
||||||
print(f"{datetime.now()}: receive {data_type} data, start playing audio.")
|
|
||||||
|
|
||||||
print(f"{datetime.now()}: start playing audio.")
|
print(f"{datetime.now()}: start playing audio.")
|
||||||
|
print(f"{datetime.now()}: audio text: {audio_text}")
|
||||||
|
|
||||||
if self.listening_event.is_set():
|
if self.listening_event.is_set():
|
||||||
continue
|
continue
|
||||||
|
|
Loading…
Reference in New Issue