Use TextAggregationMode.TOKEN in the 05-sync-speech-and-image

example since the SentenceAggregator already provides complete sentences.
This commit is contained in:
Paul Kompfner
2026-03-13 18:43:54 -04:00
parent 0f1ff16af1
commit c3d6e965d8
2 changed files with 7 additions and 2 deletions

View File

@@ -31,6 +31,7 @@ from pipecat.runner.utils import create_transport
from pipecat.services.cartesia.tts import CartesiaHttpTTSService
from pipecat.services.fal.image import FalImageGenService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.tts_service import TextAggregationMode
from pipecat.transports.base_transport import BaseTransport, TransportParams
from pipecat.transports.daily.transport import DailyParams
@@ -114,6 +115,10 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
settings=CartesiaHttpTTSService.Settings(
voice="71a7ad14-091c-4e8e-a314-022ece01c121", # British Reading Lady
),
# No need to aggregate by sentences (the default), as we already know we're getting full sentences
# (Otherwise the service will unnecessarily wait for follow-up input to confirm the sentence is complete,
# which, sadly, actually breaks the synchronization mechanism)
text_aggregation_mode=TextAggregationMode.TOKEN,
)
imagegen = FalImageGenService(

View File

@@ -633,7 +633,7 @@ class FrameProcessor(BaseObject):
async def pause_processing_frames(self):
"""Pause processing of queued frames."""
logger.trace(f"{self}: pausing frame processing")
logger.debug(f"{self}: pausing frame processing")
self.__should_block_frames = True
if self.__process_event:
self.__process_event.clear()
@@ -647,7 +647,7 @@ class FrameProcessor(BaseObject):
async def resume_processing_frames(self):
"""Resume processing of queued frames."""
logger.trace(f"{self}: resuming frame processing")
logger.debug(f"{self}: resuming frame processing")
if self.__process_event:
self.__process_event.set()