@@ -116,7 +116,7 @@ class FishAudioTTSService(InterruptibleTTSService):
|
||||
|
||||
async def _connect_websocket(self):
|
||||
try:
|
||||
if self._websocket:
|
||||
if self._websocket and self._websocket.open:
|
||||
return
|
||||
|
||||
logger.debug("Connecting to Fish Audio")
|
||||
@@ -141,16 +141,17 @@ class FishAudioTTSService(InterruptibleTTSService):
|
||||
stop_message = {"event": "stop"}
|
||||
await self._websocket.send(ormsgpack.packb(stop_message))
|
||||
await self._websocket.close()
|
||||
self._websocket = None
|
||||
self._request_id = None
|
||||
self._started = False
|
||||
except Exception as e:
|
||||
logger.error(f"Error closing websocket: {e}")
|
||||
finally:
|
||||
self._request_id = None
|
||||
self._started = False
|
||||
self._websocket = None
|
||||
|
||||
async def flush_audio(self):
|
||||
"""Flush any buffered audio by sending a flush event to Fish Audio."""
|
||||
logger.trace(f"{self}: Flushing audio buffers")
|
||||
if not self._websocket:
|
||||
if not self._websocket or self._websocket.closed:
|
||||
return
|
||||
flush_message = {"event": "flush"}
|
||||
await self._get_websocket().send(ormsgpack.packb(flush_message))
|
||||
|
||||
Reference in New Issue
Block a user