Fix ElevenLabsTTSService settings update code
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user