From 627c91f4a67b5579a30f7b7a2bc07d0030ab7534 Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Sat, 21 Dec 2024 12:42:47 -0500 Subject: [PATCH] Flush the audio --- src/pipecat/services/fish.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/pipecat/services/fish.py b/src/pipecat/services/fish.py index 4fbdee714..723ba06d1 100644 --- a/src/pipecat/services/fish.py +++ b/src/pipecat/services/fish.py @@ -155,7 +155,6 @@ class FishAudioTTSService(TTSService): msg = ormsgpack.unpackb(message) if isinstance(msg, dict): event = msg.get("event") - print(f"Received event: {event}") if event == "audio": await self.stop_ttfb_metrics() audio_data = msg.get("audio") @@ -220,12 +219,23 @@ class FishAudioTTSService(TTSService): yield TTSStartedFrame() self._request_id = str(uuid.uuid4()) + # Send the text text_message = { "event": "text", "text": text, } - await self._get_websocket().send(ormsgpack.packb(text_message)) - await self.start_tts_usage_metrics(text) + try: + await self._get_websocket().send(ormsgpack.packb(text_message)) + await self.start_tts_usage_metrics(text) + + # Send flush event to force audio generation + flush_message = {"event": "flush"} + await self._get_websocket().send(ormsgpack.packb(flush_message)) + except Exception as e: + logger.error(f"{self} error sending message: {e}") + yield TTSStoppedFrame() + await self._disconnect() + await self._connect() yield None