Fix ElevenLabsTTSService settings update code

This commit is contained in:
Paul Kompfner
2026-02-18 13:47:02 -05:00
parent caf5dacbe8
commit 17886d14e8
2 changed files with 7 additions and 8 deletions

View File

@@ -25,6 +25,7 @@ from pipecat.runner.utils import create_transport
from pipecat.services.deepgram.stt import DeepgramSTTService
from pipecat.services.elevenlabs.tts import ElevenLabsTTSService, ElevenLabsTTSSettings
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.transcriptions.language import Language
from pipecat.transports.base_transport import BaseTransport, TransportParams
from pipecat.transports.daily.transport import DailyParams
from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams
@@ -100,10 +101,8 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await task.queue_frames([LLMRunFrame()])
await asyncio.sleep(10)
logger.info("Updating ElevenLabs TTS settings: speed=1.2, stability=0.3")
await task.queue_frame(
TTSUpdateSettingsFrame(update=ElevenLabsTTSSettings(speed=1.2, stability=0.3))
)
logger.info("Updating ElevenLabs TTS settings: speed=1.2")
await task.queue_frame(TTSUpdateSettingsFrame(update=ElevenLabsTTSSettings(speed=0.7)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -492,19 +492,19 @@ class ElevenLabsTTSService(AudioContextWordTTSService):
# Rebuild voice settings for next context
self._voice_settings = self._set_voice_settings()
url_changed = bool(changed & ElevenLabsTTSSettings.URL_FIELDS)
voice_settings_changed = bool(changed & ElevenLabsTTSSettings.VOICE_SETTINGS_FIELDS)
url_changed = bool(changed.keys() & ElevenLabsTTSSettings.URL_FIELDS)
voice_settings_changed = bool(changed.keys() & ElevenLabsTTSSettings.VOICE_SETTINGS_FIELDS)
if url_changed:
logger.debug(
f"URL-level setting changed ({changed & ElevenLabsTTSSettings.URL_FIELDS}), "
f"URL-level setting changed ({changed.keys() & ElevenLabsTTSSettings.URL_FIELDS}), "
f"reconnecting WebSocket"
)
await self._disconnect()
await self._connect()
elif voice_settings_changed and self._context_id:
logger.debug(
f"Voice settings changed ({changed & ElevenLabsTTSSettings.VOICE_SETTINGS_FIELDS}), "
f"Voice settings changed ({changed.keys() & ElevenLabsTTSSettings.VOICE_SETTINGS_FIELDS}), "
f"closing current context to apply changes"
)
try: