From aee3916cd1812b0ebfdc6cfc0909c21d61dc1b53 Mon Sep 17 00:00:00 2001 From: Kwindla Hultman Kramer Date: Thu, 6 Jun 2024 11:24:26 -0400 Subject: [PATCH] cartesia async fixed --- .../foundational/07d-interruptible-cartesia.py | 3 --- examples/foundational/07e-interruptible-playht.py | 2 -- src/pipecat/services/playht.py | 14 ++++---------- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/examples/foundational/07d-interruptible-cartesia.py b/examples/foundational/07d-interruptible-cartesia.py index a6398897a..283baa49a 100644 --- a/examples/foundational/07d-interruptible-cartesia.py +++ b/examples/foundational/07d-interruptible-cartesia.py @@ -19,7 +19,6 @@ from pipecat.services.cartesia import CartesiaTTSService from pipecat.services.openai import OpenAILLMService from pipecat.transports.services.daily import DailyParams, DailyTransport from pipecat.vad.silero import SileroVADAnalyzer -from pipecat.processors.logger import FrameLogger from runner import configure @@ -73,9 +72,7 @@ async def main(room_url: str, token): tma_in, # User responses llm, # LLM tts, # TTS - FrameLogger("tts out"), transport.output(), # Transport bot output - FrameLogger("transport out"), tma_out # Assistant spoken responses ]) diff --git a/examples/foundational/07e-interruptible-playht.py b/examples/foundational/07e-interruptible-playht.py index 5d3d63af2..c6c062e52 100644 --- a/examples/foundational/07e-interruptible-playht.py +++ b/examples/foundational/07e-interruptible-playht.py @@ -72,9 +72,7 @@ async def main(room_url: str, token): tma_in, # User responses llm, # LLM tts, # TTS - FrameLogger("tts out"), transport.output(), # Transport bot output - FrameLogger("transport out"), tma_out # Assistant spoken responses ]) diff --git a/src/pipecat/services/playht.py b/src/pipecat/services/playht.py index b0f0ce5de..8373eca7b 100644 --- a/src/pipecat/services/playht.py +++ b/src/pipecat/services/playht.py @@ -17,8 +17,8 @@ from pipecat.services.ai_services import TTSService from loguru import logger try: - from pyht import Client from pyht.client import TTSOptions + from pyht.async_client import AsyncClient from pyht.protos.api_pb2 import Format except ModuleNotFoundError as e: logger.error(f"Exception: {e}") @@ -35,7 +35,7 @@ class PlayHTTTSService(TTSService): self._user_id = user_id self._speech_key = api_key - self._client = Client( + self._client = AsyncClient( user_id=self._user_id, api_key=self._speech_key, ) @@ -53,15 +53,10 @@ class PlayHTTTSService(TTSService): ttfb = None logger.debug(f"Generating TTS: [{text}]") - async def async_generator(sync_gen): - for item in sync_gen: - await asyncio.sleep(0) # Yield control back to the event loop - yield item - try: b = bytearray() in_header = True - sync_gen = self._client.tts( + playht_gen = self._client.tts( text, voice_engine="PlayHT2.0-turbo", options=self._options) @@ -69,8 +64,7 @@ class PlayHTTTSService(TTSService): # need to ask Aleix about this. frames are getting pushed. # but playback is blocked - # for chunk in sync_gen: - async for chunk in async_generator(sync_gen): + async for chunk in playht_gen: # skip the RIFF header. if in_header: b.extend(chunk)