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.deepgram.stt import DeepgramSTTService
|
||||||
from pipecat.services.elevenlabs.tts import ElevenLabsTTSService, ElevenLabsTTSSettings
|
from pipecat.services.elevenlabs.tts import ElevenLabsTTSService, ElevenLabsTTSSettings
|
||||||
from pipecat.services.openai.llm import OpenAILLMService
|
from pipecat.services.openai.llm import OpenAILLMService
|
||||||
|
from pipecat.transcriptions.language import Language
|
||||||
from pipecat.transports.base_transport import BaseTransport, TransportParams
|
from pipecat.transports.base_transport import BaseTransport, TransportParams
|
||||||
from pipecat.transports.daily.transport import DailyParams
|
from pipecat.transports.daily.transport import DailyParams
|
||||||
from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams
|
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 task.queue_frames([LLMRunFrame()])
|
||||||
|
|
||||||
await asyncio.sleep(10)
|
await asyncio.sleep(10)
|
||||||
logger.info("Updating ElevenLabs TTS settings: speed=1.2, stability=0.3")
|
logger.info("Updating ElevenLabs TTS settings: speed=1.2")
|
||||||
await task.queue_frame(
|
await task.queue_frame(TTSUpdateSettingsFrame(update=ElevenLabsTTSSettings(speed=0.7)))
|
||||||
TTSUpdateSettingsFrame(update=ElevenLabsTTSSettings(speed=1.2, stability=0.3))
|
|
||||||
)
|
|
||||||
|
|
||||||
@transport.event_handler("on_client_disconnected")
|
@transport.event_handler("on_client_disconnected")
|
||||||
async def on_client_disconnected(transport, client):
|
async def on_client_disconnected(transport, client):
|
||||||
|
|||||||
@@ -492,19 +492,19 @@ class ElevenLabsTTSService(AudioContextWordTTSService):
|
|||||||
# Rebuild voice settings for next context
|
# Rebuild voice settings for next context
|
||||||
self._voice_settings = self._set_voice_settings()
|
self._voice_settings = self._set_voice_settings()
|
||||||
|
|
||||||
url_changed = bool(changed & ElevenLabsTTSSettings.URL_FIELDS)
|
url_changed = bool(changed.keys() & ElevenLabsTTSSettings.URL_FIELDS)
|
||||||
voice_settings_changed = bool(changed & ElevenLabsTTSSettings.VOICE_SETTINGS_FIELDS)
|
voice_settings_changed = bool(changed.keys() & ElevenLabsTTSSettings.VOICE_SETTINGS_FIELDS)
|
||||||
|
|
||||||
if url_changed:
|
if url_changed:
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"URL-level setting changed ({changed & ElevenLabsTTSSettings.URL_FIELDS}), "
|
f"URL-level setting changed ({changed.keys() & ElevenLabsTTSSettings.URL_FIELDS}), "
|
||||||
f"reconnecting WebSocket"
|
f"reconnecting WebSocket"
|
||||||
)
|
)
|
||||||
await self._disconnect()
|
await self._disconnect()
|
||||||
await self._connect()
|
await self._connect()
|
||||||
elif voice_settings_changed and self._context_id:
|
elif voice_settings_changed and self._context_id:
|
||||||
logger.debug(
|
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"
|
f"closing current context to apply changes"
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user