[client] fix bugs

This commit is contained in:
IrvingGao 2024-06-18 17:38:01 +08:00
parent 1e037854fd
commit ada3fee80f
1 changed files with 10 additions and 12 deletions

View File

@ -371,6 +371,7 @@ class WebSocketClinet:
break break
if self.interrupt_event.is_set(): if self.interrupt_event.is_set():
client.close_client()
break break
response, data_type = client.receive_per_data() response, data_type = client.receive_per_data()
@ -411,7 +412,6 @@ class WebSocketClinet:
# 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()}")
break # 如果没有接收到消息,则退出循环 break # 如果没有接收到消息,则退出循环
client.close_client() client.close_client()
self.interrupt_event.clear()
def audio_play_process(self): def audio_play_process(self):
@ -462,24 +462,22 @@ class WebSocketClinet:
# 按键打断播放 # 按键打断播放
if self.interrupt_event.is_set(): if self.interrupt_event.is_set():
print(f"{datetime.now()}: button interrupt.") print(f"{datetime.now()}: button interrupt.")
# 虽然程序到这里,但是扬声器不一定播放完毕,延迟用来避免问题 time.sleep(0.2) # 虽然程序到这里,但是扬声器不一定播放完毕,延迟用来避免问题
time.sleep(0.5)
self.listening_event.set() self.listening_event.set()
self.speaking_event.clear() self.speaking_event.clear()
self.interrupt_event.clear()
break break
# if self.listening_event.is_set() and not self.speaking_event.is_set():
# print(f"{datetime.now()}: speaker interrupt.")
# break
if not self.speaking_event.is_set():
if not self.speaking_event:
audio_list = [] # 清空音频列表 audio_list = [] # 清空音频列表
print(f"{datetime.now()}: audio data clear.")
continue continue
# 播放最后一段音频 else:
audio_player.stream.write(tts_audio[i+audio_player.CHUNK:]) # 播放最后一段音频
audio_list.pop(0) # 弹出第一个音频 audio_player.stream.write(tts_audio[i+audio_player.CHUNK:])
print(f"{datetime.now()}: audio data played.") audio_list.pop(0) # 弹出第一个音频
print(f"{datetime.now()}: audio data played.")
except TypeError as e: except TypeError as e:
print(f"audio play error: {e}") print(f"audio play error: {e}")
continue continue