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