Make clearer the distinction between "storage-mode" and "delta-mode" usage of *Settings objects
- Storage mode: for use in `self._settings`. All fields should be specified, i.e. should not be `NOT_GIVEN`. - Delta mode: for use in `*UpdateSettingsFrame`. In service of this, this commit: - Adds a runtime check that all fields are specified in storage mode - Updates all services to specify all fields in stored settings - Updates all services to no longer check for `is_given` in stored settings (not necessary anymore) - Updates relevant docstrings - Renames `update` to `delta` in `*UpdateSettingsFrame` - Updates community integrations guide
This commit is contained in:
@@ -260,9 +260,11 @@ class MySTTService(STTService):
|
||||
|
||||
_settings: MySTTSettings
|
||||
|
||||
def __init__(self, *, model: str, region: str, **kwargs):
|
||||
def __init__(self, *, model: str, language: str, region: str, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
self._settings = MySTTSettings(model=model, region=region)
|
||||
# Initial value must be provided for every field in self._settings
|
||||
# before service is started
|
||||
self._settings = MySTTSettings(model=model, language=language, region=region)
|
||||
self._sync_model_name_to_metrics()
|
||||
```
|
||||
|
||||
@@ -298,7 +300,7 @@ async def _update_settings(self, update: STTSettings) -> dict[str, Any]:
|
||||
if "language" in changed:
|
||||
await self._update_language()
|
||||
else:
|
||||
# TODO: handle changes to other settings soon!
|
||||
# TODO: this should be temporary - handle changes to other settings soon!
|
||||
self._warn_unhandled_updated_settings(changed.keys() - {"language"})
|
||||
|
||||
return changed
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
```python
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=DeepgramSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=DeepgramSTTSettings(language=Language.ES))
|
||||
)
|
||||
```
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
- Dict-based `*UpdateSettingsFrame(settings={...})` is deprecated in favor of passing typed settings delta objects with `*UpdateSettingsFrame(update={...})`.
|
||||
- Dict-based `*UpdateSettingsFrame(settings={...})` is deprecated in favor of passing typed settings delta objects with `*UpdateSettingsFrame(delta={...})`.
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Deepgram Flux STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=DeepgramFluxSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=DeepgramFluxSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -109,7 +109,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Deepgram SageMaker STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=DeepgramSageMakerSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=DeepgramSageMakerSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Deepgram STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=DeepgramSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=DeepgramSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -105,9 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Azure STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=AzureSTTSettings(language=Language.ES))
|
||||
)
|
||||
await task.queue_frame(STTUpdateSettingsFrame(delta=AzureSTTSettings(language=Language.ES)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Google STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=GoogleSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=GoogleSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating AssemblyAI STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=AssemblyAISTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=AssemblyAISTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Gladia STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=GladiaSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=GladiaSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -106,7 +106,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating ElevenLabs Realtime STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=ElevenLabsRealtimeSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=ElevenLabsRealtimeSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -108,7 +108,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating ElevenLabs STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=ElevenLabsSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=ElevenLabsSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -110,13 +110,13 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Speechmatics STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=SpeechmaticsSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=SpeechmaticsSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Speechmatics STT settings: focus_speakers=['S1']")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=SpeechmaticsSTTSettings(focus_speakers=["S1"]))
|
||||
STTUpdateSettingsFrame(delta=SpeechmaticsSTTSettings(focus_speakers=["S1"]))
|
||||
)
|
||||
|
||||
await asyncio.sleep(10)
|
||||
@@ -125,7 +125,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
)
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(
|
||||
update=SpeechmaticsSTTSettings(
|
||||
delta=SpeechmaticsSTTSettings(
|
||||
speaker_active_format="<SPEAKER_{speaker_id}>{text}</SPEAKER_{speaker_id}>"
|
||||
)
|
||||
)
|
||||
|
||||
@@ -108,7 +108,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating OpenAI STT settings: language="es"')
|
||||
await task.queue_frame(STTUpdateSettingsFrame(update=BaseWhisperSTTSettings(language="es")))
|
||||
await task.queue_frame(STTUpdateSettingsFrame(delta=BaseWhisperSTTSettings(language="es")))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Sarvam STT settings: language=en-IN")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=SarvamSTTSettings(language=Language.EN_IN))
|
||||
STTUpdateSettingsFrame(delta=SarvamSTTSettings(language=Language.EN_IN))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Soniox STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=SonioxSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=SonioxSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating AWS Transcribe STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=AWSTranscribeSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=AWSTranscribeSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Cartesia STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=CartesiaSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=CartesiaSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -107,7 +107,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
logger.info("Updating Cartesia HTTP TTS settings: speed increased to 1.5")
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(
|
||||
update=CartesiaTTSSettings(generation_config=GenerationConfig(speed=1.5))
|
||||
delta=CartesiaTTSSettings(generation_config=GenerationConfig(speed=1.5))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
logger.info("Updating Cartesia TTS settings: speed increased to 1.5")
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(
|
||||
update=CartesiaTTSSettings(generation_config=GenerationConfig(speed=1.5))
|
||||
delta=CartesiaTTSSettings(generation_config=GenerationConfig(speed=1.5))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating ElevenLabs TTS settings: speed=0.7")
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=ElevenLabsHttpTTSSettings(speed=0.7))
|
||||
TTSUpdateSettingsFrame(delta=ElevenLabsHttpTTSSettings(speed=0.7))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -102,13 +102,13 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating ElevenLabs TTS settings: speed=0.7")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=ElevenLabsTTSSettings(speed=0.7)))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=ElevenLabsTTSSettings(speed=0.7)))
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating ElevenLabs TTS settings: switching to a different voice")
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(
|
||||
update=ElevenLabsTTSSettings(voice=os.getenv("ELEVENLABS_VOICE_ID_ALT"))
|
||||
delta=ElevenLabsTTSSettings(voice=os.getenv("ELEVENLABS_VOICE_ID_ALT"))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating OpenAI TTS settings: speed=2.0")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=OpenAITTSSettings(speed=2.0)))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=OpenAITTSSettings(speed=2.0)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -106,13 +106,13 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating Deepgram TTS settings: voice="aura-2-aries-en"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=DeepgramTTSSettings(voice="aura-2-aries-en"))
|
||||
TTSUpdateSettingsFrame(delta=DeepgramTTSSettings(voice="aura-2-aries-en"))
|
||||
)
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating Deepgram TTS settings: voice="aura-2-luna-en"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=DeepgramTTSSettings(voice="aura-2-luna-en"))
|
||||
TTSUpdateSettingsFrame(delta=DeepgramTTSSettings(voice="aura-2-luna-en"))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -106,13 +106,13 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating Deepgram SageMaker TTS settings: voice="aura-2-aries-en"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=DeepgramSageMakerTTSSettings(voice="aura-2-aries-en"))
|
||||
TTSUpdateSettingsFrame(delta=DeepgramSageMakerTTSSettings(voice="aura-2-aries-en"))
|
||||
)
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating Deepgram SageMaker TTS settings: voice="aura-2-luna-en"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=DeepgramSageMakerTTSSettings(voice="aura-2-luna-en"))
|
||||
TTSUpdateSettingsFrame(delta=DeepgramSageMakerTTSSettings(voice="aura-2-luna-en"))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -99,13 +99,13 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating Deepgram TTS settings: voice="aura-2-aries-en"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=DeepgramTTSSettings(voice="aura-2-aries-en"))
|
||||
TTSUpdateSettingsFrame(delta=DeepgramTTSSettings(voice="aura-2-aries-en"))
|
||||
)
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating Deepgram TTS settings: voice="aura-2-luna-en"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=DeepgramTTSSettings(voice="aura-2-luna-en"))
|
||||
TTSUpdateSettingsFrame(delta=DeepgramTTSSettings(voice="aura-2-luna-en"))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating Azure TTS settings: rate="0.7", style="sad"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=AzureTTSSettings(rate="0.7", style="sad"))
|
||||
TTSUpdateSettingsFrame(delta=AzureTTSSettings(rate="0.7", style="sad"))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating Azure TTS settings: rate="0.7", style="sad"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=AzureTTSSettings(rate="0.7", style="sad"))
|
||||
TTSUpdateSettingsFrame(delta=AzureTTSSettings(rate="0.7", style="sad"))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -99,7 +99,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Google HTTP TTS settings: speaking_rate=1.4")
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=GoogleHttpTTSSettings(speaking_rate=1.4))
|
||||
TTSUpdateSettingsFrame(delta=GoogleHttpTTSSettings(speaking_rate=1.4))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -99,7 +99,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Google Stream TTS settings: speaking_rate=1.4")
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=GoogleStreamTTSSettings(speaking_rate=1.4))
|
||||
TTSUpdateSettingsFrame(delta=GoogleStreamTTSSettings(speaking_rate=1.4))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating PlayHT TTS settings: speed=1.3")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=PlayHTTTSSettings(speed=1.3)))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=PlayHTTTSSettings(speed=1.3)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -104,7 +104,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Rime TTS settings: voice=rex")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=RimeTTSSettings(voice="rex")))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=RimeTTSSettings(voice="rex")))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Rime TTS settings: voice=bond")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=RimeTTSSettings(voice="bond")))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=RimeTTSSettings(voice="bond")))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating LMNT TTS settings: voice="tyler"')
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=LmntTTSSettings(voice="tyler")))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=LmntTTSSettings(voice="tyler")))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Fish Audio TTS settings: prosody_speed=1.5")
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=FishAudioTTSSettings(prosody_speed=1.5))
|
||||
TTSUpdateSettingsFrame(delta=FishAudioTTSSettings(prosody_speed=1.5))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -105,7 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating MiniMax TTS settings: speed=1.5, emotion="happy"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=MiniMaxTTSSettings(speed=1.5, emotion="happy"))
|
||||
TTSUpdateSettingsFrame(delta=MiniMaxTTSSettings(speed=1.5, emotion="happy"))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -98,7 +98,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Groq TTS settings: speed=1.5")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=GroqTTSSettings(speed=1.5)))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=GroqTTSSettings(speed=1.5)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
logger.info('Updating Hume TTS settings: speed=2.0, description="Speak with excitement"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(
|
||||
update=HumeTTSSettings(speed=2.0, description="Speak with excitement")
|
||||
delta=HumeTTSSettings(speed=2.0, description="Speak with excitement")
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Neuphonic HTTP TTS settings: speed=1.4")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=NeuphonicTTSSettings(speed=1.4)))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=NeuphonicTTSSettings(speed=1.4)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -98,7 +98,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Neuphonic TTS settings: speed=1.4")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=NeuphonicTTSSettings(speed=1.4)))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=NeuphonicTTSSettings(speed=1.4)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -103,9 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Inworld TTS settings: speaking_rate=1.5, temperature=0.8")
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(
|
||||
update=InworldTTSSettings(speaking_rate=1.5, temperature=0.8)
|
||||
)
|
||||
TTSUpdateSettingsFrame(delta=InworldTTSSettings(speaking_rate=1.5, temperature=0.8))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -99,7 +99,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Inworld TTS settings: speaking_rate=1.5, temperature=0.8")
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=InworldTTSSettings(speaking_rate=1.5, temperature=0.8))
|
||||
TTSUpdateSettingsFrame(delta=InworldTTSSettings(speaking_rate=1.5, temperature=0.8))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -108,7 +108,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating Gemini TTS settings: prompt="Speak slowly and dramatically"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=GeminiTTSSettings(prompt="Speak slowly and dramatically"))
|
||||
TTSUpdateSettingsFrame(delta=GeminiTTSSettings(prompt="Speak slowly and dramatically"))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -98,7 +98,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating AWS Polly TTS settings: rate="fast"')
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=AWSPollyTTSSettings(rate="fast")))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=AWSPollyTTSSettings(rate="fast")))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Sarvam TTS settings: pace=1.5")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=SarvamHttpTTSSettings(pace=1.5)))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=SarvamHttpTTSSettings(pace=1.5)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -98,7 +98,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Sarvam TTS settings: pace=1.5")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=SarvamTTSSettings(pace=1.5)))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=SarvamTTSSettings(pace=1.5)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -99,7 +99,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Camb TTS settings: language -> Spanish")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=CambTTSSettings(language=Language.ES)))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=CambTTSSettings(language=Language.ES)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Hathora TTS settings: speed=1.3")
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(update=HathoraTTSSettings(speed=1.3)))
|
||||
await task.queue_frame(TTSUpdateSettingsFrame(delta=HathoraTTSSettings(speed=1.3)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
logger.info("Updating ResembleAI TTS settings: voice (changed)")
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(
|
||||
update=ResembleAITTSSettings(voice=os.getenv("RESEMBLE_VOICE_UUID_ALT"))
|
||||
delta=ResembleAITTSSettings(voice=os.getenv("RESEMBLE_VOICE_UUID_ALT"))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Azure LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating OpenAI LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Anthropic LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=AnthropicLLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=AnthropicLLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Google LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=GoogleLLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=GoogleLLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -106,7 +106,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Google Vertex LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=GoogleLLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=GoogleLLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
logger.info("Updating Azure Realtime LLM settings: output_modalities=['text']")
|
||||
await task.queue_frame(
|
||||
LLMUpdateSettingsFrame(
|
||||
update=OpenAIRealtimeLLMSettings(
|
||||
delta=OpenAIRealtimeLLMSettings(
|
||||
session_properties=events.SessionProperties(output_modalities=["text"])
|
||||
)
|
||||
)
|
||||
@@ -112,7 +112,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
logger.info("Updating Azure Realtime LLM settings: output_modalities=['audio']")
|
||||
await task.queue_frame(
|
||||
LLMUpdateSettingsFrame(
|
||||
update=OpenAIRealtimeLLMSettings(
|
||||
delta=OpenAIRealtimeLLMSettings(
|
||||
session_properties=events.SessionProperties(output_modalities=["audio"])
|
||||
)
|
||||
)
|
||||
|
||||
@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
logger.info("Updating OpenAI Realtime LLM settings: output_modalities=['text']")
|
||||
await task.queue_frame(
|
||||
LLMUpdateSettingsFrame(
|
||||
update=OpenAIRealtimeLLMSettings(
|
||||
delta=OpenAIRealtimeLLMSettings(
|
||||
session_properties=events.SessionProperties(output_modalities=["text"])
|
||||
)
|
||||
)
|
||||
@@ -111,7 +111,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
logger.info("Updating OpenAI Realtime LLM settings: output_modalities=['audio']")
|
||||
await task.queue_frame(
|
||||
LLMUpdateSettingsFrame(
|
||||
update=OpenAIRealtimeLLMSettings(
|
||||
delta=OpenAIRealtimeLLMSettings(
|
||||
session_properties=events.SessionProperties(output_modalities=["audio"])
|
||||
)
|
||||
)
|
||||
|
||||
@@ -91,9 +91,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Gemini Live Vertex LLM settings: temperature=0.1")
|
||||
await task.queue_frame(
|
||||
LLMUpdateSettingsFrame(update=GeminiLiveLLMSettings(temperature=0.1))
|
||||
)
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=GeminiLiveLLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -89,9 +89,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Gemini Live LLM settings: temperature=0.1")
|
||||
await task.queue_frame(
|
||||
LLMUpdateSettingsFrame(update=GeminiLiveLLMSettings(temperature=0.1))
|
||||
)
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=GeminiLiveLLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -112,13 +112,13 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Ultravox Realtime LLM settings: output_medium=text")
|
||||
await task.queue_frame(
|
||||
LLMUpdateSettingsFrame(update=UltravoxRealtimeLLMSettings(output_medium="text"))
|
||||
LLMUpdateSettingsFrame(delta=UltravoxRealtimeLLMSettings(output_medium="text"))
|
||||
)
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Ultravox Realtime LLM settings: output_medium=voice")
|
||||
await task.queue_frame(
|
||||
LLMUpdateSettingsFrame(update=UltravoxRealtimeLLMSettings(output_medium="voice"))
|
||||
LLMUpdateSettingsFrame(delta=UltravoxRealtimeLLMSettings(output_medium="voice"))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
logger.info("Updating Grok Realtime LLM settings: voice='Rex'")
|
||||
await task.queue_frame(
|
||||
LLMUpdateSettingsFrame(
|
||||
update=GrokRealtimeLLMSettings(
|
||||
delta=GrokRealtimeLLMSettings(
|
||||
session_properties=events.SessionProperties(voice="Rex")
|
||||
)
|
||||
)
|
||||
|
||||
@@ -105,9 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating AWS Bedrock LLM settings: temperature=0.1")
|
||||
await task.queue_frame(
|
||||
LLMUpdateSettingsFrame(update=AWSBedrockLLMSettings(temperature=0.1))
|
||||
)
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=AWSBedrockLLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating Fal STT settings: task="translate"')
|
||||
await task.queue_frame(STTUpdateSettingsFrame(update=FalSTTSettings(task="translate")))
|
||||
await task.queue_frame(STTUpdateSettingsFrame(delta=FalSTTSettings(task="translate")))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -104,7 +104,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Gradium STT settings: delay_in_frames=5")
|
||||
await task.queue_frame(STTUpdateSettingsFrame(update=GradiumSTTSettings(delay_in_frames=5)))
|
||||
await task.queue_frame(STTUpdateSettingsFrame(delta=GradiumSTTSettings(delay_in_frames=5)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -104,7 +104,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Hathora STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=HathoraSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=HathoraSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating NVIDIA Segmented STT settings: profanity_filter=True")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=NvidiaSegmentedSTTSettings(profanity_filter=True))
|
||||
STTUpdateSettingsFrame(delta=NvidiaSegmentedSTTSettings(profanity_filter=True))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating NVIDIA STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=NvidiaSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=NvidiaSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating OpenAI Realtime STT settings: language=es")
|
||||
await task.queue_frame(
|
||||
STTUpdateSettingsFrame(update=OpenAIRealtimeSTTSettings(language=Language.ES))
|
||||
STTUpdateSettingsFrame(delta=OpenAIRealtimeSTTSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -108,7 +108,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating AsyncAI HTTP TTS settings: language=es")
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=AsyncAITTSSettings(language=Language.ES))
|
||||
TTSUpdateSettingsFrame(delta=AsyncAITTSSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating AsyncAI TTS settings: language=es")
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=AsyncAITTSSettings(language=Language.ES))
|
||||
TTSUpdateSettingsFrame(delta=AsyncAITTSSettings(language=Language.ES))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating Gradium TTS settings: voice="LFZvm12tW_z0xfGo"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=GradiumTTSSettings(voice="LFZvm12tW_z0xfGo"))
|
||||
TTSUpdateSettingsFrame(delta=GradiumTTSSettings(voice="LFZvm12tW_z0xfGo"))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Cerebras LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating DeepSeek LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -105,7 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Fireworks LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Grok LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -104,7 +104,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Groq LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Mistral LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -104,7 +104,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating NVIDIA LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating OLLama LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating OpenRouter LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Perplexity LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Qwen LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating SambaNova LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -105,7 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating Together LLM settings: temperature=0.1")
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
|
||||
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
async def on_client_disconnected(transport, client):
|
||||
|
||||
@@ -99,7 +99,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info("Updating AWS Nova Sonic LLM settings: temperature=0.1")
|
||||
await task.queue_frame(
|
||||
LLMUpdateSettingsFrame(update=AWSNovaSonicLLMSettings(temperature=0.1))
|
||||
LLMUpdateSettingsFrame(delta=AWSNovaSonicLLMSettings(temperature=0.1))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -100,7 +100,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating NVIDIA TTS settings: language="ES_US"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=NvidiaTTSSettings(language=Language.ES_US))
|
||||
TTSUpdateSettingsFrame(delta=NvidiaTTSSettings(language=Language.ES_US))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -104,7 +104,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
await asyncio.sleep(10)
|
||||
logger.info('Updating Speechmatics TTS settings: voice="theo"')
|
||||
await task.queue_frame(
|
||||
TTSUpdateSettingsFrame(update=SpeechmaticsTTSSettings(voice="theo"))
|
||||
TTSUpdateSettingsFrame(delta=SpeechmaticsTTSSettings(voice="theo"))
|
||||
)
|
||||
|
||||
@transport.event_handler("on_client_disconnected")
|
||||
|
||||
@@ -2121,21 +2121,21 @@ class TTSStoppedFrame(ControlFrame):
|
||||
class ServiceUpdateSettingsFrame(ControlFrame):
|
||||
"""Base frame for updating service settings.
|
||||
|
||||
Supports both a ``settings`` dict (for backward compatibility) and an
|
||||
``update`` object. When both are provided, ``update`` takes precedence.
|
||||
Supports both a ``settings`` dict (for backward compatibility) and a
|
||||
``delta`` object. When both are provided, ``delta`` takes precedence.
|
||||
|
||||
Parameters:
|
||||
settings: Dictionary of setting name to value mappings.
|
||||
|
||||
.. deprecated:: 0.0.103
|
||||
Use ``update`` with a typed settings object instead.
|
||||
Use ``delta`` with a typed settings object instead.
|
||||
|
||||
update: :class:`~pipecat.services.settings.ServiceSettings` object
|
||||
describing the delta to apply.
|
||||
delta: :class:`~pipecat.services.settings.ServiceSettings` delta-mode
|
||||
object describing the fields to change.
|
||||
"""
|
||||
|
||||
settings: Mapping[str, Any] = field(default_factory=dict)
|
||||
update: Optional["ServiceSettings"] = None
|
||||
delta: Optional["ServiceSettings"] = None
|
||||
|
||||
|
||||
@dataclass
|
||||
|
||||
@@ -42,7 +42,7 @@ class AIService(FrameProcessor):
|
||||
**kwargs: Additional arguments passed to the parent FrameProcessor.
|
||||
"""
|
||||
super().__init__(**kwargs)
|
||||
self._settings: ServiceSettings = ServiceSettings(model="")
|
||||
self._settings: ServiceSettings = ServiceSettings() # Here in case subclass doesn't implement more specific settings (hopefully shouldn't happen)
|
||||
self._session_properties: Dict[str, Any] = {}
|
||||
self._tracing_enabled: bool = False
|
||||
self._tracing_context = None
|
||||
@@ -73,6 +73,7 @@ class AIService(FrameProcessor):
|
||||
Args:
|
||||
frame: The start frame containing initialization parameters.
|
||||
"""
|
||||
self._settings.validate_complete()
|
||||
self._tracing_enabled = frame.enable_tracing
|
||||
self._tracing_context = frame.tracing_context
|
||||
|
||||
@@ -98,10 +99,10 @@ class AIService(FrameProcessor):
|
||||
"""
|
||||
pass
|
||||
|
||||
async def _update_settings(self, update: ServiceSettings) -> Dict[str, Any]:
|
||||
"""Apply a settings update and return the changed fields.
|
||||
async def _update_settings(self, delta: ServiceSettings) -> Dict[str, Any]:
|
||||
"""Apply a settings delta and return the changed fields.
|
||||
|
||||
The update is applied to ``_settings`` and a dict mapping each changed
|
||||
The delta is applied to ``_settings`` and a dict mapping each changed
|
||||
field name to its **pre-update** value is returned. The ``model``
|
||||
field is handled specially: when it changes, ``set_model_name`` is
|
||||
called.
|
||||
@@ -110,12 +111,12 @@ class AIService(FrameProcessor):
|
||||
to react to specific changed fields (e.g. reconnect on voice change).
|
||||
|
||||
Args:
|
||||
update: A settings delta.
|
||||
delta: A delta-mode settings object.
|
||||
|
||||
Returns:
|
||||
Dict mapping changed field names to their previous values.
|
||||
"""
|
||||
changed = self._settings.apply_update(update)
|
||||
changed = self._settings.apply_update(delta)
|
||||
|
||||
if "model" in changed:
|
||||
self._sync_model_name_to_metrics()
|
||||
|
||||
@@ -254,6 +254,11 @@ class AnthropicLLMService(LLMService):
|
||||
temperature=params.temperature,
|
||||
top_k=params.top_k,
|
||||
top_p=params.top_p,
|
||||
frequency_penalty=None,
|
||||
presence_penalty=None,
|
||||
seed=None,
|
||||
filter_incomplete_user_turns=False,
|
||||
user_turn_completion_config=None,
|
||||
thinking=params.thinking,
|
||||
extra=params.extra if isinstance(params.extra, dict) else {},
|
||||
)
|
||||
|
||||
@@ -116,6 +116,7 @@ class AssemblyAISTTService(WebsocketSTTService):
|
||||
|
||||
self._api_key = api_key
|
||||
self._settings = AssemblyAISTTSettings(
|
||||
model=None,
|
||||
language=language,
|
||||
connection_params=connection_params,
|
||||
)
|
||||
@@ -186,18 +187,18 @@ class AssemblyAISTTService(WebsocketSTTService):
|
||||
"""
|
||||
return True
|
||||
|
||||
async def _update_settings(self, update: STTSettings) -> dict[str, Any]:
|
||||
"""Apply a settings update.
|
||||
async def _update_settings(self, delta: STTSettings) -> dict[str, Any]:
|
||||
"""Apply a settings delta.
|
||||
|
||||
Settings are stored but not applied to the active connection.
|
||||
|
||||
Args:
|
||||
update: A :class:`STTSettings` (or ``AssemblyAISTTSettings``) delta.
|
||||
delta: A :class:`STTSettings` (or ``AssemblyAISTTSettings``) delta.
|
||||
|
||||
Returns:
|
||||
Dict mapping changed field names to their previous values.
|
||||
"""
|
||||
changed = await super()._update_settings(update)
|
||||
changed = await super()._update_settings(delta)
|
||||
|
||||
if not changed:
|
||||
return changed
|
||||
|
||||
@@ -176,12 +176,12 @@ class AsyncAITTSService(AudioContextTTSService):
|
||||
self._receive_task = None
|
||||
self._keepalive_task = None
|
||||
|
||||
async def _update_settings(self, update: TTSSettings) -> dict[str, Any]:
|
||||
"""Apply a settings update.
|
||||
async def _update_settings(self, delta: TTSSettings) -> dict[str, Any]:
|
||||
"""Apply a settings delta.
|
||||
|
||||
Settings are stored but not applied to the active connection.
|
||||
"""
|
||||
changed = await super()._update_settings(update)
|
||||
changed = await super()._update_settings(delta)
|
||||
|
||||
if not changed:
|
||||
return changed
|
||||
|
||||
@@ -827,6 +827,12 @@ class AWSBedrockLLMService(LLMService):
|
||||
max_tokens=params.max_tokens,
|
||||
temperature=params.temperature,
|
||||
top_p=params.top_p,
|
||||
top_k=None,
|
||||
frequency_penalty=None,
|
||||
presence_penalty=None,
|
||||
seed=None,
|
||||
filter_incomplete_user_turns=False,
|
||||
user_turn_completion_config=None,
|
||||
latency=params.latency,
|
||||
additional_model_request_fields=params.additional_model_request_fields
|
||||
if isinstance(params.additional_model_request_fields, dict)
|
||||
|
||||
@@ -267,6 +267,12 @@ class AWSNovaSonicLLMService(LLMService):
|
||||
temperature=params.temperature,
|
||||
max_tokens=params.max_tokens,
|
||||
top_p=params.top_p,
|
||||
top_k=None,
|
||||
frequency_penalty=None,
|
||||
presence_penalty=None,
|
||||
seed=None,
|
||||
filter_incomplete_user_turns=False,
|
||||
user_turn_completion_config=None,
|
||||
endpointing_sensitivity=params.endpointing_sensitivity,
|
||||
)
|
||||
self._sync_model_name_to_metrics()
|
||||
@@ -338,12 +344,12 @@ class AWSNovaSonicLLMService(LLMService):
|
||||
# settings
|
||||
#
|
||||
|
||||
async def _update_settings(self, update: AWSNovaSonicLLMSettings) -> dict[str, Any]:
|
||||
"""Apply a settings update.
|
||||
async def _update_settings(self, delta: AWSNovaSonicLLMSettings) -> dict[str, Any]:
|
||||
"""Apply a settings delta.
|
||||
|
||||
Settings are stored but not applied to the active connection.
|
||||
"""
|
||||
changed = await super()._update_settings(update)
|
||||
changed = await super()._update_settings(delta)
|
||||
|
||||
if not changed:
|
||||
return changed
|
||||
|
||||
@@ -148,12 +148,12 @@ class AWSTranscribeSTTService(WebsocketSTTService):
|
||||
}
|
||||
return encoding_map.get(encoding, encoding)
|
||||
|
||||
async def _update_settings(self, update: STTSettings) -> dict[str, Any]:
|
||||
"""Apply a settings update.
|
||||
async def _update_settings(self, delta: STTSettings) -> dict[str, Any]:
|
||||
"""Apply a settings delta.
|
||||
|
||||
Settings are stored but not applied to the active connection.
|
||||
"""
|
||||
changed = await super()._update_settings(update)
|
||||
changed = await super()._update_settings(delta)
|
||||
|
||||
if not changed:
|
||||
return changed
|
||||
|
||||
@@ -209,6 +209,7 @@ class AWSPollyTTSService(TTSService):
|
||||
|
||||
self._aws_session = aioboto3.Session()
|
||||
self._settings = AWSPollyTTSSettings(
|
||||
model=None,
|
||||
voice=voice_id,
|
||||
engine=params.engine,
|
||||
language=self.language_to_service_language(params.language)
|
||||
|
||||
@@ -110,6 +110,7 @@ class AzureSTTService(STTService):
|
||||
self._audio_stream = None
|
||||
self._speech_recognizer = None
|
||||
self._settings = AzureSTTSettings(
|
||||
model=None,
|
||||
region=region,
|
||||
language=language_to_azure_language(language),
|
||||
sample_rate=sample_rate,
|
||||
@@ -134,12 +135,12 @@ class AzureSTTService(STTService):
|
||||
"""
|
||||
return language_to_azure_language(language)
|
||||
|
||||
async def _update_settings(self, update: STTSettings) -> dict[str, Any]:
|
||||
"""Apply a settings update.
|
||||
async def _update_settings(self, delta: STTSettings) -> dict[str, Any]:
|
||||
"""Apply a settings delta.
|
||||
|
||||
Settings are stored but not applied to the active recognizer.
|
||||
"""
|
||||
changed = await super()._update_settings(update)
|
||||
changed = await super()._update_settings(delta)
|
||||
|
||||
# TODO: someday we could reconnect here to apply updated settings.
|
||||
# Code might look something like the below:
|
||||
|
||||
@@ -156,6 +156,7 @@ class AzureBaseTTSService:
|
||||
params = params or AzureBaseTTSService.InputParams()
|
||||
|
||||
self._settings = AzureTTSSettings(
|
||||
model=None,
|
||||
emphasis=params.emphasis,
|
||||
language=self.language_to_service_language(params.language)
|
||||
if params.language
|
||||
|
||||
@@ -294,16 +294,16 @@ class CartesiaSTTService(WebsocketSTTService):
|
||||
|
||||
await self._disconnect_websocket()
|
||||
|
||||
async def _update_settings(self, update: STTSettings) -> dict[str, Any]:
|
||||
"""Apply a settings update.
|
||||
async def _update_settings(self, delta: STTSettings) -> dict[str, Any]:
|
||||
"""Apply a settings delta.
|
||||
|
||||
Args:
|
||||
update: A :class:`STTSettings` (or ``CartesiaSTTSettings``) delta.
|
||||
delta: A :class:`STTSettings` (or ``CartesiaSTTSettings``) delta.
|
||||
|
||||
Returns:
|
||||
Dict mapping changed field names to their previous values.
|
||||
"""
|
||||
changed = await super()._update_settings(update)
|
||||
changed = await super()._update_settings(delta)
|
||||
|
||||
# TODO: someday we could reconnect here to apply updated settings.
|
||||
# Code might look something like the below:
|
||||
|
||||
@@ -28,7 +28,7 @@ from pipecat.frames.frames import (
|
||||
TTSStoppedFrame,
|
||||
)
|
||||
from pipecat.processors.frame_processor import FrameDirection
|
||||
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, is_given
|
||||
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
|
||||
from pipecat.services.tts_service import AudioContextTTSService, TTSService
|
||||
from pipecat.transcriptions.language import Language, resolve_language
|
||||
from pipecat.utils.text.base_text_aggregator import BaseTextAggregator
|
||||
@@ -443,7 +443,7 @@ class CartesiaTTSService(AudioContextTTSService):
|
||||
voice_config["mode"] = "id"
|
||||
voice_config["id"] = self._settings.voice
|
||||
|
||||
if is_given(self._settings.emotion) and self._settings.emotion:
|
||||
if self._settings.emotion:
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("always")
|
||||
warnings.warn(
|
||||
@@ -469,18 +469,18 @@ class CartesiaTTSService(AudioContextTTSService):
|
||||
"use_original_timestamps": False if self._settings.model == "sonic" else True,
|
||||
}
|
||||
|
||||
if is_given(self._settings.language) and self._settings.language:
|
||||
if self._settings.language:
|
||||
msg["language"] = self._settings.language
|
||||
|
||||
if is_given(self._settings.speed) and self._settings.speed:
|
||||
if self._settings.speed:
|
||||
msg["speed"] = self._settings.speed
|
||||
|
||||
if is_given(self._settings.generation_config) and self._settings.generation_config:
|
||||
if self._settings.generation_config:
|
||||
msg["generation_config"] = self._settings.generation_config.model_dump(
|
||||
exclude_none=True
|
||||
)
|
||||
|
||||
if is_given(self._settings.pronunciation_dict_id) and self._settings.pronunciation_dict_id:
|
||||
if self._settings.pronunciation_dict_id:
|
||||
msg["pronunciation_dict_id"] = self._settings.pronunciation_dict_id
|
||||
|
||||
return json.dumps(msg)
|
||||
@@ -811,7 +811,7 @@ class CartesiaHttpTTSService(TTSService):
|
||||
try:
|
||||
voice_config = {"mode": "id", "id": self._settings.voice}
|
||||
|
||||
if is_given(self._settings.emotion) and self._settings.emotion:
|
||||
if self._settings.emotion:
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("always")
|
||||
warnings.warn(
|
||||
@@ -836,21 +836,18 @@ class CartesiaHttpTTSService(TTSService):
|
||||
"output_format": output_format,
|
||||
}
|
||||
|
||||
if is_given(self._settings.language) and self._settings.language:
|
||||
if self._settings.language:
|
||||
payload["language"] = self._settings.language
|
||||
|
||||
if is_given(self._settings.speed) and self._settings.speed:
|
||||
if self._settings.speed:
|
||||
payload["speed"] = self._settings.speed
|
||||
|
||||
if is_given(self._settings.generation_config) and self._settings.generation_config:
|
||||
if self._settings.generation_config:
|
||||
payload["generation_config"] = self._settings.generation_config.model_dump(
|
||||
exclude_none=True
|
||||
)
|
||||
|
||||
if (
|
||||
is_given(self._settings.pronunciation_dict_id)
|
||||
and self._settings.pronunciation_dict_id
|
||||
):
|
||||
if self._settings.pronunciation_dict_id:
|
||||
payload["pronunciation_dict_id"] = self._settings.pronunciation_dict_id
|
||||
|
||||
yield TTSStartedFrame(context_id=context_id)
|
||||
|
||||
@@ -384,12 +384,12 @@ class DeepgramFluxSTTService(WebsocketSTTService):
|
||||
"""
|
||||
return True
|
||||
|
||||
async def _update_settings(self, update: DeepgramFluxSTTSettings) -> dict[str, Any]:
|
||||
"""Apply a settings update.
|
||||
async def _update_settings(self, delta: DeepgramFluxSTTSettings) -> dict[str, Any]:
|
||||
"""Apply a settings delta.
|
||||
|
||||
Settings are stored but not applied to the active connection.
|
||||
"""
|
||||
changed = await super()._update_settings(update)
|
||||
changed = await super()._update_settings(delta)
|
||||
|
||||
if not changed:
|
||||
return changed
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user