Adding fallback in case the clock queue is not drained.
This commit is contained in:
@@ -834,7 +834,13 @@ class BaseOutputTransport(FrameProcessor):
|
|||||||
if isinstance(frame, TTSStoppedFrame) and self._clock_flush_event is not None:
|
if isinstance(frame, TTSStoppedFrame) and self._clock_flush_event is not None:
|
||||||
logger.debug(f"{self._transport} audio queue signalling clock queue flush")
|
logger.debug(f"{self._transport} audio queue signalling clock queue flush")
|
||||||
self._clock_flush_event.set()
|
self._clock_flush_event.set()
|
||||||
await self._clock_drained_event.wait()
|
try:
|
||||||
|
await asyncio.wait_for(self._clock_drained_event.wait(), timeout=BOT_VAD_STOP_FALLBACK_SECS)
|
||||||
|
except asyncio.TimeoutError:
|
||||||
|
logger.warning(
|
||||||
|
f"{self._transport} timed out waiting for clock queue to drain, "
|
||||||
|
"pushing TTSStoppedFrame downstream anyway"
|
||||||
|
)
|
||||||
self._clock_flush_event = None
|
self._clock_flush_event = None
|
||||||
self._clock_drained_event = None
|
self._clock_drained_event = None
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user