[client] fix bugs
This commit is contained in:
parent
5370242726
commit
b431f2611b
|
@ -60,6 +60,9 @@ class WebSocketClinet:
|
||||||
# 唤醒事件
|
# 唤醒事件
|
||||||
self.wakeup_event = manager.Event()
|
self.wakeup_event = manager.Event()
|
||||||
|
|
||||||
|
# 打断事件
|
||||||
|
self.interrupt_event = manager.Event()
|
||||||
|
|
||||||
# 监听事件
|
# 监听事件
|
||||||
self.listening_event = manager.Event()
|
self.listening_event = manager.Event()
|
||||||
# 播放事件
|
# 播放事件
|
||||||
|
@ -143,8 +146,7 @@ class WebSocketClinet:
|
||||||
self.wakeup_event.set()
|
self.wakeup_event.set()
|
||||||
# 短时按键被按下,打断
|
# 短时按键被按下,打断
|
||||||
if recorder.hardware.short_power_status and not last_short_power_status:
|
if recorder.hardware.short_power_status and not last_short_power_status:
|
||||||
self.speaking_event.clear()
|
self.interrupt_event.set()
|
||||||
self.listening_event.set()
|
|
||||||
recorder.hardware.short_power_status = False
|
recorder.hardware.short_power_status = False
|
||||||
print("Interrupt conversation.")
|
print("Interrupt conversation.")
|
||||||
last_short_power_status = recorder.hardware.short_power_status
|
last_short_power_status = recorder.hardware.short_power_status
|
||||||
|
@ -449,14 +451,23 @@ class WebSocketClinet:
|
||||||
|
|
||||||
# 关闭状态
|
# 关闭状态
|
||||||
if not self.wakeup_event.is_set():
|
if not self.wakeup_event.is_set():
|
||||||
print(f"{datetime.now()}: speaker close.")
|
print(f"{datetime.now()}: microphone and speaker close.")
|
||||||
self.listening_event.clear()
|
self.listening_event.clear()
|
||||||
self.speaking_event.clear()
|
self.speaking_event.clear()
|
||||||
break
|
break
|
||||||
# 按键打断播放
|
# 按键打断播放
|
||||||
if self.listening_event.is_set() and not self.speaking_event.is_set():
|
if self.interrupt_event.is_set():
|
||||||
print(f"{datetime.now()}: speaker interrupt.")
|
print(f"{datetime.now()}: button interrupt.")
|
||||||
|
# 虽然程序到这里,但是扬声器不一定播放完毕,延迟用来避免问题
|
||||||
|
time.sleep(0.5)
|
||||||
|
self.listening_event.set()
|
||||||
|
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:
|
if not self.speaking_event:
|
||||||
|
|
Loading…
Reference in New Issue