In Cartesia TTS service, we don't need to override _update_settings. Parent class handling is enough, as new settings are picked up on the next run_tts (no need to reconnect).

This commit is contained in:
Paul Kompfner
2026-02-18 12:37:34 -05:00
parent a14690e3a0
commit b8b531b66a
2 changed files with 7 additions and 22 deletions

View File

@@ -22,7 +22,7 @@ from pipecat.processors.aggregators.llm_response_universal import (
)
from pipecat.runner.types import RunnerArguments
from pipecat.runner.utils import create_transport
from pipecat.services.cartesia.tts import CartesiaTTSService, CartesiaTTSSettings
from pipecat.services.cartesia.tts import CartesiaTTSService, CartesiaTTSSettings, GenerationConfig
from pipecat.services.deepgram.stt import DeepgramSTTService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.transports.base_transport import BaseTransport, TransportParams
@@ -103,8 +103,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await task.queue_frames([LLMRunFrame()])
await asyncio.sleep(10)
logger.info("Updating Cartesia TTS settings: speed=fast")
await task.queue_frame(TTSUpdateSettingsFrame(update=CartesiaTTSSettings(speed="fast")))
logger.info("Updating Cartesia TTS settings: speed increased to 1.5")
await task.queue_frame(
TTSUpdateSettingsFrame(
update=CartesiaTTSSettings(generation_config=GenerationConfig(speed=1.5))
)
)
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -355,25 +355,6 @@ class CartesiaTTSService(AudioContextWordTTSService):
"""
return True
async def _update_settings(self, update: TTSSettings) -> dict[str, Any]:
"""Apply a settings update.
Settings are stored but not applied to the active connection.
"""
changed = await super()._update_settings(update)
if not changed:
return changed
# TODO: someday we could reconnect here to apply updated settings.
# Code might look something like the below:
# await self._disconnect()
# await self._connect()
self._warn_unhandled_updated_settings(changed)
return changed
def language_to_service_language(self, language: Language) -> Optional[str]:
"""Convert a Language enum to Cartesia language format.