diff --git a/takway/clients/web_socket_client_utils.py b/takway/clients/web_socket_client_utils.py index ae4f6dd..bc29d37 100644 --- a/takway/clients/web_socket_client_utils.py +++ b/takway/clients/web_socket_client_utils.py @@ -358,10 +358,6 @@ class WebSocketClinet: if not self.wakeup_event.is_set(): continue - # 切换播放模式 - self.listening_event.clear() - self.speaking_event.set() - # 接收数据 while True: # 当唤醒状态被关闭时,退出循环 @@ -370,19 +366,26 @@ class WebSocketClinet: self.speaking_event.clear() client.close_client() break - + ''' # 当正在说话时接收到时,默认全是废消息 if self.listening_event.is_set() and not self.speaking_event.is_set(): client.close_client() break + ''' response, data_type = client.receive_per_data() if data_type == dict: print(f"{datetime.now()}: receive json data: {response}") # 打印接收到的消息 # 误识别情况 if response['code'] == 201: - print(f"false audio: wakeup: {self.wakeup_event.is_set()}, interrupt: {self.interrupt_event.is_set()}, listening: {self.listening_event.is_set()}") - continue + # 恢复对话状态 + self.listening_event.set() + self.speaking_event.clear() + break + elif response['code'] == 200: + # 切换播放模式 + self.listening_event.clear() + self.speaking_event.set() elif data_type == bytes: # 开始播放 print(f"{datetime.now()}: receive audio data")