Prefer Service.Settings over raw settings class names across all services

Replace direct references to settings class names (e.g. `FooSettings`) with the nested `Settings` alias form throughout all 87 service files:
- Type annotations: `Settings`
- Runtime code: `self.Settings`
- Docstrings: `ServiceClass.Settings`
- Cross-file inheritance: `ParentService.Settings`

This makes the `Settings` alias the canonical way to reference a service's settings, keeping only the class definition and alias assignment as the remaining hits for each raw settings class name.
This commit is contained in:
Paul Kompfner
2026-03-11 12:15:00 -04:00
parent cbb4835e7b
commit 6b168d6bbb
87 changed files with 859 additions and 868 deletions

View File

@@ -160,7 +160,7 @@ class AnthropicLLMService(LLMService):
""" """
Settings = AnthropicLLMSettings Settings = AnthropicLLMSettings
_settings: AnthropicLLMSettings _settings: Settings
# Overriding the default adapter to use the Anthropic one. # Overriding the default adapter to use the Anthropic one.
adapter_class = AnthropicLLMAdapter adapter_class = AnthropicLLMAdapter
@@ -172,7 +172,7 @@ class AnthropicLLMService(LLMService):
"""Input parameters for Anthropic model inference. """Input parameters for Anthropic model inference.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``AnthropicLLMSettings`` instead. Pass settings directly via the Use ``AnthropicLLMService.Settings`` instead. Pass settings directly via the
``settings`` parameter of :class:`AnthropicLLMService`. ``settings`` parameter of :class:`AnthropicLLMService`.
Parameters: Parameters:
@@ -220,7 +220,7 @@ class AnthropicLLMService(LLMService):
api_key: str, api_key: str,
model: Optional[str] = None, model: Optional[str] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[AnthropicLLMSettings] = None, settings: Optional[Settings] = None,
client=None, client=None,
retry_timeout_secs: Optional[float] = 5.0, retry_timeout_secs: Optional[float] = 5.0,
retry_on_timeout: Optional[bool] = False, retry_on_timeout: Optional[bool] = False,
@@ -233,12 +233,12 @@ class AnthropicLLMService(LLMService):
model: Model name to use. model: Model name to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AnthropicLLMSettings(model=...)`` instead. Use ``settings=AnthropicLLMService.Settings(model=...)`` instead.
params: Optional model parameters for inference. params: Optional model parameters for inference.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AnthropicLLMSettings(...)`` instead. Use ``settings=AnthropicLLMService.Settings(...)`` instead.
settings: Runtime-updatable settings for this service. When both settings: Runtime-updatable settings for this service. When both
deprecated parameters and *settings* are provided, *settings* deprecated parameters and *settings* are provided, *settings*
@@ -249,7 +249,7 @@ class AnthropicLLMService(LLMService):
**kwargs: Additional arguments passed to parent LLMService. **kwargs: Additional arguments passed to parent LLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AnthropicLLMSettings( default_settings = self.Settings(
model="claude-sonnet-4-6", model="claude-sonnet-4-6",
system_instruction=None, system_instruction=None,
max_tokens=4096, max_tokens=4096,
@@ -268,12 +268,12 @@ class AnthropicLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", AnthropicLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", AnthropicLLMSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.max_tokens = params.max_tokens default_settings.max_tokens = params.max_tokens
default_settings.temperature = params.temperature default_settings.temperature = params.temperature

View File

@@ -125,7 +125,7 @@ class AssemblyAIConnectionParams(BaseModel):
"""Configuration parameters for AssemblyAI WebSocket connection. """Configuration parameters for AssemblyAI WebSocket connection.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AssemblyAISTTSettings(foo=...)`` instead. Use ``settings=AssemblyAISTTService.Settings(foo=...)`` instead.
Parameters: Parameters:
sample_rate: Audio sample rate in Hz. Defaults to 16000. sample_rate: Audio sample rate in Hz. Defaults to 16000.

View File

@@ -129,7 +129,7 @@ class AssemblyAISTTService(WebsocketSTTService):
""" """
Settings = AssemblyAISTTSettings Settings = AssemblyAISTTSettings
_settings: AssemblyAISTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -143,7 +143,7 @@ class AssemblyAISTTService(WebsocketSTTService):
vad_force_turn_endpoint: bool = True, vad_force_turn_endpoint: bool = True,
should_interrupt: bool = True, should_interrupt: bool = True,
speaker_format: Optional[str] = None, speaker_format: Optional[str] = None,
settings: Optional[AssemblyAISTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = ASSEMBLYAI_TTFS_P99, ttfs_p99_latency: Optional[float] = ASSEMBLYAI_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -154,7 +154,7 @@ class AssemblyAISTTService(WebsocketSTTService):
language: Language code for transcription. Defaults to English (Language.EN). language: Language code for transcription. Defaults to English (Language.EN).
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AssemblyAISTTSettings(language=...)`` instead. Use ``settings=AssemblyAISTTService.Settings(language=...)`` instead.
api_endpoint_base_url: WebSocket endpoint URL. Defaults to AssemblyAI's streaming endpoint. api_endpoint_base_url: WebSocket endpoint URL. Defaults to AssemblyAI's streaming endpoint.
sample_rate: Audio sample rate in Hz. Defaults to 16000. sample_rate: Audio sample rate in Hz. Defaults to 16000.
@@ -162,7 +162,7 @@ class AssemblyAISTTService(WebsocketSTTService):
connection_params: Connection configuration parameters. connection_params: Connection configuration parameters.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AssemblyAISTTSettings(...)`` instead. Use ``settings=AssemblyAISTTService.Settings(...)`` instead.
vad_force_turn_endpoint: Controls turn detection mode. vad_force_turn_endpoint: Controls turn detection mode.
When True (Pipecat mode, default): Forces AssemblyAI to return finals ASAP When True (Pipecat mode, default): Forces AssemblyAI to return finals ASAP
@@ -190,7 +190,7 @@ class AssemblyAISTTService(WebsocketSTTService):
**kwargs: Additional arguments passed to parent STTService class. **kwargs: Additional arguments passed to parent STTService class.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AssemblyAISTTSettings( default_settings = self.Settings(
model="u3-rt-pro", model="u3-rt-pro",
language=Language.EN, language=Language.EN,
formatted_finals=True, formatted_finals=True,
@@ -208,12 +208,12 @@ class AssemblyAISTTService(WebsocketSTTService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if language is not None: if language is not None:
_warn_deprecated_param("language", AssemblyAISTTSettings, "language") _warn_deprecated_param("language", self.Settings, "language")
default_settings.language = language default_settings.language = language
# 3. Apply connection_params overrides (deprecated) — only if settings not provided # 3. Apply connection_params overrides (deprecated) — only if settings not provided
if connection_params is not None: if connection_params is not None:
_warn_deprecated_param("connection_params", AssemblyAISTTSettings) _warn_deprecated_param("connection_params", self.Settings)
if not settings: if not settings:
sample_rate = connection_params.sample_rate sample_rate = connection_params.sample_rate
encoding = connection_params.encoding encoding = connection_params.encoding
@@ -299,7 +299,7 @@ class AssemblyAISTTService(WebsocketSTTService):
self._user_speaking = False self._user_speaking = False
def _configure_pipecat_turn_mode(self, settings: AssemblyAISTTSettings, is_u3_pro: bool): def _configure_pipecat_turn_mode(self, settings: Settings, is_u3_pro: bool):
"""Configure settings for Pipecat turn detection mode. """Configure settings for Pipecat turn detection mode.
When vad_force_turn_endpoint is enabled, force AssemblyAI to return When vad_force_turn_endpoint is enabled, force AssemblyAI to return
@@ -353,7 +353,7 @@ class AssemblyAISTTService(WebsocketSTTService):
""" """
return True return True
async def _update_settings(self, delta: AssemblyAISTTSettings) -> dict[str, Any]: async def _update_settings(self, delta: Settings) -> dict[str, Any]:
"""Apply a settings delta and reconnect to apply changes. """Apply a settings delta and reconnect to apply changes.
Args: Args:

View File

@@ -86,13 +86,13 @@ class AsyncAITTSService(WebsocketTTSService):
""" """
Settings = AsyncAITTSSettings Settings = AsyncAITTSSettings
_settings: AsyncAITTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Async TTS configuration. """Input parameters for Async TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``AsyncAITTSSettings`` directly via the ``settings`` parameter instead. Use ``AsyncAITTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
language: Language to use for synthesis. language: Language to use for synthesis.
@@ -112,7 +112,7 @@ class AsyncAITTSService(WebsocketTTSService):
encoding: str = "pcm_s16le", encoding: str = "pcm_s16le",
container: str = "raw", container: str = "raw",
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[AsyncAITTSSettings] = None, settings: Optional[Settings] = None,
aggregate_sentences: Optional[bool] = None, aggregate_sentences: Optional[bool] = None,
text_aggregation_mode: Optional[TextAggregationMode] = None, text_aggregation_mode: Optional[TextAggregationMode] = None,
**kwargs, **kwargs,
@@ -125,14 +125,14 @@ class AsyncAITTSService(WebsocketTTSService):
https://docs.async.com/list-voices-16699698e0 https://docs.async.com/list-voices-16699698e0
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AsyncAITTSSettings(voice=...)`` instead. Use ``settings=AsyncAITTSService.Settings(voice=...)`` instead.
version: Async API version. version: Async API version.
url: WebSocket URL for Async TTS API. url: WebSocket URL for Async TTS API.
model: TTS model to use (e.g., "async_flash_v1.0"). model: TTS model to use (e.g., "async_flash_v1.0").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AsyncAITTSSettings(model=...)`` instead. Use ``settings=AsyncAITTSService.Settings(model=...)`` instead.
sample_rate: Audio sample rate. sample_rate: Audio sample rate.
encoding: Audio encoding format. encoding: Audio encoding format.
@@ -140,7 +140,7 @@ class AsyncAITTSService(WebsocketTTSService):
params: Additional input parameters for voice customization. params: Additional input parameters for voice customization.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AsyncAITTSSettings(...)`` instead. Use ``settings=AsyncAITTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -153,7 +153,7 @@ class AsyncAITTSService(WebsocketTTSService):
**kwargs: Additional arguments passed to the parent service. **kwargs: Additional arguments passed to the parent service.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AsyncAITTSSettings( default_settings = self.Settings(
model="async_flash_v1.0", model="async_flash_v1.0",
voice=None, voice=None,
language=None, language=None,
@@ -161,15 +161,15 @@ class AsyncAITTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", AsyncAITTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if model is not None: if model is not None:
_warn_deprecated_param("model", AsyncAITTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", AsyncAITTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = ( default_settings.language = (
self.language_to_service_language(params.language) if params.language else None self.language_to_service_language(params.language) if params.language else None
@@ -487,13 +487,13 @@ class AsyncAIHttpTTSService(TTSService):
""" """
Settings = AsyncAITTSSettings Settings = AsyncAITTSSettings
_settings: AsyncAITTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Async API. """Input parameters for Async API.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``AsyncAITTSSettings`` directly via the ``settings`` parameter instead. Use ``AsyncAIHttpTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
language: Language to use for synthesis. language: Language to use for synthesis.
@@ -514,7 +514,7 @@ class AsyncAIHttpTTSService(TTSService):
encoding: str = "pcm_s16le", encoding: str = "pcm_s16le",
container: str = "raw", container: str = "raw",
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[AsyncAITTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Async TTS service. """Initialize the Async TTS service.
@@ -524,13 +524,13 @@ class AsyncAIHttpTTSService(TTSService):
voice_id: ID of the voice to use for synthesis. voice_id: ID of the voice to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AsyncAITTSSettings(voice=...)`` instead. Use ``settings=AsyncAIHttpTTSService.Settings(voice=...)`` instead.
aiohttp_session: An aiohttp session for making HTTP requests. aiohttp_session: An aiohttp session for making HTTP requests.
model: TTS model to use (e.g., "async_flash_v1.0"). model: TTS model to use (e.g., "async_flash_v1.0").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AsyncAITTSSettings(model=...)`` instead. Use ``settings=AsyncAIHttpTTSService.Settings(model=...)`` instead.
url: Base URL for Async API. url: Base URL for Async API.
version: API version string for Async API. version: API version string for Async API.
@@ -540,14 +540,14 @@ class AsyncAIHttpTTSService(TTSService):
params: Additional input parameters for voice customization. params: Additional input parameters for voice customization.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AsyncAITTSSettings(...)`` instead. Use ``settings=AsyncAIHttpTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to the parent TTSService. **kwargs: Additional arguments passed to the parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AsyncAITTSSettings( default_settings = self.Settings(
model="async_flash_v1.0", model="async_flash_v1.0",
voice=None, voice=None,
language=None, language=None,
@@ -555,15 +555,15 @@ class AsyncAIHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", AsyncAITTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if model is not None: if model is not None:
_warn_deprecated_param("model", AsyncAITTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", AsyncAITTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = ( default_settings.language = (
self.language_to_service_language(params.language) if params.language else None self.language_to_service_language(params.language) if params.language else None

View File

@@ -747,7 +747,7 @@ class AWSBedrockLLMService(LLMService):
""" """
Settings = AWSBedrockLLMSettings Settings = AWSBedrockLLMSettings
_settings: AWSBedrockLLMSettings _settings: Settings
# Overriding the default adapter to use the Anthropic one. # Overriding the default adapter to use the Anthropic one.
adapter_class = AWSBedrockLLMAdapter adapter_class = AWSBedrockLLMAdapter
@@ -756,7 +756,7 @@ class AWSBedrockLLMService(LLMService):
"""Input parameters for AWS Bedrock LLM service. """Input parameters for AWS Bedrock LLM service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``AWSBedrockLLMSettings`` instead. Pass settings directly via the Use ``AWSBedrockLLMService.Settings`` instead. Pass settings directly via the
``settings`` parameter of :class:`AWSBedrockLLMService`. ``settings`` parameter of :class:`AWSBedrockLLMService`.
Parameters: Parameters:
@@ -784,7 +784,7 @@ class AWSBedrockLLMService(LLMService):
aws_session_token: Optional[str] = None, aws_session_token: Optional[str] = None,
aws_region: Optional[str] = None, aws_region: Optional[str] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[AWSBedrockLLMSettings] = None, settings: Optional[Settings] = None,
stop_sequences: Optional[List[str]] = None, stop_sequences: Optional[List[str]] = None,
client_config: Optional[Config] = None, client_config: Optional[Config] = None,
retry_timeout_secs: Optional[float] = 5.0, retry_timeout_secs: Optional[float] = 5.0,
@@ -797,7 +797,7 @@ class AWSBedrockLLMService(LLMService):
model: The AWS Bedrock model identifier to use. model: The AWS Bedrock model identifier to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AWSBedrockLLMSettings(model=...)`` instead. Use ``settings=AWSBedrockLLMService.Settings(model=...)`` instead.
aws_access_key: AWS access key ID. If None, uses default credentials. aws_access_key: AWS access key ID. If None, uses default credentials.
aws_secret_key: AWS secret access key. If None, uses default credentials. aws_secret_key: AWS secret access key. If None, uses default credentials.
@@ -806,7 +806,7 @@ class AWSBedrockLLMService(LLMService):
params: Model parameters and configuration. params: Model parameters and configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AWSBedrockLLMSettings(...)`` instead. Use ``settings=AWSBedrockLLMService.Settings(...)`` instead.
settings: Runtime-updatable settings for this service. When both settings: Runtime-updatable settings for this service. When both
deprecated parameters and *settings* are provided, *settings* deprecated parameters and *settings* are provided, *settings*
@@ -814,7 +814,7 @@ class AWSBedrockLLMService(LLMService):
stop_sequences: List of strings that stop generation. stop_sequences: List of strings that stop generation.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AWSBedrockLLMSettings(stop_sequences=...)`` instead. Use ``settings=AWSBedrockLLMService.Settings(stop_sequences=...)`` instead.
client_config: Custom boto3 client configuration. client_config: Custom boto3 client configuration.
retry_timeout_secs: Request timeout in seconds for retry logic. retry_timeout_secs: Request timeout in seconds for retry logic.
@@ -822,7 +822,7 @@ class AWSBedrockLLMService(LLMService):
**kwargs: Additional arguments passed to parent LLMService. **kwargs: Additional arguments passed to parent LLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AWSBedrockLLMSettings( default_settings = self.Settings(
model="us.amazon.nova-lite-v1:0", model="us.amazon.nova-lite-v1:0",
system_instruction=None, system_instruction=None,
max_tokens=None, max_tokens=None,
@@ -841,15 +841,15 @@ class AWSBedrockLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", AWSBedrockLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if stop_sequences is not None: if stop_sequences is not None:
_warn_deprecated_param("stop_sequences", AWSBedrockLLMSettings, "stop_sequences") _warn_deprecated_param("stop_sequences", self.Settings, "stop_sequences")
default_settings.stop_sequences = stop_sequences default_settings.stop_sequences = stop_sequences
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", AWSBedrockLLMSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.max_tokens = params.max_tokens default_settings.max_tokens = params.max_tokens
default_settings.temperature = params.temperature default_settings.temperature = params.temperature

View File

@@ -150,7 +150,7 @@ class Params(BaseModel):
"""Configuration parameters for AWS Nova Sonic. """Configuration parameters for AWS Nova Sonic.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AWSNovaSonicLLMSettings(...)`` for inference settings Use ``settings=AWSNovaSonicLLMService.Settings(...)`` for inference settings
and ``audio_config=AudioConfig(...)`` for audio configuration. and ``audio_config=AudioConfig(...)`` for audio configuration.
Parameters: Parameters:
@@ -247,7 +247,7 @@ class AWSNovaSonicLLMService(LLMService):
""" """
Settings = AWSNovaSonicLLMSettings Settings = AWSNovaSonicLLMSettings
_settings: AWSNovaSonicLLMSettings _settings: Settings
# Override the default adapter to use the AWSNovaSonicLLMAdapter one # Override the default adapter to use the AWSNovaSonicLLMAdapter one
adapter_class = AWSNovaSonicLLMAdapter adapter_class = AWSNovaSonicLLMAdapter
@@ -263,7 +263,7 @@ class AWSNovaSonicLLMService(LLMService):
voice_id: str = "matthew", voice_id: str = "matthew",
params: Optional[Params] = None, params: Optional[Params] = None,
audio_config: Optional[AudioConfig] = None, audio_config: Optional[AudioConfig] = None,
settings: Optional[AWSNovaSonicLLMSettings] = None, settings: Optional[Settings] = None,
system_instruction: Optional[str] = None, system_instruction: Optional[str] = None,
tools: Optional[ToolsSchema] = None, tools: Optional[ToolsSchema] = None,
send_transcription_frames: bool = True, send_transcription_frames: bool = True,
@@ -282,7 +282,7 @@ class AWSNovaSonicLLMService(LLMService):
model: Model identifier. Defaults to "amazon.nova-2-sonic-v1:0". model: Model identifier. Defaults to "amazon.nova-2-sonic-v1:0".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AWSNovaSonicLLMSettings(model=...)`` instead. Use ``settings=AWSNovaSonicLLMService.Settings(model=...)`` instead.
voice_id: Voice ID for speech synthesis. voice_id: Voice ID for speech synthesis.
Note that some voices are designed for use with a specific language. Note that some voices are designed for use with a specific language.
@@ -291,12 +291,12 @@ class AWSNovaSonicLLMService(LLMService):
- Nova Sonic (the older model): see https://docs.aws.amazon.com/nova/latest/userguide/available-voices.html. - Nova Sonic (the older model): see https://docs.aws.amazon.com/nova/latest/userguide/available-voices.html.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AWSNovaSonicLLMSettings(voice=...)`` instead. Use ``settings=AWSNovaSonicLLMService.Settings(voice=...)`` instead.
params: Model parameters for audio configuration and inference. params: Model parameters for audio configuration and inference.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AWSNovaSonicLLMSettings(...)`` for inference Use ``settings=AWSNovaSonicLLMService.Settings(...)`` for inference
settings and ``audio_config=AudioConfig(...)`` for audio settings and ``audio_config=AudioConfig(...)`` for audio
configuration. configuration.
@@ -308,7 +308,7 @@ class AWSNovaSonicLLMService(LLMService):
system_instruction: System-level instruction for the model. system_instruction: System-level instruction for the model.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AWSNovaSonicLLMSettings(system_instruction=...)`` instead. Use ``settings=AWSNovaSonicLLMService.Settings(system_instruction=...)`` instead.
tools: Available tools/functions for the model to use. tools: Available tools/functions for the model to use.
send_transcription_frames: Whether to emit transcription frames. send_transcription_frames: Whether to emit transcription frames.
@@ -319,7 +319,7 @@ class AWSNovaSonicLLMService(LLMService):
**kwargs: Additional arguments passed to the parent LLMService. **kwargs: Additional arguments passed to the parent LLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AWSNovaSonicLLMSettings( default_settings = self.Settings(
model="amazon.nova-2-sonic-v1:0", model="amazon.nova-2-sonic-v1:0",
system_instruction=None, system_instruction=None,
voice="matthew", voice="matthew",
@@ -337,15 +337,13 @@ class AWSNovaSonicLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model != "amazon.nova-2-sonic-v1:0": if model != "amazon.nova-2-sonic-v1:0":
_warn_deprecated_param("model", AWSNovaSonicLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if voice_id != "matthew": if voice_id != "matthew":
_warn_deprecated_param("voice_id", AWSNovaSonicLLMSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if system_instruction is not None: if system_instruction is not None:
_warn_deprecated_param( _warn_deprecated_param("system_instruction", self.Settings, "system_instruction")
"system_instruction", AWSNovaSonicLLMSettings, "system_instruction"
)
default_settings.system_instruction = system_instruction default_settings.system_instruction = system_instruction
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
@@ -356,7 +354,7 @@ class AWSNovaSonicLLMService(LLMService):
warnings.simplefilter("always") warnings.simplefilter("always")
warnings.warn( warnings.warn(
"The `params` parameter is deprecated. " "The `params` parameter is deprecated. "
"Use `settings=AWSNovaSonicLLMSettings(...)` for inference settings " "Use `settings=self.Settings(...)` for inference settings "
"(temperature, max_tokens, top_p, endpointing_sensitivity) " "(temperature, max_tokens, top_p, endpointing_sensitivity) "
"and `audio_config=AudioConfig(...)` for audio configuration " "and `audio_config=AudioConfig(...)` for audio configuration "
"(sample rates, sample sizes, channel counts).", "(sample rates, sample sizes, channel counts).",
@@ -447,7 +445,7 @@ class AWSNovaSonicLLMService(LLMService):
# settings # settings
# #
async def _update_settings(self, delta: AWSNovaSonicLLMSettings) -> dict[str, Any]: async def _update_settings(self, delta: Settings) -> dict[str, Any]:
"""Apply a settings delta. """Apply a settings delta.
Settings are stored but not applied to the active connection. Settings are stored but not applied to the active connection.

View File

@@ -61,7 +61,7 @@ class AWSTranscribeSTTService(WebsocketSTTService):
""" """
Settings = AWSTranscribeSTTSettings Settings = AWSTranscribeSTTSettings
_settings: AWSTranscribeSTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -72,7 +72,7 @@ class AWSTranscribeSTTService(WebsocketSTTService):
region: Optional[str] = None, region: Optional[str] = None,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
language: Optional[Language] = None, language: Optional[Language] = None,
settings: Optional[AWSTranscribeSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = AWS_TRANSCRIBE_TTFS_P99, ttfs_p99_latency: Optional[float] = AWS_TRANSCRIBE_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -89,7 +89,7 @@ class AWSTranscribeSTTService(WebsocketSTTService):
language: Language for transcription. language: Language for transcription.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AWSTranscribeSTTSettings(language=...)`` instead. Use ``settings=AWSTranscribeSTTService.Settings(language=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -98,14 +98,14 @@ class AWSTranscribeSTTService(WebsocketSTTService):
**kwargs: Additional arguments passed to parent STTService class. **kwargs: Additional arguments passed to parent STTService class.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AWSTranscribeSTTSettings( default_settings = self.Settings(
model=None, model=None,
language=self.language_to_service_language(Language.EN), language=self.language_to_service_language(Language.EN),
) )
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if language is not None: if language is not None:
_warn_deprecated_param("language", AWSTranscribeSTTSettings, "language") _warn_deprecated_param("language", self.Settings, "language")
default_settings.language = self.language_to_service_language(language) default_settings.language = self.language_to_service_language(language)
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -149,13 +149,13 @@ class AWSPollyTTSService(TTSService):
""" """
Settings = AWSPollyTTSSettings Settings = AWSPollyTTSSettings
_settings: AWSPollyTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for AWS Polly TTS configuration. """Input parameters for AWS Polly TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``AWSPollyTTSSettings`` directly via the ``settings`` parameter instead. Use ``AWSPollyTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
engine: TTS engine to use ('standard', 'neural', etc.). engine: TTS engine to use ('standard', 'neural', etc.).
@@ -183,7 +183,7 @@ class AWSPollyTTSService(TTSService):
voice_id: Optional[str] = None, voice_id: Optional[str] = None,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[AWSPollyTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initializes the AWS Polly TTS service. """Initializes the AWS Polly TTS service.
@@ -196,20 +196,20 @@ class AWSPollyTTSService(TTSService):
voice_id: Voice ID to use for synthesis. Defaults to 'Joanna'. voice_id: Voice ID to use for synthesis. Defaults to 'Joanna'.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AWSPollyTTSSettings(voice=...)`` instead. Use ``settings=AWSPollyTTSService.Settings(voice=...)`` instead.
sample_rate: Audio sample rate. If None, uses service default. sample_rate: Audio sample rate. If None, uses service default.
params: Additional input parameters for voice customization. params: Additional input parameters for voice customization.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AWSPollyTTSSettings(...)`` instead. Use ``settings=AWSPollyTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to parent TTSService class. **kwargs: Additional arguments passed to parent TTSService class.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AWSPollyTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice="Joanna", voice="Joanna",
language="en-US", language="en-US",
@@ -222,12 +222,12 @@ class AWSPollyTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", AWSPollyTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", AWSPollyTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.engine = params.engine default_settings.engine = params.engine
default_settings.language = ( default_settings.language = (

View File

@@ -44,7 +44,7 @@ class AzureImageGenServiceREST(ImageGenService):
""" """
Settings = AzureImageGenSettings Settings = AzureImageGenSettings
_settings: AzureImageGenSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -55,7 +55,7 @@ class AzureImageGenServiceREST(ImageGenService):
model: Optional[str] = None, model: Optional[str] = None,
aiohttp_session: aiohttp.ClientSession, aiohttp_session: aiohttp.ClientSession,
api_version="2023-06-01-preview", api_version="2023-06-01-preview",
settings: Optional[AzureImageGenSettings] = None, settings: Optional[Settings] = None,
): ):
"""Initialize the AzureImageGenServiceREST. """Initialize the AzureImageGenServiceREST.
@@ -63,14 +63,14 @@ class AzureImageGenServiceREST(ImageGenService):
image_size: Size specification for generated images (e.g., "1024x1024"). image_size: Size specification for generated images (e.g., "1024x1024").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AzureImageGenSettings(image_size=...)`` instead. Use ``settings=AzureImageGenServiceREST.Settings(image_size=...)`` instead.
api_key: Azure OpenAI API key for authentication. api_key: Azure OpenAI API key for authentication.
endpoint: Azure OpenAI endpoint URL. endpoint: Azure OpenAI endpoint URL.
model: The image generation model to use. model: The image generation model to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AzureImageGenSettings(model=...)`` instead. Use ``settings=AzureImageGenServiceREST.Settings(model=...)`` instead.
aiohttp_session: Shared aiohttp session for HTTP requests. aiohttp_session: Shared aiohttp session for HTTP requests.
api_version: Azure API version string. Defaults to "2023-06-01-preview". api_version: Azure API version string. Defaults to "2023-06-01-preview".
@@ -78,18 +78,18 @@ class AzureImageGenServiceREST(ImageGenService):
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AzureImageGenSettings( default_settings = self.Settings(
model=None, model=None,
image_size=None, image_size=None,
) )
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", AzureImageGenSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if image_size is not None: if image_size is not None:
_warn_deprecated_param("image_size", AzureImageGenSettings, "image_size") _warn_deprecated_param("image_size", self.Settings, "image_size")
default_settings.image_size = image_size default_settings.image_size = image_size
# 4. Apply settings delta (canonical API, always wins) # 4. Apply settings delta (canonical API, always wins)

View File

@@ -12,13 +12,13 @@ from typing import Optional
from loguru import logger from loguru import logger
from openai import AsyncAzureOpenAI from openai import AsyncAzureOpenAI
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class AzureLLMSettings(OpenAILLMSettings): class AzureLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for AzureLLMService.""" """Settings for AzureLLMService."""
pass pass
@@ -40,7 +40,7 @@ class AzureLLMService(OpenAILLMService):
endpoint: str, endpoint: str,
model: Optional[str] = None, model: Optional[str] = None,
api_version: str = "2024-09-01-preview", api_version: str = "2024-09-01-preview",
settings: Optional[AzureLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Azure LLM service. """Initialize the Azure LLM service.
@@ -51,7 +51,7 @@ class AzureLLMService(OpenAILLMService):
model: The model identifier to use. Defaults to "gpt-4o". model: The model identifier to use. Defaults to "gpt-4o".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=AzureLLMService.Settings(model=...)`` instead.
api_version: Azure API version. Defaults to "2024-09-01-preview". api_version: Azure API version. Defaults to "2024-09-01-preview".
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -59,11 +59,11 @@ class AzureLLMService(OpenAILLMService):
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AzureLLMSettings(model="gpt-4o") default_settings = self.Settings(model="gpt-4o")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", AzureLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -10,7 +10,7 @@ from dataclasses import dataclass
from loguru import logger from loguru import logger
from pipecat.services.openai.realtime.llm import OpenAIRealtimeLLMService, OpenAIRealtimeLLMSettings from pipecat.services.openai.realtime.llm import OpenAIRealtimeLLMService
try: try:
from websockets.asyncio.client import connect as websocket_connect from websockets.asyncio.client import connect as websocket_connect
@@ -21,7 +21,7 @@ except ModuleNotFoundError as e:
@dataclass @dataclass
class AzureRealtimeLLMSettings(OpenAIRealtimeLLMSettings): class AzureRealtimeLLMSettings(OpenAIRealtimeLLMService.Settings):
"""Settings for AzureRealtimeLLMService.""" """Settings for AzureRealtimeLLMService."""
pass pass
@@ -36,7 +36,7 @@ class AzureRealtimeLLMService(OpenAIRealtimeLLMService):
""" """
Settings = AzureRealtimeLLMSettings Settings = AzureRealtimeLLMSettings
_settings: AzureRealtimeLLMSettings _settings: Settings
def __init__( def __init__(
self, self,

View File

@@ -67,7 +67,7 @@ class AzureSTTService(STTService):
""" """
Settings = AzureSTTSettings Settings = AzureSTTSettings
_settings: AzureSTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -78,7 +78,7 @@ class AzureSTTService(STTService):
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
private_endpoint: Optional[str] = None, private_endpoint: Optional[str] = None,
endpoint_id: Optional[str] = None, endpoint_id: Optional[str] = None,
settings: Optional[AzureSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = AZURE_TTFS_P99, ttfs_p99_latency: Optional[float] = AZURE_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -91,7 +91,7 @@ class AzureSTTService(STTService):
language: Language for speech recognition. Defaults to English (US). language: Language for speech recognition. Defaults to English (US).
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AzureSTTSettings(language=...)`` instead. Use ``settings=AzureSTTService.Settings(language=...)`` instead.
sample_rate: Audio sample rate in Hz. If None, uses service default. sample_rate: Audio sample rate in Hz. If None, uses service default.
private_endpoint: Private endpoint for STT behind firewall. private_endpoint: Private endpoint for STT behind firewall.
@@ -104,14 +104,14 @@ class AzureSTTService(STTService):
**kwargs: Additional arguments passed to parent STTService. **kwargs: Additional arguments passed to parent STTService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AzureSTTSettings( default_settings = self.Settings(
model=None, model=None,
language=language_to_azure_language(Language.EN_US), language=language_to_azure_language(Language.EN_US),
) )
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if language is not None and language != Language.EN_US: if language is not None and language != Language.EN_US:
_warn_deprecated_param("language", AzureSTTSettings, "language") _warn_deprecated_param("language", self.Settings, "language")
default_settings.language = language_to_azure_language(language) default_settings.language = language_to_azure_language(language)
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -97,7 +97,8 @@ class AzureBaseTTSService:
This is a mixin class and should be used alongside TTSService or its subclasses. This is a mixin class and should be used alongside TTSService or its subclasses.
""" """
_settings: AzureTTSSettings Settings = AzureTTSSettings
_settings: Settings
# Define SSML escape mappings based on SSML reserved characters # Define SSML escape mappings based on SSML reserved characters
# See - https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-synthesis-markup-structure # See - https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-synthesis-markup-structure
@@ -113,7 +114,7 @@ class AzureBaseTTSService:
"""Input parameters for Azure TTS voice configuration. """Input parameters for Azure TTS voice configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AzureTTSSettings(...)`` instead. Use ``settings=AzureBaseTTSService.Settings(...)`` instead.
Parameters: Parameters:
emphasis: Emphasis level for speech ("strong", "moderate", "reduced"). emphasis: Emphasis level for speech ("strong", "moderate", "reduced").
@@ -256,7 +257,7 @@ class AzureTTSService(TTSService, AzureBaseTTSService):
voice: Optional[str] = None, voice: Optional[str] = None,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[AzureBaseTTSService.InputParams] = None, params: Optional[AzureBaseTTSService.InputParams] = None,
settings: Optional[AzureTTSSettings] = None, settings: Optional[Settings] = None,
aggregate_sentences: Optional[bool] = None, aggregate_sentences: Optional[bool] = None,
text_aggregation_mode: Optional[TextAggregationMode] = None, text_aggregation_mode: Optional[TextAggregationMode] = None,
**kwargs, **kwargs,
@@ -269,13 +270,13 @@ class AzureTTSService(TTSService, AzureBaseTTSService):
voice: Voice name to use for synthesis. voice: Voice name to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AzureTTSSettings(voice=...)`` instead. Use ``settings=AzureTTSService.Settings(voice=...)`` instead.
sample_rate: Audio sample rate in Hz. If None, uses service default. sample_rate: Audio sample rate in Hz. If None, uses service default.
params: Voice and synthesis parameters configuration. params: Voice and synthesis parameters configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AzureTTSSettings(...)`` instead. Use ``settings=AzureTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -288,7 +289,7 @@ class AzureTTSService(TTSService, AzureBaseTTSService):
**kwargs: Additional arguments passed to parent WordTTSService. **kwargs: Additional arguments passed to parent WordTTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AzureTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice="en-US-SaraNeural", voice="en-US-SaraNeural",
language="en-US", language="en-US",
@@ -303,12 +304,12 @@ class AzureTTSService(TTSService, AzureBaseTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice is not None: if voice is not None:
_warn_deprecated_param("voice", AzureTTSSettings, "voice") _warn_deprecated_param("voice", self.Settings, "voice")
default_settings.voice = voice default_settings.voice = voice
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", AzureTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.emphasis = params.emphasis default_settings.emphasis = params.emphasis
default_settings.language = ( default_settings.language = (
@@ -761,7 +762,7 @@ class AzureHttpTTSService(TTSService, AzureBaseTTSService):
voice: Optional[str] = None, voice: Optional[str] = None,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[AzureBaseTTSService.InputParams] = None, params: Optional[AzureBaseTTSService.InputParams] = None,
settings: Optional[AzureTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Azure HTTP TTS service. """Initialize the Azure HTTP TTS service.
@@ -772,20 +773,20 @@ class AzureHttpTTSService(TTSService, AzureBaseTTSService):
voice: Voice name to use for synthesis. voice: Voice name to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AzureTTSSettings(voice=...)`` instead. Use ``settings=AzureHttpTTSService.Settings(voice=...)`` instead.
sample_rate: Audio sample rate in Hz. If None, uses service default. sample_rate: Audio sample rate in Hz. If None, uses service default.
params: Voice and synthesis parameters configuration. params: Voice and synthesis parameters configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=AzureTTSSettings(...)`` instead. Use ``settings=AzureHttpTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to parent TTSService. **kwargs: Additional arguments passed to parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = AzureTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice="en-US-SaraNeural", voice="en-US-SaraNeural",
language="en-US", language="en-US",
@@ -800,12 +801,12 @@ class AzureHttpTTSService(TTSService, AzureBaseTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice is not None: if voice is not None:
_warn_deprecated_param("voice", AzureTTSSettings, "voice") _warn_deprecated_param("voice", self.Settings, "voice")
default_settings.voice = voice default_settings.voice = voice
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", AzureTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.emphasis = params.emphasis default_settings.emphasis = params.emphasis
default_settings.language = ( default_settings.language = (

View File

@@ -176,13 +176,13 @@ class CambTTSService(TTSService):
""" """
Settings = CambTTSSettings Settings = CambTTSSettings
_settings: CambTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Camb.ai TTS configuration. """Input parameters for Camb.ai TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=CambTTSSettings(...)`` instead. Use ``settings=CambTTSService.Settings(...)`` instead.
Parameters: Parameters:
language: Language for synthesis (BCP-47 format). Defaults to English. language: Language for synthesis (BCP-47 format). Defaults to English.
@@ -207,7 +207,7 @@ class CambTTSService(TTSService):
timeout: float = 60.0, timeout: float = 60.0,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[CambTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Camb.ai TTS service. """Initialize the Camb.ai TTS service.
@@ -217,12 +217,12 @@ class CambTTSService(TTSService):
voice_id: Voice ID to use. voice_id: Voice ID to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=CambTTSSettings(voice=...)`` instead. Use ``settings=CambTTSService.Settings(voice=...)`` instead.
model: TTS model to use. Options: "mars-flash" (fast), "mars-pro" (high quality). model: TTS model to use. Options: "mars-flash" (fast), "mars-pro" (high quality).
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=CambTTSSettings(model=...)`` instead. Use ``settings=CambTTSService.Settings(model=...)`` instead.
timeout: Request timeout in seconds. Defaults to 60.0 (minimum recommended timeout: Request timeout in seconds. Defaults to 60.0 (minimum recommended
by Camb.ai). by Camb.ai).
@@ -230,14 +230,14 @@ class CambTTSService(TTSService):
params: Additional voice parameters. If None, uses defaults. params: Additional voice parameters. If None, uses defaults.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=CambTTSSettings(...)`` instead. Use ``settings=CambTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to parent TTSService. **kwargs: Additional arguments passed to parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = CambTTSSettings( default_settings = self.Settings(
model="mars-flash", model="mars-flash",
voice=147320, voice=147320,
language="en-us", language="en-us",
@@ -246,15 +246,15 @@ class CambTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", CambTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", CambTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", CambTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = ( default_settings.language = (

View File

@@ -55,7 +55,7 @@ class CartesiaLiveOptions:
"""Configuration options for Cartesia Live STT service. """Configuration options for Cartesia Live STT service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=CartesiaSTTSettings(...)`` for model/language and Use ``settings=CartesiaSTTService.Settings(...)`` for model/language and
direct ``__init__`` parameters for encoding/sample_rate instead. direct ``__init__`` parameters for encoding/sample_rate instead.
""" """
@@ -147,7 +147,7 @@ class CartesiaSTTService(WebsocketSTTService):
""" """
Settings = CartesiaSTTSettings Settings = CartesiaSTTSettings
_settings: CartesiaSTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -157,7 +157,7 @@ class CartesiaSTTService(WebsocketSTTService):
encoding: str = "pcm_s16le", encoding: str = "pcm_s16le",
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
live_options: Optional[CartesiaLiveOptions] = None, live_options: Optional[CartesiaLiveOptions] = None,
settings: Optional[CartesiaSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = CARTESIA_TTFS_P99, ttfs_p99_latency: Optional[float] = CARTESIA_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -172,7 +172,7 @@ class CartesiaSTTService(WebsocketSTTService):
live_options: Configuration options for transcription service. live_options: Configuration options for transcription service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=CartesiaSTTSettings(...)`` for model/language Use ``settings=CartesiaSTTService.Settings(...)`` for model/language
and direct init parameters for encoding/sample_rate instead. and direct init parameters for encoding/sample_rate instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -182,14 +182,14 @@ class CartesiaSTTService(WebsocketSTTService):
**kwargs: Additional arguments passed to parent STTService. **kwargs: Additional arguments passed to parent STTService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = CartesiaSTTSettings( default_settings = self.Settings(
model="ink-whisper", model="ink-whisper",
language=Language.EN.value, language=Language.EN.value,
) )
# 2. Apply live_options overrides — only if settings not provided # 2. Apply live_options overrides — only if settings not provided
if live_options is not None: if live_options is not None:
_warn_deprecated_param("live_options", CartesiaSTTSettings) _warn_deprecated_param("live_options", self.Settings)
if not settings: if not settings:
if live_options.sample_rate and sample_rate is None: if live_options.sample_rate and sample_rate is None:
sample_rate = live_options.sample_rate sample_rate = live_options.sample_rate
@@ -313,7 +313,7 @@ class CartesiaSTTService(WebsocketSTTService):
"""Apply a settings delta. """Apply a settings delta.
Args: Args:
delta: A :class:`STTSettings` (or ``CartesiaSTTSettings``) delta. delta: A :class:`STTSettings` (or ``CartesiaSTTService.Settings``) delta.
Returns: Returns:
Dict mapping changed field names to their previous values. Dict mapping changed field names to their previous values.

View File

@@ -211,7 +211,7 @@ class CartesiaTTSService(WebsocketTTSService):
""" """
Settings = CartesiaTTSSettings Settings = CartesiaTTSSettings
_settings: CartesiaTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Cartesia TTS configuration. """Input parameters for Cartesia TTS configuration.
@@ -239,7 +239,7 @@ class CartesiaTTSService(WebsocketTTSService):
encoding: str = "pcm_s16le", encoding: str = "pcm_s16le",
container: str = "raw", container: str = "raw",
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[CartesiaTTSSettings] = None, settings: Optional[Settings] = None,
text_aggregator: Optional[BaseTextAggregator] = None, text_aggregator: Optional[BaseTextAggregator] = None,
text_aggregation_mode: Optional[TextAggregationMode] = None, text_aggregation_mode: Optional[TextAggregationMode] = None,
aggregate_sentences: Optional[bool] = None, aggregate_sentences: Optional[bool] = None,
@@ -252,14 +252,14 @@ class CartesiaTTSService(WebsocketTTSService):
voice_id: ID of the voice to use for synthesis. voice_id: ID of the voice to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=CartesiaTTSSettings(voice=...)`` instead. Use ``settings=CartesiaTTSService.Settings(voice=...)`` instead.
cartesia_version: API version string for Cartesia service. cartesia_version: API version string for Cartesia service.
url: WebSocket URL for Cartesia TTS API. url: WebSocket URL for Cartesia TTS API.
model: TTS model to use (e.g., "sonic-3"). model: TTS model to use (e.g., "sonic-3").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=CartesiaTTSSettings(model=...)`` instead. Use ``settings=CartesiaTTSService.Settings(model=...)`` instead.
sample_rate: Audio sample rate. If None, uses default. sample_rate: Audio sample rate. If None, uses default.
encoding: Audio encoding format. encoding: Audio encoding format.
@@ -267,7 +267,7 @@ class CartesiaTTSService(WebsocketTTSService):
params: Additional input parameters for voice customization. params: Additional input parameters for voice customization.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=CartesiaTTSSettings(...)`` instead. Use ``settings=CartesiaTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -299,7 +299,7 @@ class CartesiaTTSService(WebsocketTTSService):
# playout timing of the audio! # playout timing of the audio!
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = CartesiaTTSSettings( default_settings = self.Settings(
model="sonic-3", model="sonic-3",
voice=None, voice=None,
language=language_to_cartesia_language(Language.EN), language=language_to_cartesia_language(Language.EN),
@@ -309,15 +309,15 @@ class CartesiaTTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", CartesiaTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if model is not None: if model is not None:
_warn_deprecated_param("model", CartesiaTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", CartesiaTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = self.language_to_service_language(params.language) default_settings.language = self.language_to_service_language(params.language)
@@ -683,7 +683,7 @@ class CartesiaHttpTTSService(TTSService):
""" """
Settings = CartesiaTTSSettings Settings = CartesiaTTSSettings
_settings: CartesiaTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Cartesia HTTP TTS configuration. """Input parameters for Cartesia HTTP TTS configuration.
@@ -712,7 +712,7 @@ class CartesiaHttpTTSService(TTSService):
encoding: str = "pcm_s16le", encoding: str = "pcm_s16le",
container: str = "raw", container: str = "raw",
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[CartesiaTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Cartesia HTTP TTS service. """Initialize the Cartesia HTTP TTS service.
@@ -722,12 +722,12 @@ class CartesiaHttpTTSService(TTSService):
voice_id: ID of the voice to use for synthesis. voice_id: ID of the voice to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=CartesiaTTSSettings(voice=...)`` instead. Use ``settings=CartesiaHttpTTSService.Settings(voice=...)`` instead.
model: TTS model to use (e.g., "sonic-3"). model: TTS model to use (e.g., "sonic-3").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=CartesiaTTSSettings(model=...)`` instead. Use ``settings=CartesiaHttpTTSService.Settings(model=...)`` instead.
base_url: Base URL for Cartesia HTTP API. base_url: Base URL for Cartesia HTTP API.
cartesia_version: API version string for Cartesia service. cartesia_version: API version string for Cartesia service.
@@ -739,14 +739,14 @@ class CartesiaHttpTTSService(TTSService):
params: Additional input parameters for voice customization. params: Additional input parameters for voice customization.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=CartesiaTTSSettings(...)`` instead. Use ``settings=CartesiaHttpTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to the parent TTSService. **kwargs: Additional arguments passed to the parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = CartesiaTTSSettings( default_settings = self.Settings(
model="sonic-3", model="sonic-3",
voice=None, voice=None,
language=language_to_cartesia_language(Language.EN), language=language_to_cartesia_language(Language.EN),
@@ -756,15 +756,15 @@ class CartesiaHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", CartesiaTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if model is not None: if model is not None:
_warn_deprecated_param("model", CartesiaTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", CartesiaTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = self.language_to_service_language(params.language) default_settings.language = self.language_to_service_language(params.language)

View File

@@ -12,13 +12,13 @@ from typing import Optional
from loguru import logger from loguru import logger
from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class CerebrasLLMSettings(OpenAILLMSettings): class CerebrasLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for CerebrasLLMService.""" """Settings for CerebrasLLMService."""
pass pass
@@ -32,7 +32,7 @@ class CerebrasLLMService(OpenAILLMService):
""" """
Settings = CerebrasLLMSettings Settings = CerebrasLLMSettings
_settings: CerebrasLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -40,7 +40,7 @@ class CerebrasLLMService(OpenAILLMService):
api_key: str, api_key: str,
base_url: str = "https://api.cerebras.ai/v1", base_url: str = "https://api.cerebras.ai/v1",
model: Optional[str] = None, model: Optional[str] = None,
settings: Optional[CerebrasLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Cerebras LLM service. """Initialize the Cerebras LLM service.
@@ -51,18 +51,18 @@ class CerebrasLLMService(OpenAILLMService):
model: The model identifier to use. Defaults to "gpt-oss-120b". model: The model identifier to use. Defaults to "gpt-oss-120b".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=CerebrasLLMService.Settings(model=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = CerebrasLLMSettings(model="gpt-oss-120b") default_settings = self.Settings(model="gpt-oss-120b")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", CerebrasLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -116,14 +116,14 @@ class DeepgramFluxSTTService(WebsocketSTTService):
""" """
Settings = DeepgramFluxSTTSettings Settings = DeepgramFluxSTTSettings
_settings: DeepgramFluxSTTSettings _settings: Settings
_CONFIGURE_FIELDS = {"keyterm", "eot_threshold", "eager_eot_threshold", "eot_timeout_ms"} _CONFIGURE_FIELDS = {"keyterm", "eot_threshold", "eager_eot_threshold", "eot_timeout_ms"}
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for Deepgram Flux API. """Configuration parameters for Deepgram Flux API.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=DeepgramFluxSTTSettings(...)`` instead. Use ``settings=DeepgramFluxSTTService.Settings(...)`` instead.
Parameters: Parameters:
eager_eot_threshold: Optional. EagerEndOfTurn/TurnResumed are off by default. eager_eot_threshold: Optional. EagerEndOfTurn/TurnResumed are off by default.
@@ -162,7 +162,7 @@ class DeepgramFluxSTTService(WebsocketSTTService):
tag: Optional[list] = None, tag: Optional[list] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
should_interrupt: bool = True, should_interrupt: bool = True,
settings: Optional[DeepgramFluxSTTSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Deepgram Flux STT service. """Initialize the Deepgram Flux STT service.
@@ -176,7 +176,7 @@ class DeepgramFluxSTTService(WebsocketSTTService):
model: Deepgram Flux model to use for transcription. model: Deepgram Flux model to use for transcription.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=DeepgramFluxSTTSettings(model=...)`` instead. Use ``settings=DeepgramFluxSTTService.Settings(model=...)`` instead.
flux_encoding: Audio encoding format required by Flux API. Must be "linear16". flux_encoding: Audio encoding format required by Flux API. Must be "linear16".
Raw signed little-endian 16-bit PCM encoding. Raw signed little-endian 16-bit PCM encoding.
@@ -184,7 +184,7 @@ class DeepgramFluxSTTService(WebsocketSTTService):
params: InputParams instance containing detailed API configuration options. params: InputParams instance containing detailed API configuration options.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=DeepgramFluxSTTSettings(...)`` instead. Use ``settings=DeepgramFluxSTTService.Settings(...)`` instead.
should_interrupt: Determine whether the bot should be interrupted when Flux detects that the user is speaking. should_interrupt: Determine whether the bot should be interrupted when Flux detects that the user is speaking.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -200,7 +200,7 @@ class DeepgramFluxSTTService(WebsocketSTTService):
stt = DeepgramFluxSTTService( stt = DeepgramFluxSTTService(
api_key="your-api-key", api_key="your-api-key",
settings=DeepgramFluxSTTSettings( settings=DeepgramFluxSTTService.Settings(
model="flux-general-en", model="flux-general-en",
eager_eot_threshold=0.5, eager_eot_threshold=0.5,
eot_threshold=0.8, eot_threshold=0.8,
@@ -221,7 +221,7 @@ class DeepgramFluxSTTService(WebsocketSTTService):
# already try to reconnect if needed. # already try to reconnect if needed.
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = DeepgramFluxSTTSettings( default_settings = self.Settings(
model="flux-general-en", model="flux-general-en",
language=Language.EN, language=Language.EN,
eager_eot_threshold=None, eager_eot_threshold=None,
@@ -233,12 +233,12 @@ class DeepgramFluxSTTService(WebsocketSTTService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", DeepgramFluxSTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", DeepgramFluxSTTSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.eager_eot_threshold = params.eager_eot_threshold default_settings.eager_eot_threshold = params.eager_eot_threshold
default_settings.eot_threshold = params.eot_threshold default_settings.eot_threshold = params.eot_threshold
@@ -448,7 +448,7 @@ class DeepgramFluxSTTService(WebsocketSTTService):
""" """
return True return True
async def _update_settings(self, delta: DeepgramFluxSTTSettings) -> dict[str, Any]: async def _update_settings(self, delta: Settings) -> dict[str, Any]:
"""Apply a settings delta. """Apply a settings delta.
Configure-able fields (keyterm, eot_threshold, eager_eot_threshold, Configure-able fields (keyterm, eot_threshold, eager_eot_threshold,

View File

@@ -32,7 +32,7 @@ from pipecat.frames.frames import (
) )
from pipecat.processors.frame_processor import FrameDirection from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.aws.sagemaker.bidi_client import SageMakerBidiClient from pipecat.services.aws.sagemaker.bidi_client import SageMakerBidiClient
from pipecat.services.deepgram.stt import DeepgramSTTSettings, LiveOptions from pipecat.services.deepgram.stt import DeepgramSTTService, LiveOptions
from pipecat.services.settings import STTSettings, _warn_deprecated_param, is_given from pipecat.services.settings import STTSettings, _warn_deprecated_param, is_given
from pipecat.services.stt_latency import DEEPGRAM_SAGEMAKER_TTFS_P99 from pipecat.services.stt_latency import DEEPGRAM_SAGEMAKER_TTFS_P99
from pipecat.services.stt_service import STTService from pipecat.services.stt_service import STTService
@@ -42,10 +42,10 @@ from pipecat.utils.tracing.service_decorators import traced_stt
@dataclass @dataclass
class DeepgramSageMakerSTTSettings(DeepgramSTTSettings): class DeepgramSageMakerSTTSettings(DeepgramSTTService.Settings):
"""Settings for the Deepgram SageMaker STT service. """Settings for the Deepgram SageMaker STT service.
Inherits all fields from :class:`DeepgramSTTSettings`. Inherits all fields from :class:`DeepgramSTTService.Settings`.
""" """
pass pass
@@ -79,7 +79,7 @@ class DeepgramSageMakerSTTService(STTService):
""" """
Settings = DeepgramSageMakerSTTSettings Settings = DeepgramSageMakerSTTSettings
_settings: DeepgramSageMakerSTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -92,7 +92,7 @@ class DeepgramSageMakerSTTService(STTService):
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
mip_opt_out: Optional[bool] = None, mip_opt_out: Optional[bool] = None,
live_options: Optional[LiveOptions] = None, live_options: Optional[LiveOptions] = None,
settings: Optional[DeepgramSageMakerSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = DEEPGRAM_SAGEMAKER_TTFS_P99, ttfs_p99_latency: Optional[float] = DEEPGRAM_SAGEMAKER_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -112,7 +112,7 @@ class DeepgramSageMakerSTTService(STTService):
live_options: Legacy configuration options. live_options: Legacy configuration options.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=DeepgramSageMakerSTTSettings(...)`` for Use ``settings=DeepgramSageMakerSTTService.Settings(...)`` for
runtime-updatable fields and direct init parameters for runtime-updatable fields and direct init parameters for
connection-level config. connection-level config.
@@ -124,7 +124,7 @@ class DeepgramSageMakerSTTService(STTService):
**kwargs: Additional arguments passed to the parent STTService. **kwargs: Additional arguments passed to the parent STTService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = DeepgramSageMakerSTTSettings( default_settings = self.Settings(
model="nova-3", model="nova-3",
language=Language.EN, language=Language.EN,
detect_entities=False, detect_entities=False,
@@ -147,7 +147,7 @@ class DeepgramSageMakerSTTService(STTService):
# 2. Apply live_options overrides — only if settings not provided # 2. Apply live_options overrides — only if settings not provided
if live_options is not None: if live_options is not None:
_warn_deprecated_param("live_options", DeepgramSageMakerSTTSettings) _warn_deprecated_param("live_options", self.Settings)
if not settings: if not settings:
# Extract init-only fields from live_options # Extract init-only fields from live_options
if live_options.sample_rate is not None and sample_rate is None: if live_options.sample_rate is not None and sample_rate is None:
@@ -170,7 +170,7 @@ class DeepgramSageMakerSTTService(STTService):
"mip_opt_out", "mip_opt_out",
} }
lo_dict = {k: v for k, v in live_options.to_dict().items() if k not in init_only} lo_dict = {k: v for k, v in live_options.to_dict().items() if k not in init_only}
delta = DeepgramSageMakerSTTSettings.from_mapping(lo_dict) delta = self.Settings.from_mapping(lo_dict)
default_settings.apply_update(delta) default_settings.apply_update(delta)
# 3. Apply settings delta (canonical API, always wins) # 3. Apply settings delta (canonical API, always wins)
@@ -216,7 +216,7 @@ class DeepgramSageMakerSTTService(STTService):
return changed return changed
# Sync extra to fields after the update so self._settings stays unambiguous # Sync extra to fields after the update so self._settings stays unambiguous
if isinstance(self._settings, DeepgramSTTSettings): if isinstance(self._settings, self.Settings):
self._settings._sync_extra_to_fields() self._settings._sync_extra_to_fields()
# TODO: someday we could reconnect here to apply updated settings. # TODO: someday we could reconnect here to apply updated settings.

View File

@@ -70,7 +70,7 @@ class DeepgramSageMakerTTSService(TTSService):
""" """
Settings = DeepgramSageMakerTTSSettings Settings = DeepgramSageMakerTTSSettings
_settings: DeepgramSageMakerTTSSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -80,7 +80,7 @@ class DeepgramSageMakerTTSService(TTSService):
voice: Optional[str] = None, voice: Optional[str] = None,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
encoding: str = "linear16", encoding: str = "linear16",
settings: Optional[DeepgramSageMakerTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Deepgram SageMaker TTS service. """Initialize the Deepgram SageMaker TTS service.
@@ -92,7 +92,7 @@ class DeepgramSageMakerTTSService(TTSService):
voice: Voice model to use for synthesis. Defaults to "aura-2-helena-en". voice: Voice model to use for synthesis. Defaults to "aura-2-helena-en".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=DeepgramSageMakerTTSSettings(voice=...)`` instead. Use ``settings=DeepgramSageMakerTTSService.Settings(voice=...)`` instead.
sample_rate: Audio sample rate in Hz. If None, uses the value from StartFrame. sample_rate: Audio sample rate in Hz. If None, uses the value from StartFrame.
encoding: Audio encoding format. Defaults to "linear16". encoding: Audio encoding format. Defaults to "linear16".
@@ -101,11 +101,11 @@ class DeepgramSageMakerTTSService(TTSService):
**kwargs: Additional arguments passed to the parent TTSService. **kwargs: Additional arguments passed to the parent TTSService.
""" """
if voice is not None: if voice is not None:
_warn_deprecated_param("voice", DeepgramSageMakerTTSSettings, "voice") _warn_deprecated_param("voice", self.Settings, "voice")
voice = voice or "aura-2-helena-en" voice = voice or "aura-2-helena-en"
default_settings = DeepgramSageMakerTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice=voice, voice=voice,
language=None, language=None,

View File

@@ -59,7 +59,7 @@ class LiveOptions:
deepgram-sdk v6. deepgram-sdk v6.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=DeepgramSTTSettings(...)`` for runtime-updatable fields Use ``settings=DeepgramSTTService.Settings(...)`` for runtime-updatable fields
and direct ``__init__`` parameters for connection-level config instead. and direct ``__init__`` parameters for connection-level config instead.
""" """
@@ -267,7 +267,7 @@ class DeepgramSTTService(STTService):
""" """
Settings = DeepgramSTTSettings Settings = DeepgramSTTSettings
_settings: DeepgramSTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -286,7 +286,7 @@ class DeepgramSTTService(STTService):
live_options: Optional[LiveOptions] = None, live_options: Optional[LiveOptions] = None,
addons: Optional[dict] = None, addons: Optional[dict] = None,
should_interrupt: bool = True, should_interrupt: bool = True,
settings: Optional[DeepgramSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = DEEPGRAM_TTFS_P99, ttfs_p99_latency: Optional[float] = DEEPGRAM_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -313,7 +313,7 @@ class DeepgramSTTService(STTService):
live_options: Legacy configuration options. live_options: Legacy configuration options.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=DeepgramSTTSettings(...)`` for runtime-updatable Use ``settings=DeepgramSTTService.Settings(...)`` for runtime-updatable
fields and direct init parameters for connection-level config. fields and direct init parameters for connection-level config.
addons: Additional Deepgram features to enable. addons: Additional Deepgram features to enable.
@@ -345,7 +345,7 @@ class DeepgramSTTService(STTService):
base_url = url base_url = url
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = DeepgramSTTSettings( default_settings = self.Settings(
model="nova-3-general", model="nova-3-general",
language=Language.EN, language=Language.EN,
detect_entities=False, detect_entities=False,
@@ -370,7 +370,7 @@ class DeepgramSTTService(STTService):
# 3. Apply live_options overrides — only if settings not provided # 3. Apply live_options overrides — only if settings not provided
if live_options is not None: if live_options is not None:
_warn_deprecated_param("live_options", DeepgramSTTSettings) _warn_deprecated_param("live_options", self.Settings)
if not settings: if not settings:
# Extract init-only fields from live_options # Extract init-only fields from live_options
if live_options.sample_rate is not None and sample_rate is None: if live_options.sample_rate is not None and sample_rate is None:
@@ -402,7 +402,7 @@ class DeepgramSTTService(STTService):
"mip_opt_out", "mip_opt_out",
} }
lo_dict = {k: v for k, v in live_options.to_dict().items() if k not in init_only} lo_dict = {k: v for k, v in live_options.to_dict().items() if k not in init_only}
delta = DeepgramSTTSettings.from_mapping(lo_dict) delta = self.Settings.from_mapping(lo_dict)
default_settings.apply_update(delta) default_settings.apply_update(delta)
# 4. Apply settings delta (canonical API, always wins) # 4. Apply settings delta (canonical API, always wins)
@@ -494,7 +494,7 @@ class DeepgramSTTService(STTService):
return changed return changed
# Sync extra to fields after the update so self._settings stays unambiguous # Sync extra to fields after the update so self._settings stays unambiguous
if isinstance(self._settings, DeepgramSTTSettings): if isinstance(self._settings, self.Settings):
self._settings._sync_extra_to_fields() self._settings._sync_extra_to_fields()
if self._connection: if self._connection:

View File

@@ -57,7 +57,7 @@ class DeepgramTTSService(WebsocketTTSService):
""" """
Settings = DeepgramTTSSettings Settings = DeepgramTTSSettings
_settings: DeepgramTTSSettings _settings: Settings
SUPPORTED_ENCODINGS = ("linear16", "mulaw", "alaw") SUPPORTED_ENCODINGS = ("linear16", "mulaw", "alaw")
@@ -69,7 +69,7 @@ class DeepgramTTSService(WebsocketTTSService):
base_url: str = "wss://api.deepgram.com", base_url: str = "wss://api.deepgram.com",
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
encoding: str = "linear16", encoding: str = "linear16",
settings: Optional[DeepgramTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Deepgram WebSocket TTS service. """Initialize the Deepgram WebSocket TTS service.
@@ -79,7 +79,7 @@ class DeepgramTTSService(WebsocketTTSService):
voice: Voice model to use for synthesis. voice: Voice model to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=DeepgramTTSSettings(voice=...)`` instead. Use ``settings=DeepgramTTSService.Settings(voice=...)`` instead.
base_url: WebSocket base URL for Deepgram API. Defaults to "wss://api.deepgram.com". base_url: WebSocket base URL for Deepgram API. Defaults to "wss://api.deepgram.com".
sample_rate: Audio sample rate in Hz. If None, uses service default. sample_rate: Audio sample rate in Hz. If None, uses service default.
@@ -97,7 +97,7 @@ class DeepgramTTSService(WebsocketTTSService):
) )
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = DeepgramTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice="aura-2-helena-en", voice="aura-2-helena-en",
language=None, language=None,
@@ -105,7 +105,7 @@ class DeepgramTTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice is not None: if voice is not None:
_warn_deprecated_param("voice", DeepgramTTSSettings, "voice") _warn_deprecated_param("voice", self.Settings, "voice")
default_settings.model = voice default_settings.model = voice
default_settings.voice = voice default_settings.voice = voice
@@ -189,7 +189,7 @@ class DeepgramTTSService(WebsocketTTSService):
"""Apply a settings delta. """Apply a settings delta.
Args: Args:
delta: A :class:`TTSSettings` (or ``DeepgramTTSSettings``) delta. delta: A :class:`TTSSettings` (or ``DeepgramTTSService.Settings``) delta.
Returns: Returns:
Dict mapping changed field names to their previous values. Dict mapping changed field names to their previous values.
@@ -367,7 +367,7 @@ class DeepgramHttpTTSService(TTSService):
""" """
Settings = DeepgramTTSSettings Settings = DeepgramTTSSettings
_settings: DeepgramTTSSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -378,7 +378,7 @@ class DeepgramHttpTTSService(TTSService):
base_url: str = "https://api.deepgram.com", base_url: str = "https://api.deepgram.com",
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
encoding: str = "linear16", encoding: str = "linear16",
settings: Optional[DeepgramTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Deepgram TTS service. """Initialize the Deepgram TTS service.
@@ -388,7 +388,7 @@ class DeepgramHttpTTSService(TTSService):
voice: Voice model to use for synthesis. voice: Voice model to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=DeepgramTTSSettings(voice=...)`` instead. Use ``settings=DeepgramHttpTTSService.Settings(voice=...)`` instead.
aiohttp_session: Shared aiohttp session for HTTP requests with connection pooling. aiohttp_session: Shared aiohttp session for HTTP requests with connection pooling.
base_url: Custom base URL for Deepgram API. Defaults to "https://api.deepgram.com". base_url: Custom base URL for Deepgram API. Defaults to "https://api.deepgram.com".
@@ -399,7 +399,7 @@ class DeepgramHttpTTSService(TTSService):
**kwargs: Additional arguments passed to parent TTSService class. **kwargs: Additional arguments passed to parent TTSService class.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = DeepgramTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice="aura-2-helena-en", voice="aura-2-helena-en",
language=None, language=None,
@@ -407,7 +407,7 @@ class DeepgramHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice is not None: if voice is not None:
_warn_deprecated_param("voice", DeepgramTTSSettings, "voice") _warn_deprecated_param("voice", self.Settings, "voice")
default_settings.model = voice default_settings.model = voice
default_settings.voice = voice default_settings.voice = voice

View File

@@ -12,13 +12,13 @@ from typing import Optional
from loguru import logger from loguru import logger
from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class DeepSeekLLMSettings(OpenAILLMSettings): class DeepSeekLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for DeepSeekLLMService.""" """Settings for DeepSeekLLMService."""
pass pass
@@ -32,7 +32,7 @@ class DeepSeekLLMService(OpenAILLMService):
""" """
Settings = DeepSeekLLMSettings Settings = DeepSeekLLMSettings
_settings: DeepSeekLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -40,7 +40,7 @@ class DeepSeekLLMService(OpenAILLMService):
api_key: str, api_key: str,
base_url: str = "https://api.deepseek.com/v1", base_url: str = "https://api.deepseek.com/v1",
model: Optional[str] = None, model: Optional[str] = None,
settings: Optional[DeepSeekLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the DeepSeek LLM service. """Initialize the DeepSeek LLM service.
@@ -51,18 +51,18 @@ class DeepSeekLLMService(OpenAILLMService):
model: The model identifier to use. Defaults to "deepseek-chat". model: The model identifier to use. Defaults to "deepseek-chat".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=DeepSeekLLMService.Settings(model=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = DeepSeekLLMSettings(model="deepseek-chat") default_settings = self.Settings(model="deepseek-chat")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", DeepSeekLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -217,13 +217,13 @@ class ElevenLabsSTTService(SegmentedSTTService):
""" """
Settings = ElevenLabsSTTSettings Settings = ElevenLabsSTTSettings
_settings: ElevenLabsSTTSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for ElevenLabs STT API. """Configuration parameters for ElevenLabs STT API.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsSTTSettings(...)`` instead. Use ``settings=ElevenLabsSTTService.Settings(...)`` instead.
Parameters: Parameters:
language: Target language for transcription. language: Target language for transcription.
@@ -242,7 +242,7 @@ class ElevenLabsSTTService(SegmentedSTTService):
model: Optional[str] = None, model: Optional[str] = None,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[ElevenLabsSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = ELEVENLABS_TTFS_P99, ttfs_p99_latency: Optional[float] = ELEVENLABS_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -255,13 +255,13 @@ class ElevenLabsSTTService(SegmentedSTTService):
model: Model ID for transcription. model: Model ID for transcription.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsSTTSettings(model=...)`` instead. Use ``settings=ElevenLabsSTTService.Settings(model=...)`` instead.
sample_rate: Audio sample rate in Hz. If not provided, uses the pipeline's rate. sample_rate: Audio sample rate in Hz. If not provided, uses the pipeline's rate.
params: Configuration parameters for the STT service. params: Configuration parameters for the STT service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsSTTSettings(...)`` instead. Use ``settings=ElevenLabsSTTService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -270,7 +270,7 @@ class ElevenLabsSTTService(SegmentedSTTService):
**kwargs: Additional arguments passed to SegmentedSTTService. **kwargs: Additional arguments passed to SegmentedSTTService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = ElevenLabsSTTSettings( default_settings = self.Settings(
model="scribe_v2", model="scribe_v2",
language=language_to_elevenlabs_language(Language.EN), language=language_to_elevenlabs_language(Language.EN),
tag_audio_events=None, tag_audio_events=None,
@@ -278,12 +278,12 @@ class ElevenLabsSTTService(SegmentedSTTService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", ElevenLabsSTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", ElevenLabsSTTSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = language_to_elevenlabs_language(params.language) default_settings.language = language_to_elevenlabs_language(params.language)
@@ -450,13 +450,13 @@ class ElevenLabsRealtimeSTTService(WebsocketSTTService):
""" """
Settings = ElevenLabsRealtimeSTTSettings Settings = ElevenLabsRealtimeSTTSettings
_settings: ElevenLabsRealtimeSTTSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for ElevenLabs Realtime STT API. """Configuration parameters for ElevenLabs Realtime STT API.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsRealtimeSTTSettings(...)`` instead. Use ``settings=ElevenLabsRealtimeSTTService.Settings(...)`` instead.
Parameters: Parameters:
language_code: ISO-639-1 or ISO-639-3 language code. Leave None for auto-detection. language_code: ISO-639-1 or ISO-639-3 language code. Leave None for auto-detection.
@@ -496,7 +496,7 @@ class ElevenLabsRealtimeSTTService(WebsocketSTTService):
enable_logging: bool = False, enable_logging: bool = False,
include_language_detection: bool = False, include_language_detection: bool = False,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[ElevenLabsRealtimeSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = ELEVENLABS_REALTIME_TTFS_P99, ttfs_p99_latency: Optional[float] = ELEVENLABS_REALTIME_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -511,7 +511,7 @@ class ElevenLabsRealtimeSTTService(WebsocketSTTService):
model: Model ID for transcription. model: Model ID for transcription.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsRealtimeSTTSettings(model=...)`` instead. Use ``settings=ElevenLabsRealtimeSTTService.Settings(model=...)`` instead.
sample_rate: Audio sample rate in Hz. If not provided, uses the pipeline's rate. sample_rate: Audio sample rate in Hz. If not provided, uses the pipeline's rate.
include_timestamps: Whether to include word-level timestamps in transcripts. include_timestamps: Whether to include word-level timestamps in transcripts.
@@ -520,7 +520,7 @@ class ElevenLabsRealtimeSTTService(WebsocketSTTService):
params: Configuration parameters for the STT service. params: Configuration parameters for the STT service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsRealtimeSTTSettings(...)`` instead. Use ``settings=ElevenLabsRealtimeSTTService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -529,7 +529,7 @@ class ElevenLabsRealtimeSTTService(WebsocketSTTService):
**kwargs: Additional arguments passed to WebsocketSTTService. **kwargs: Additional arguments passed to WebsocketSTTService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = ElevenLabsRealtimeSTTSettings( default_settings = self.Settings(
model="scribe_v2_realtime", model="scribe_v2_realtime",
language=None, language=None,
vad_silence_threshold_secs=None, vad_silence_threshold_secs=None,
@@ -540,12 +540,12 @@ class ElevenLabsRealtimeSTTService(WebsocketSTTService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", ElevenLabsRealtimeSTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", ElevenLabsRealtimeSTTSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = params.language_code default_settings.language = params.language_code
if params.commit_strategy != CommitStrategy.MANUAL: if params.commit_strategy != CommitStrategy.MANUAL:
@@ -597,7 +597,7 @@ class ElevenLabsRealtimeSTTService(WebsocketSTTService):
"""Apply a settings delta and reconnect if anything changed. """Apply a settings delta and reconnect if anything changed.
Args: Args:
delta: A :class:`STTSettings` (or ``ElevenLabsRealtimeSTTSettings``) delta. delta: A :class:`STTSettings` (or ``ElevenLabsRealtimeSTTService.Settings``) delta.
Returns: Returns:
Dict mapping changed field names to their previous values. Dict mapping changed field names to their previous values.

View File

@@ -317,13 +317,13 @@ class ElevenLabsTTSService(WebsocketTTSService):
""" """
Settings = ElevenLabsTTSSettings Settings = ElevenLabsTTSSettings
_settings: ElevenLabsTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for ElevenLabs TTS configuration. """Input parameters for ElevenLabs TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsTTSSettings(...)`` instead. Use ``settings=ElevenLabsTTSService.Settings(...)`` instead.
Parameters: Parameters:
language: Language to use for synthesis. language: Language to use for synthesis.
@@ -364,7 +364,7 @@ class ElevenLabsTTSService(WebsocketTTSService):
enable_logging: Optional[bool] = None, enable_logging: Optional[bool] = None,
pronunciation_dictionary_locators: Optional[List[PronunciationDictionaryLocator]] = None, pronunciation_dictionary_locators: Optional[List[PronunciationDictionaryLocator]] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[ElevenLabsTTSSettings] = None, settings: Optional[Settings] = None,
text_aggregation_mode: Optional[TextAggregationMode] = None, text_aggregation_mode: Optional[TextAggregationMode] = None,
aggregate_sentences: Optional[bool] = None, aggregate_sentences: Optional[bool] = None,
**kwargs, **kwargs,
@@ -376,12 +376,12 @@ class ElevenLabsTTSService(WebsocketTTSService):
voice_id: ID of the voice to use for synthesis. voice_id: ID of the voice to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsTTSSettings(voice=...)`` instead. Use ``settings=ElevenLabsTTSService.Settings(voice=...)`` instead.
model: TTS model to use (e.g., "eleven_turbo_v2_5"). model: TTS model to use (e.g., "eleven_turbo_v2_5").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsTTSSettings(model=...)`` instead. Use ``settings=ElevenLabsTTSService.Settings(model=...)`` instead.
url: WebSocket URL for ElevenLabs TTS API. url: WebSocket URL for ElevenLabs TTS API.
sample_rate: Audio sample rate. If None, uses default. sample_rate: Audio sample rate. If None, uses default.
@@ -393,7 +393,7 @@ class ElevenLabsTTSService(WebsocketTTSService):
params: Additional input parameters for voice customization. params: Additional input parameters for voice customization.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsTTSSettings(...)`` instead. Use ``settings=ElevenLabsTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -423,7 +423,7 @@ class ElevenLabsTTSService(WebsocketTTSService):
# after a short period not receiving any audio. # after a short period not receiving any audio.
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = ElevenLabsTTSSettings( default_settings = self.Settings(
model="eleven_turbo_v2_5", model="eleven_turbo_v2_5",
voice=None, voice=None,
language=None, language=None,
@@ -437,16 +437,16 @@ class ElevenLabsTTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", ElevenLabsTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if model is not None: if model is not None:
_warn_deprecated_param("model", ElevenLabsTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
_pronunciation_dictionary_locators = pronunciation_dictionary_locators _pronunciation_dictionary_locators = pronunciation_dictionary_locators
if params is not None: if params is not None:
_warn_deprecated_param("params", ElevenLabsTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = self.language_to_service_language(params.language) default_settings.language = self.language_to_service_language(params.language)
@@ -533,11 +533,11 @@ class ElevenLabsTTSService(WebsocketTTSService):
"""Apply a settings delta, reconnecting as needed. """Apply a settings delta, reconnecting as needed.
Uses the declarative ``URL_FIELDS`` and ``VOICE_SETTINGS_FIELDS`` Uses the declarative ``URL_FIELDS`` and ``VOICE_SETTINGS_FIELDS``
sets on :class:`ElevenLabsTTSSettings` to decide whether to sets on :class:`ElevenLabsTTSService.Settings` to decide whether to
reconnect the WebSocket or close the current audio context. reconnect the WebSocket or close the current audio context.
Args: Args:
delta: A :class:`TTSSettings` (or ``ElevenLabsTTSSettings``) delta. delta: A :class:`TTSSettings` (or ``ElevenLabsTTSService.Settings``) delta.
Returns: Returns:
Dict mapping changed field names to their previous values. Dict mapping changed field names to their previous values.
@@ -550,19 +550,19 @@ class ElevenLabsTTSService(WebsocketTTSService):
# 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.keys() & ElevenLabsTTSSettings.URL_FIELDS) url_changed = bool(changed.keys() & self.Settings.URL_FIELDS)
voice_settings_changed = bool(changed.keys() & ElevenLabsTTSSettings.VOICE_SETTINGS_FIELDS) voice_settings_changed = bool(changed.keys() & self.Settings.VOICE_SETTINGS_FIELDS)
if url_changed: if url_changed:
logger.debug( logger.debug(
f"URL-level setting changed ({changed.keys() & ElevenLabsTTSSettings.URL_FIELDS}), " f"URL-level setting changed ({changed.keys() & self.Settings.URL_FIELDS}), "
f"reconnecting WebSocket" f"reconnecting WebSocket"
) )
await self._disconnect() await self._disconnect()
await self._connect() await self._connect()
elif voice_settings_changed: elif voice_settings_changed:
logger.debug( logger.debug(
f"Voice settings changed ({changed.keys() & ElevenLabsTTSSettings.VOICE_SETTINGS_FIELDS}), " f"Voice settings changed ({changed.keys() & self.Settings.VOICE_SETTINGS_FIELDS}), "
f"closing current context to apply changes" f"closing current context to apply changes"
) )
audio_contexts = self.get_audio_contexts() audio_contexts = self.get_audio_contexts()
@@ -573,7 +573,7 @@ class ElevenLabsTTSService(WebsocketTTSService):
if not url_changed: if not url_changed:
# Reconnect applies all settings; only warn about fields not handled # Reconnect applies all settings; only warn about fields not handled
# by voice settings or URL changes. # by voice settings or URL changes.
handled = ElevenLabsTTSSettings.URL_FIELDS | ElevenLabsTTSSettings.VOICE_SETTINGS_FIELDS handled = self.Settings.URL_FIELDS | self.Settings.VOICE_SETTINGS_FIELDS
self._warn_unhandled_updated_settings(changed.keys() - handled) self._warn_unhandled_updated_settings(changed.keys() - handled)
return changed return changed
@@ -906,13 +906,13 @@ class ElevenLabsHttpTTSService(TTSService):
""" """
Settings = ElevenLabsHttpTTSSettings Settings = ElevenLabsHttpTTSSettings
_settings: ElevenLabsHttpTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for ElevenLabs HTTP TTS configuration. """Input parameters for ElevenLabs HTTP TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsHttpTTSSettings(...)`` instead. Use ``settings=ElevenLabsHttpTTSService.Settings(...)`` instead.
Parameters: Parameters:
language: Language to use for synthesis. language: Language to use for synthesis.
@@ -947,7 +947,7 @@ class ElevenLabsHttpTTSService(TTSService):
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
pronunciation_dictionary_locators: Optional[List[PronunciationDictionaryLocator]] = None, pronunciation_dictionary_locators: Optional[List[PronunciationDictionaryLocator]] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[ElevenLabsHttpTTSSettings] = None, settings: Optional[Settings] = None,
text_aggregation_mode: Optional[TextAggregationMode] = None, text_aggregation_mode: Optional[TextAggregationMode] = None,
aggregate_sentences: Optional[bool] = None, aggregate_sentences: Optional[bool] = None,
**kwargs, **kwargs,
@@ -959,13 +959,13 @@ class ElevenLabsHttpTTSService(TTSService):
voice_id: ID of the voice to use for synthesis. voice_id: ID of the voice to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsHttpTTSSettings(voice=...)`` instead. Use ``settings=ElevenLabsHttpTTSService.Settings(voice=...)`` instead.
aiohttp_session: aiohttp ClientSession for HTTP requests. aiohttp_session: aiohttp ClientSession for HTTP requests.
model: TTS model to use (e.g., "eleven_turbo_v2_5"). model: TTS model to use (e.g., "eleven_turbo_v2_5").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsHttpTTSSettings(model=...)`` instead. Use ``settings=ElevenLabsHttpTTSService.Settings(model=...)`` instead.
base_url: Base URL for ElevenLabs HTTP API. base_url: Base URL for ElevenLabs HTTP API.
sample_rate: Audio sample rate. If None, uses default. sample_rate: Audio sample rate. If None, uses default.
@@ -974,7 +974,7 @@ class ElevenLabsHttpTTSService(TTSService):
params: Additional input parameters for voice customization. params: Additional input parameters for voice customization.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ElevenLabsHttpTTSSettings(...)`` instead. Use ``settings=ElevenLabsHttpTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -987,7 +987,7 @@ class ElevenLabsHttpTTSService(TTSService):
**kwargs: Additional arguments passed to the parent service. **kwargs: Additional arguments passed to the parent service.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = ElevenLabsHttpTTSSettings( default_settings = self.Settings(
model="eleven_turbo_v2_5", model="eleven_turbo_v2_5",
voice=None, voice=None,
language=None, language=None,
@@ -1002,16 +1002,16 @@ class ElevenLabsHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", ElevenLabsHttpTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if model is not None: if model is not None:
_warn_deprecated_param("model", ElevenLabsHttpTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
_pronunciation_dictionary_locators = pronunciation_dictionary_locators _pronunciation_dictionary_locators = pronunciation_dictionary_locators
if params is not None: if params is not None:
_warn_deprecated_param("params", ElevenLabsHttpTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = self.language_to_service_language(params.language) default_settings.language = self.language_to_service_language(params.language)
@@ -1091,7 +1091,7 @@ class ElevenLabsHttpTTSService(TTSService):
"""Apply a settings delta and rebuild voice settings. """Apply a settings delta and rebuild voice settings.
Args: Args:
delta: A :class:`TTSSettings` (or ``ElevenLabsHttpTTSSettings``) delta. delta: A :class:`TTSSettings` (or ``ElevenLabsHttpTTSService.Settings``) delta.
Returns: Returns:
Dict mapping changed field names to their previous values. Dict mapping changed field names to their previous values.

View File

@@ -71,13 +71,13 @@ class FalImageGenService(ImageGenService):
""" """
Settings = FalImageGenSettings Settings = FalImageGenSettings
_settings: FalImageGenSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Fal.ai image generation. """Input parameters for Fal.ai image generation.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=FalImageGenSettings(...)`` instead. Use ``settings=FalImageGenService.Settings(...)`` instead.
Parameters: Parameters:
seed: Random seed for reproducible generation. If None, uses random seed. seed: Random seed for reproducible generation. If None, uses random seed.
@@ -97,7 +97,7 @@ class FalImageGenService(ImageGenService):
enable_safety_checker: bool = True enable_safety_checker: bool = True
format: str = "png" format: str = "png"
_settings: FalImageGenSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -106,7 +106,7 @@ class FalImageGenService(ImageGenService):
aiohttp_session: aiohttp.ClientSession, aiohttp_session: aiohttp.ClientSession,
model: Optional[str] = None, model: Optional[str] = None,
key: Optional[str] = None, key: Optional[str] = None,
settings: Optional[FalImageGenSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the FalImageGenService. """Initialize the FalImageGenService.
@@ -115,13 +115,13 @@ class FalImageGenService(ImageGenService):
params: Input parameters for image generation configuration. params: Input parameters for image generation configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=FalImageGenSettings(...)`` instead. Use ``settings=FalImageGenService.Settings(...)`` instead.
aiohttp_session: HTTP client session for downloading generated images. aiohttp_session: HTTP client session for downloading generated images.
model: The Fal.ai model to use for generation. Defaults to "fal-ai/fast-sdxl". model: The Fal.ai model to use for generation. Defaults to "fal-ai/fast-sdxl".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=FalImageGenSettings(model=...)`` instead. Use ``settings=FalImageGenService.Settings(model=...)`` instead.
key: Optional API key for Fal.ai. If provided, sets FAL_KEY environment variable. key: Optional API key for Fal.ai. If provided, sets FAL_KEY environment variable.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -129,7 +129,7 @@ class FalImageGenService(ImageGenService):
**kwargs: Additional arguments passed to parent ImageGenService. **kwargs: Additional arguments passed to parent ImageGenService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = FalImageGenSettings( default_settings = self.Settings(
model="fal-ai/fast-sdxl", model="fal-ai/fast-sdxl",
seed=None, seed=None,
num_inference_steps=8, num_inference_steps=8,
@@ -142,11 +142,11 @@ class FalImageGenService(ImageGenService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", FalImageGenSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if params is not None: if params is not None:
_warn_deprecated_param("params", FalImageGenSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.seed = params.seed default_settings.seed = params.seed
default_settings.num_inference_steps = params.num_inference_steps default_settings.num_inference_steps = params.num_inference_steps

View File

@@ -156,13 +156,13 @@ class FalSTTService(SegmentedSTTService):
""" """
Settings = FalSTTSettings Settings = FalSTTSettings
_settings: FalSTTSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for Fal's Wizper API. """Configuration parameters for Fal's Wizper API.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=FalSTTSettings(...)`` instead. Use ``settings=FalSTTService.Settings(...)`` instead.
Parameters: Parameters:
language: Language of the audio input. Defaults to English. language: Language of the audio input. Defaults to English.
@@ -186,7 +186,7 @@ class FalSTTService(SegmentedSTTService):
version: str = "3", version: str = "3",
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[FalSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = FAL_TTFS_P99, ttfs_p99_latency: Optional[float] = FAL_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -204,7 +204,7 @@ class FalSTTService(SegmentedSTTService):
params: Configuration parameters for the Wizper API. params: Configuration parameters for the Wizper API.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=FalSTTSettings(...)`` for model/language and Use ``settings=FalSTTService.Settings(...)`` for model/language and
direct init parameters for task/chunk_level/version instead. direct init parameters for task/chunk_level/version instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -214,7 +214,7 @@ class FalSTTService(SegmentedSTTService):
**kwargs: Additional arguments passed to SegmentedSTTService. **kwargs: Additional arguments passed to SegmentedSTTService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = FalSTTSettings( default_settings = self.Settings(
model=None, model=None,
language=language_to_fal_language(Language.EN), language=language_to_fal_language(Language.EN),
) )
@@ -223,7 +223,7 @@ class FalSTTService(SegmentedSTTService):
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", FalSTTSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = language_to_fal_language(params.language) default_settings.language = language_to_fal_language(params.language)

View File

@@ -12,13 +12,13 @@ from typing import Optional
from loguru import logger from loguru import logger
from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class FireworksLLMSettings(OpenAILLMSettings): class FireworksLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for FireworksLLMService.""" """Settings for FireworksLLMService."""
pass pass
@@ -32,7 +32,7 @@ class FireworksLLMService(OpenAILLMService):
""" """
Settings = FireworksLLMSettings Settings = FireworksLLMSettings
_settings: FireworksLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -40,7 +40,7 @@ class FireworksLLMService(OpenAILLMService):
api_key: str, api_key: str,
model: Optional[str] = None, model: Optional[str] = None,
base_url: str = "https://api.fireworks.ai/inference/v1", base_url: str = "https://api.fireworks.ai/inference/v1",
settings: Optional[FireworksLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Fireworks LLM service. """Initialize the Fireworks LLM service.
@@ -50,7 +50,7 @@ class FireworksLLMService(OpenAILLMService):
model: The model identifier to use. Defaults to "accounts/fireworks/models/firefunction-v2". model: The model identifier to use. Defaults to "accounts/fireworks/models/firefunction-v2".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=FireworksLLMService.Settings(model=...)`` instead.
base_url: The base URL for Fireworks API. Defaults to "https://api.fireworks.ai/inference/v1". base_url: The base URL for Fireworks API. Defaults to "https://api.fireworks.ai/inference/v1".
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -58,11 +58,11 @@ class FireworksLLMService(OpenAILLMService):
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = FireworksLLMSettings(model="accounts/fireworks/models/firefunction-v2") default_settings = self.Settings(model="accounts/fireworks/models/firefunction-v2")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", FireworksLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -85,13 +85,13 @@ class FishAudioTTSService(InterruptibleTTSService):
""" """
Settings = FishAudioTTSSettings Settings = FishAudioTTSSettings
_settings: FishAudioTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Fish Audio TTS configuration. """Input parameters for Fish Audio TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=FishAudioTTSSettings(...)`` instead. Use ``settings=FishAudioTTSService.Settings(...)`` instead.
Parameters: Parameters:
language: Language for synthesis. Defaults to English. language: Language for synthesis. Defaults to English.
@@ -117,7 +117,7 @@ class FishAudioTTSService(InterruptibleTTSService):
output_format: FishAudioOutputFormat = "pcm", output_format: FishAudioOutputFormat = "pcm",
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[FishAudioTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Fish Audio TTS service. """Initialize the Fish Audio TTS service.
@@ -127,7 +127,7 @@ class FishAudioTTSService(InterruptibleTTSService):
reference_id: Reference ID of the voice model to use for synthesis. reference_id: Reference ID of the voice model to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=FishAudioTTSSettings(voice=...)`` instead. Use ``settings=FishAudioTTSService.Settings(voice=...)`` instead.
model: Deprecated. Reference ID of the voice model to use for synthesis. model: Deprecated. Reference ID of the voice model to use for synthesis.
@@ -138,14 +138,14 @@ class FishAudioTTSService(InterruptibleTTSService):
model_id: Specify which Fish Audio TTS model to use (e.g. "s1"). model_id: Specify which Fish Audio TTS model to use (e.g. "s1").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=FishAudioTTSSettings(model=...)`` instead. Use ``settings=FishAudioTTSService.Settings(model=...)`` instead.
output_format: Audio output format. Defaults to "pcm". output_format: Audio output format. Defaults to "pcm".
sample_rate: Audio sample rate. If None, uses default. sample_rate: Audio sample rate. If None, uses default.
params: Additional input parameters for voice customization. params: Additional input parameters for voice customization.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=FishAudioTTSSettings(...)`` instead. Use ``settings=FishAudioTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -171,7 +171,7 @@ class FishAudioTTSService(InterruptibleTTSService):
reference_id = model reference_id = model
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = FishAudioTTSSettings( default_settings = self.Settings(
model="s2-pro", model="s2-pro",
voice=None, voice=None,
language=None, language=None,
@@ -185,15 +185,15 @@ class FishAudioTTSService(InterruptibleTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if reference_id is not None: if reference_id is not None:
_warn_deprecated_param("reference_id", FishAudioTTSSettings, "voice") _warn_deprecated_param("reference_id", self.Settings, "voice")
default_settings.voice = reference_id default_settings.voice = reference_id
if model_id is not None: if model_id is not None:
_warn_deprecated_param("model_id", FishAudioTTSSettings, "model") _warn_deprecated_param("model_id", self.Settings, "model")
default_settings.model = model_id default_settings.model = model_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", FishAudioTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.latency is not None: if params.latency is not None:
default_settings.latency = params.latency default_settings.latency = params.latency
@@ -240,7 +240,7 @@ class FishAudioTTSService(InterruptibleTTSService):
Any change to voice or model triggers a WebSocket reconnect. Any change to voice or model triggers a WebSocket reconnect.
Args: Args:
delta: A :class:`TTSSettings` (or ``FishAudioTTSSettings``) delta. delta: A :class:`TTSSettings` (or ``FishAudioTTSService.Settings``) delta.
Returns: Returns:
Dict mapping changed field names to their previous values. Dict mapping changed field names to their previous values.

View File

@@ -153,7 +153,7 @@ class GladiaInputParams(BaseModel):
"""Configuration parameters for the Gladia STT service. """Configuration parameters for the Gladia STT service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GladiaSTTSettings(...)`` for runtime-updatable Use ``settings=GladiaSTTService.Settings(...)`` for runtime-updatable
fields and direct init parameters for encoding/bit_depth/channels. fields and direct init parameters for encoding/bit_depth/channels.
Parameters: Parameters:

View File

@@ -231,7 +231,7 @@ class GladiaSTTService(WebsocketSTTService):
""" """
Settings = GladiaSTTSettings Settings = GladiaSTTSettings
_settings: GladiaSTTSettings _settings: Settings
# Maintain backward compatibility # Maintain backward compatibility
InputParams = _InputParamsDescriptor() InputParams = _InputParamsDescriptor()
@@ -251,7 +251,7 @@ class GladiaSTTService(WebsocketSTTService):
params: Optional[GladiaInputParams] = None, params: Optional[GladiaInputParams] = None,
max_buffer_size: int = 1024 * 1024 * 20, # 20MB default buffer max_buffer_size: int = 1024 * 1024 * 20, # 20MB default buffer
should_interrupt: bool = True, should_interrupt: bool = True,
settings: Optional[GladiaSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = GLADIA_TTFS_P99, ttfs_p99_latency: Optional[float] = GLADIA_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -274,12 +274,12 @@ class GladiaSTTService(WebsocketSTTService):
model: Model to use for transcription. model: Model to use for transcription.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GladiaSTTSettings(model=...)`` instead. Use ``settings=GladiaSTTService.Settings(model=...)`` instead.
params: Additional configuration parameters for Gladia service. params: Additional configuration parameters for Gladia service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GladiaSTTSettings(...)`` for runtime-updatable Use ``settings=GladiaSTTService.Settings(...)`` for runtime-updatable
fields and direct init parameters for encoding/bit_depth/channels. fields and direct init parameters for encoding/bit_depth/channels.
max_buffer_size: Maximum size of audio buffer in bytes. Defaults to 20MB. max_buffer_size: Maximum size of audio buffer in bytes. Defaults to 20MB.
@@ -302,7 +302,7 @@ class GladiaSTTService(WebsocketSTTService):
) )
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GladiaSTTSettings( default_settings = self.Settings(
model="solaria-1", model="solaria-1",
language=None, language=None,
language_config=None, language_config=None,
@@ -317,12 +317,12 @@ class GladiaSTTService(WebsocketSTTService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", GladiaSTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", GladiaSTTSettings) _warn_deprecated_param("params", self.Settings)
if params.language is not None: if params.language is not None:
with warnings.catch_warnings(): with warnings.catch_warnings():
warnings.simplefilter("always") warnings.simplefilter("always")
@@ -469,7 +469,7 @@ class GladiaSTTService(WebsocketSTTService):
await super().start(frame) await super().start(frame)
await self._connect() await self._connect()
async def _update_settings(self, delta: GladiaSTTSettings) -> dict[str, Any]: async def _update_settings(self, delta: Settings) -> dict[str, Any]:
"""Apply settings delta. """Apply settings delta.
Settings are stored but not applied to the active session. Settings are stored but not applied to the active session.

View File

@@ -553,7 +553,7 @@ class InputParams(BaseModel):
"""Input parameters for Gemini Live generation. """Input parameters for Gemini Live generation.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``GeminiLiveLLMSettings`` instead. Use ``GeminiLiveLLMService.Settings`` instead.
Parameters: Parameters:
frequency_penalty: Frequency penalty for generation (0.0-2.0). Defaults to None. frequency_penalty: Frequency penalty for generation (0.0-2.0). Defaults to None.
@@ -643,7 +643,7 @@ class GeminiLiveLLMService(LLMService):
""" """
Settings = GeminiLiveLLMSettings Settings = GeminiLiveLLMSettings
_settings: GeminiLiveLLMSettings _settings: Settings
# Overriding the default adapter to use the Gemini one. # Overriding the default adapter to use the Gemini one.
adapter_class = GeminiLLMAdapter adapter_class = GeminiLLMAdapter
@@ -660,7 +660,7 @@ class GeminiLiveLLMService(LLMService):
system_instruction: Optional[str] = None, system_instruction: Optional[str] = None,
tools: Optional[Union[List[dict], ToolsSchema]] = None, tools: Optional[Union[List[dict], ToolsSchema]] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[GeminiLiveLLMSettings] = None, settings: Optional[Settings] = None,
inference_on_context_initialization: bool = True, inference_on_context_initialization: bool = True,
file_api_base_url: str = "https://generativelanguage.googleapis.com/v1beta/files", file_api_base_url: str = "https://generativelanguage.googleapis.com/v1beta/files",
http_options: Optional[HttpOptions] = None, http_options: Optional[HttpOptions] = None,
@@ -680,12 +680,12 @@ class GeminiLiveLLMService(LLMService):
model: Model identifier to use. model: Model identifier to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GeminiLiveLLMSettings(model=...)`` instead. Use ``settings=GeminiLiveLLMService.Settings(model=...)`` instead.
voice_id: TTS voice identifier. Defaults to "Charon". voice_id: TTS voice identifier. Defaults to "Charon".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GeminiLiveLLMSettings(voice=...)`` instead. Use ``settings=GeminiLiveLLMService.Settings(voice=...)`` instead.
start_audio_paused: Whether to start with audio input paused. Defaults to False. start_audio_paused: Whether to start with audio input paused. Defaults to False.
start_video_paused: Whether to start with video input paused. Defaults to False. start_video_paused: Whether to start with video input paused. Defaults to False.
system_instruction: System prompt for the model. Defaults to None. system_instruction: System prompt for the model. Defaults to None.
@@ -693,7 +693,7 @@ class GeminiLiveLLMService(LLMService):
params: Configuration parameters for the model. params: Configuration parameters for the model.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GeminiLiveLLMSettings(...)`` instead. Use ``settings=GeminiLiveLLMService.Settings(...)`` instead.
settings: Gemini Live LLM settings. If provided together with deprecated settings: Gemini Live LLM settings. If provided together with deprecated
top-level parameters, the ``settings`` values take precedence. top-level parameters, the ``settings`` values take precedence.
@@ -716,7 +716,7 @@ class GeminiLiveLLMService(LLMService):
) )
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GeminiLiveLLMSettings( default_settings = self.Settings(
model="models/gemini-2.5-flash-native-audio-preview-12-2025", model="models/gemini-2.5-flash-native-audio-preview-12-2025",
system_instruction=system_instruction, system_instruction=system_instruction,
voice="Charon", voice="Charon",
@@ -742,15 +742,15 @@ class GeminiLiveLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", GeminiLiveLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if voice_id != "Charon": if voice_id != "Charon":
_warn_deprecated_param("voice_id", GeminiLiveLLMSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", GeminiLiveLLMSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.frequency_penalty = params.frequency_penalty default_settings.frequency_penalty = params.frequency_penalty
default_settings.max_tokens = params.max_tokens default_settings.max_tokens = params.max_tokens

View File

@@ -20,7 +20,6 @@ from loguru import logger
from pipecat.adapters.schemas.tools_schema import ToolsSchema from pipecat.adapters.schemas.tools_schema import ToolsSchema
from pipecat.services.google.gemini_live.llm import ( from pipecat.services.google.gemini_live.llm import (
GeminiLiveLLMService, GeminiLiveLLMService,
GeminiLiveLLMSettings,
GeminiMediaResolution, GeminiMediaResolution,
GeminiModalities, GeminiModalities,
HttpOptions, HttpOptions,
@@ -43,7 +42,7 @@ except ModuleNotFoundError as e:
@dataclass @dataclass
class GeminiLiveVertexLLMSettings(GeminiLiveLLMSettings): class GeminiLiveVertexLLMSettings(GeminiLiveLLMService.Settings):
"""Settings for GeminiLiveVertexLLMService.""" """Settings for GeminiLiveVertexLLMService."""
pass pass
@@ -58,7 +57,7 @@ class GeminiLiveVertexLLMService(GeminiLiveLLMService):
""" """
Settings = GeminiLiveVertexLLMSettings Settings = GeminiLiveVertexLLMSettings
_settings: GeminiLiveVertexLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -74,7 +73,7 @@ class GeminiLiveVertexLLMService(GeminiLiveLLMService):
system_instruction: Optional[str] = None, system_instruction: Optional[str] = None,
tools: Optional[Union[List[dict], ToolsSchema]] = None, tools: Optional[Union[List[dict], ToolsSchema]] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[GeminiLiveVertexLLMSettings] = None, settings: Optional[Settings] = None,
inference_on_context_initialization: bool = True, inference_on_context_initialization: bool = True,
file_api_base_url: str = "https://generativelanguage.googleapis.com/v1beta/files", file_api_base_url: str = "https://generativelanguage.googleapis.com/v1beta/files",
http_options: Optional[HttpOptions] = None, http_options: Optional[HttpOptions] = None,
@@ -90,12 +89,12 @@ class GeminiLiveVertexLLMService(GeminiLiveLLMService):
model: Model identifier to use. model: Model identifier to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GeminiLiveLLMSettings(model=...)`` instead. Use ``settings=GeminiLiveVertexLLMService.Settings(model=...)`` instead.
voice_id: TTS voice identifier. Defaults to "Charon". voice_id: TTS voice identifier. Defaults to "Charon".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GeminiLiveVertexLLMSettings(voice=...)`` instead. Use ``settings=GeminiLiveVertexLLMService.Settings(voice=...)`` instead.
start_audio_paused: Whether to start with audio input paused. Defaults to False. start_audio_paused: Whether to start with audio input paused. Defaults to False.
start_video_paused: Whether to start with video input paused. Defaults to False. start_video_paused: Whether to start with video input paused. Defaults to False.
system_instruction: System prompt for the model. Defaults to None. system_instruction: System prompt for the model. Defaults to None.
@@ -104,7 +103,7 @@ class GeminiLiveVertexLLMService(GeminiLiveLLMService):
location and project ID. location and project ID.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GeminiLiveLLMSettings(...)`` instead. Use ``settings=GeminiLiveVertexLLMService.Settings(...)`` instead.
settings: Gemini Live LLM settings. If provided together with deprecated settings: Gemini Live LLM settings. If provided together with deprecated
top-level parameters, the ``settings`` values take precedence. top-level parameters, the ``settings`` values take precedence.
@@ -136,7 +135,7 @@ class GeminiLiveVertexLLMService(GeminiLiveLLMService):
# double deprecation warnings from the parent. # double deprecation warnings from the parent.
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GeminiLiveVertexLLMSettings( default_settings = self.Settings(
model="google/gemini-live-2.5-flash-native-audio", model="google/gemini-live-2.5-flash-native-audio",
voice="Charon", voice="Charon",
frequency_penalty=None, frequency_penalty=None,
@@ -161,15 +160,15 @@ class GeminiLiveVertexLLMService(GeminiLiveLLMService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", GeminiLiveVertexLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if voice_id != "Charon": if voice_id != "Charon":
_warn_deprecated_param("voice_id", GeminiLiveVertexLLMSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", GeminiLiveVertexLLMSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.frequency_penalty = params.frequency_penalty default_settings.frequency_penalty = params.frequency_penalty
default_settings.max_tokens = params.max_tokens default_settings.max_tokens = params.max_tokens

View File

@@ -60,13 +60,13 @@ class GoogleImageGenService(ImageGenService):
""" """
Settings = GoogleImageGenSettings Settings = GoogleImageGenSettings
_settings: GoogleImageGenSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for Google image generation. """Configuration parameters for Google image generation.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleImageGenSettings(...)`` instead. Use ``settings=GoogleImageGenService.Settings(...)`` instead.
Parameters: Parameters:
number_of_images: Number of images to generate (1-8). Defaults to 1. number_of_images: Number of images to generate (1-8). Defaults to 1.
@@ -84,7 +84,7 @@ class GoogleImageGenService(ImageGenService):
api_key: str, api_key: str,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
http_options: Optional[Any] = None, http_options: Optional[Any] = None,
settings: Optional[GoogleImageGenSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the GoogleImageGenService with API key and parameters. """Initialize the GoogleImageGenService with API key and parameters.
@@ -94,7 +94,7 @@ class GoogleImageGenService(ImageGenService):
params: Configuration parameters for image generation. params: Configuration parameters for image generation.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleImageGenSettings(...)`` instead. Use ``settings=GoogleImageGenService.Settings(...)`` instead.
http_options: HTTP options for the client. http_options: HTTP options for the client.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -102,7 +102,7 @@ class GoogleImageGenService(ImageGenService):
**kwargs: Additional arguments passed to the parent ImageGenService. **kwargs: Additional arguments passed to the parent ImageGenService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GoogleImageGenSettings( default_settings = self.Settings(
model="imagen-3.0-generate-002", model="imagen-3.0-generate-002",
number_of_images=1, number_of_images=1,
negative_prompt=None, negative_prompt=None,
@@ -110,7 +110,7 @@ class GoogleImageGenService(ImageGenService):
# 2. Apply params overrides (deprecated) # 2. Apply params overrides (deprecated)
if params is not None: if params is not None:
_warn_deprecated_param("params", GoogleImageGenSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.model = params.model default_settings.model = params.model
default_settings.number_of_images = params.number_of_images default_settings.number_of_images = params.number_of_images

View File

@@ -743,7 +743,7 @@ class GoogleLLMService(LLMService):
""" """
Settings = GoogleLLMSettings Settings = GoogleLLMSettings
_settings: GoogleLLMSettings _settings: Settings
# Overriding the default adapter to use the Gemini one. # Overriding the default adapter to use the Gemini one.
adapter_class = GeminiLLMAdapter adapter_class = GeminiLLMAdapter
@@ -755,7 +755,7 @@ class GoogleLLMService(LLMService):
"""Input parameters for Google AI models. """Input parameters for Google AI models.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleLLMSettings(...)`` instead. Use ``settings=GoogleLLMService.Settings(...)`` instead.
Parameters: Parameters:
max_tokens: Maximum number of tokens to generate. max_tokens: Maximum number of tokens to generate.
@@ -784,7 +784,7 @@ class GoogleLLMService(LLMService):
api_key: str, api_key: str,
model: Optional[str] = None, model: Optional[str] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[GoogleLLMSettings] = None, settings: Optional[Settings] = None,
system_instruction: Optional[str] = None, system_instruction: Optional[str] = None,
tools: Optional[List[Dict[str, Any]]] = None, tools: Optional[List[Dict[str, Any]]] = None,
tool_config: Optional[Dict[str, Any]] = None, tool_config: Optional[Dict[str, Any]] = None,
@@ -798,12 +798,12 @@ class GoogleLLMService(LLMService):
model: Model name to use. model: Model name to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleLLMSettings(model=...)`` instead. Use ``settings=GoogleLLMService.Settings(model=...)`` instead.
params: Optional model parameters for inference. params: Optional model parameters for inference.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleLLMSettings(...)`` instead. Use ``settings=GoogleLLMService.Settings(...)`` instead.
settings: Runtime-updatable settings for this service. When both settings: Runtime-updatable settings for this service. When both
deprecated parameters and *settings* are provided, *settings* deprecated parameters and *settings* are provided, *settings*
@@ -811,14 +811,14 @@ class GoogleLLMService(LLMService):
system_instruction: System instruction/prompt for the model. system_instruction: System instruction/prompt for the model.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleLLMSettings(system_instruction=...)`` instead. Use ``settings=GoogleLLMService.Settings(system_instruction=...)`` instead.
tools: List of available tools/functions. tools: List of available tools/functions.
tool_config: Configuration for tool usage. tool_config: Configuration for tool usage.
http_options: HTTP options for the client. http_options: HTTP options for the client.
**kwargs: Additional arguments passed to parent class. **kwargs: Additional arguments passed to parent class.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GoogleLLMSettings( default_settings = self.Settings(
model="gemini-2.5-flash", model="gemini-2.5-flash",
system_instruction=None, system_instruction=None,
max_tokens=4096, max_tokens=4096,
@@ -836,15 +836,15 @@ class GoogleLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", GoogleLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if system_instruction is not None: if system_instruction is not None:
_warn_deprecated_param("system_instruction", GoogleLLMSettings, "system_instruction") _warn_deprecated_param("system_instruction", self.Settings, "system_instruction")
default_settings.system_instruction = system_instruction default_settings.system_instruction = system_instruction
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", GoogleLLMSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.max_tokens = params.max_tokens default_settings.max_tokens = params.max_tokens
default_settings.temperature = params.temperature default_settings.temperature = params.temperature

View File

@@ -28,13 +28,13 @@ from loguru import logger
from pipecat.frames.frames import LLMTextFrame from pipecat.frames.frames import LLMTextFrame
from pipecat.metrics.metrics import LLMTokenUsage from pipecat.metrics.metrics import LLMTokenUsage
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class GoogleOpenAILLMSettings(OpenAILLMSettings): class GoogleOpenAILLMSettings(BaseOpenAILLMService.Settings):
"""Settings for GoogleLLMOpenAIBetaService.""" """Settings for GoogleLLMOpenAIBetaService."""
pass pass
@@ -59,7 +59,7 @@ class GoogleLLMOpenAIBetaService(OpenAILLMService):
""" """
Settings = GoogleOpenAILLMSettings Settings = GoogleOpenAILLMSettings
_settings: GoogleOpenAILLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -67,7 +67,7 @@ class GoogleLLMOpenAIBetaService(OpenAILLMService):
api_key: str, api_key: str,
base_url: str = "https://generativelanguage.googleapis.com/v1beta/openai/", base_url: str = "https://generativelanguage.googleapis.com/v1beta/openai/",
model: Optional[str] = None, model: Optional[str] = None,
settings: Optional[GoogleOpenAILLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Google LLM service. """Initialize the Google LLM service.
@@ -78,7 +78,7 @@ class GoogleLLMOpenAIBetaService(OpenAILLMService):
model: Google model name to use (e.g., "gemini-2.0-flash"). model: Google model name to use (e.g., "gemini-2.0-flash").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=GoogleLLMOpenAIBetaService.Settings(model=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -96,11 +96,11 @@ class GoogleLLMOpenAIBetaService(OpenAILLMService):
) )
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GoogleOpenAILLMSettings(model="gemini-2.0-flash") default_settings = self.Settings(model="gemini-2.0-flash")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", GoogleOpenAILLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -415,7 +415,7 @@ class GoogleSTTService(STTService):
""" """
Settings = GoogleSTTSettings Settings = GoogleSTTSettings
_settings: GoogleSTTSettings _settings: Settings
# Google Cloud's STT service has a connection time limit of 5 minutes per stream. # Google Cloud's STT service has a connection time limit of 5 minutes per stream.
# They've shared an "endless streaming" example that guided this implementation: # They've shared an "endless streaming" example that guided this implementation:
@@ -427,7 +427,7 @@ class GoogleSTTService(STTService):
"""Configuration parameters for Google Speech-to-Text. """Configuration parameters for Google Speech-to-Text.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleSTTSettings(...)`` instead. Use ``settings=GoogleSTTService.Settings(...)`` instead.
Parameters: Parameters:
languages: Single language or list of recognition languages. First language is primary. languages: Single language or list of recognition languages. First language is primary.
@@ -488,7 +488,7 @@ class GoogleSTTService(STTService):
location: str = "global", location: str = "global",
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[GoogleSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = GOOGLE_TTFS_P99, ttfs_p99_latency: Optional[float] = GOOGLE_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -502,7 +502,7 @@ class GoogleSTTService(STTService):
params: Configuration parameters for the service. params: Configuration parameters for the service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleSTTSettings(...)`` instead. Use ``settings=GoogleSTTService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
``params``, ``settings`` values take precedence. ``params``, ``settings`` values take precedence.
@@ -511,7 +511,7 @@ class GoogleSTTService(STTService):
**kwargs: Additional arguments passed to STTService. **kwargs: Additional arguments passed to STTService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GoogleSTTSettings( default_settings = self.Settings(
language=None, language=None,
languages=[Language.EN_US], languages=[Language.EN_US],
language_codes=None, language_codes=None,
@@ -531,7 +531,7 @@ class GoogleSTTService(STTService):
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", GoogleSTTSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.languages = list(params.language_list) default_settings.languages = list(params.language_list)
default_settings.model = params.model default_settings.model = params.model
@@ -655,7 +655,7 @@ class GoogleSTTService(STTService):
"""Update the service's recognition languages. """Update the service's recognition languages.
.. deprecated:: 0.0.104 .. deprecated:: 0.0.104
Use ``STTUpdateSettingsFrame`` with ``GoogleSTTSettings(languages=...)`` Use ``STTUpdateSettingsFrame`` with ``GoogleSTTService.Settings(languages=...)``
instead. instead.
Args: Args:
@@ -665,13 +665,13 @@ class GoogleSTTService(STTService):
warnings.simplefilter("always") warnings.simplefilter("always")
warnings.warn( warnings.warn(
"set_languages() is deprecated. Use STTUpdateSettingsFrame with " "set_languages() is deprecated. Use STTUpdateSettingsFrame with "
"GoogleSTTSettings(languages=...) instead.", "self.Settings(languages=...) instead.",
DeprecationWarning, DeprecationWarning,
) )
logger.debug(f"Switching STT languages to: {languages}") logger.debug(f"Switching STT languages to: {languages}")
await self._update_settings(GoogleSTTSettings(languages=list(languages))) await self._update_settings(self.Settings(languages=list(languages)))
async def _update_settings(self, delta: GoogleSTTSettings) -> dict[str, Any]: async def _update_settings(self, delta: Settings) -> dict[str, Any]:
"""Apply settings delta and reconnect if anything changed. """Apply settings delta and reconnect if anything changed.
Handles ``language`` from base ``set_language`` by converting it to Handles ``language`` from base ``set_language`` by converting it to
@@ -698,8 +698,8 @@ class GoogleSTTService(STTService):
with warnings.catch_warnings(): with warnings.catch_warnings():
warnings.simplefilter("always") warnings.simplefilter("always")
warnings.warn( warnings.warn(
"GoogleSTTSettings.language_codes is deprecated. " "self.Settings.language_codes is deprecated. "
"Use GoogleSTTSettings.languages (List[Language]) instead.", "Use self.Settings.languages (List[Language]) instead.",
DeprecationWarning, DeprecationWarning,
stacklevel=2, stacklevel=2,
) )
@@ -756,7 +756,7 @@ class GoogleSTTService(STTService):
"""Update service options dynamically. """Update service options dynamically.
.. deprecated:: .. deprecated::
Use ``STTUpdateSettingsFrame`` with ``GoogleSTTSettings(...)`` Use ``STTUpdateSettingsFrame`` with ``GoogleSTTService.Settings(...)``
instead. instead.
Args: Args:
@@ -780,11 +780,11 @@ class GoogleSTTService(STTService):
warnings.simplefilter("always") warnings.simplefilter("always")
warnings.warn( warnings.warn(
"update_options() is deprecated. Use STTUpdateSettingsFrame with " "update_options() is deprecated. Use STTUpdateSettingsFrame with "
"GoogleSTTSettings(...) instead.", "self.Settings(...) instead.",
DeprecationWarning, DeprecationWarning,
) )
# Build a settings delta from the provided options # Build a settings delta from the provided options
delta = GoogleSTTSettings() delta = self.Settings()
if languages is not None: if languages is not None:
delta.languages = list(languages) delta.languages = list(languages)

View File

@@ -523,7 +523,7 @@ class GoogleTTSSettings(TTSSettings):
#: .. deprecated:: 0.0.105 #: .. deprecated:: 0.0.105
#: Use ``GoogleTTSSettings`` instead. #: Use ``GoogleTTSService.Settings`` instead.
GoogleStreamTTSSettings = GoogleTTSSettings GoogleStreamTTSSettings = GoogleTTSSettings
@@ -559,13 +559,13 @@ class GoogleHttpTTSService(TTSService):
""" """
Settings = GoogleHttpTTSSettings Settings = GoogleHttpTTSSettings
_settings: GoogleHttpTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Google HTTP TTS voice customization. """Input parameters for Google HTTP TTS voice customization.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``GoogleHttpTTSSettings`` directly via the ``settings`` parameter instead. Use ``GoogleHttpTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
pitch: Voice pitch adjustment (e.g., "+2st", "-50%"). pitch: Voice pitch adjustment (e.g., "+2st", "-50%").
@@ -596,7 +596,7 @@ class GoogleHttpTTSService(TTSService):
voice_id: Optional[str] = None, voice_id: Optional[str] = None,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[GoogleHttpTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initializes the Google HTTP TTS service. """Initializes the Google HTTP TTS service.
@@ -608,20 +608,20 @@ class GoogleHttpTTSService(TTSService):
voice_id: Google TTS voice identifier (e.g., "en-US-Standard-A"). voice_id: Google TTS voice identifier (e.g., "en-US-Standard-A").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleHttpTTSSettings(voice=...)`` instead. Use ``settings=GoogleHttpTTSService.Settings(voice=...)`` instead.
sample_rate: Audio sample rate in Hz. If None, uses default. sample_rate: Audio sample rate in Hz. If None, uses default.
params: Voice customization parameters including pitch, rate, volume, etc. params: Voice customization parameters including pitch, rate, volume, etc.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleHttpTTSSettings(...)`` instead. Use ``settings=GoogleHttpTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to parent TTSService. **kwargs: Additional arguments passed to parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GoogleHttpTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice="en-US-Chirp3-HD-Charon", voice="en-US-Chirp3-HD-Charon",
language="en-US", language="en-US",
@@ -636,12 +636,12 @@ class GoogleHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", GoogleHttpTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", GoogleHttpTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.pitch is not None: if params.pitch is not None:
default_settings.pitch = params.pitch default_settings.pitch = params.pitch
@@ -747,7 +747,7 @@ class GoogleHttpTTSService(TTSService):
Args: Args:
delta: Settings delta. Can include 'speaking_rate' (float). delta: Settings delta. Can include 'speaking_rate' (float).
""" """
if isinstance(delta, GoogleHttpTTSSettings) and is_given(delta.speaking_rate): if isinstance(delta, self.Settings) and is_given(delta.speaking_rate):
rate_value = float(delta.speaking_rate) rate_value = float(delta.speaking_rate)
if not (0.25 <= rate_value <= 2.0): if not (0.25 <= rate_value <= 2.0):
logger.warning( logger.warning(
@@ -1022,13 +1022,13 @@ class GoogleTTSService(GoogleBaseTTSService):
""" """
Settings = GoogleTTSSettings Settings = GoogleTTSSettings
_settings: GoogleTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Google streaming TTS configuration. """Input parameters for Google streaming TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``GoogleTTSSettings`` directly via the ``settings`` parameter instead. Use ``GoogleTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
language: Language for synthesis. Defaults to English. language: Language for synthesis. Defaults to English.
@@ -1048,7 +1048,7 @@ class GoogleTTSService(GoogleBaseTTSService):
voice_cloning_key: Optional[str] = None, voice_cloning_key: Optional[str] = None,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[GoogleTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initializes the Google streaming TTS service. """Initializes the Google streaming TTS service.
@@ -1060,21 +1060,21 @@ class GoogleTTSService(GoogleBaseTTSService):
voice_id: Google TTS voice identifier (e.g., "en-US-Chirp3-HD-Charon"). voice_id: Google TTS voice identifier (e.g., "en-US-Chirp3-HD-Charon").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleTTSSettings(voice=...)`` instead. Use ``settings=GoogleTTSService.Settings(voice=...)`` instead.
voice_cloning_key: The voice cloning key for Chirp 3 custom voices. voice_cloning_key: The voice cloning key for Chirp 3 custom voices.
sample_rate: Audio sample rate in Hz. If None, uses default. sample_rate: Audio sample rate in Hz. If None, uses default.
params: Language configuration parameters. params: Language configuration parameters.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleTTSSettings(...)`` instead. Use ``settings=GoogleTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to parent TTSService. **kwargs: Additional arguments passed to parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GoogleTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice="en-US-Chirp3-HD-Charon", voice="en-US-Chirp3-HD-Charon",
language="en-US", language="en-US",
@@ -1083,12 +1083,12 @@ class GoogleTTSService(GoogleBaseTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", GoogleTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", GoogleTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = self.language_to_service_language(params.language) default_settings.language = self.language_to_service_language(params.language)
@@ -1119,7 +1119,7 @@ class GoogleTTSService(GoogleBaseTTSService):
Args: Args:
delta: Settings delta. Can include 'speaking_rate' (float). delta: Settings delta. Can include 'speaking_rate' (float).
""" """
if isinstance(delta, GoogleTTSSettings) and is_given(delta.speaking_rate): if isinstance(delta, self.Settings) and is_given(delta.speaking_rate):
rate_value = float(delta.speaking_rate) rate_value = float(delta.speaking_rate)
if not (0.25 <= rate_value <= 2.0): if not (0.25 <= rate_value <= 2.0):
logger.warning( logger.warning(
@@ -1201,7 +1201,7 @@ class GeminiTTSService(GoogleBaseTTSService):
""" """
Settings = GeminiTTSSettings Settings = GeminiTTSSettings
_settings: GeminiTTSSettings _settings: Settings
GOOGLE_SAMPLE_RATE = 24000 # Google TTS always outputs at 24kHz GOOGLE_SAMPLE_RATE = 24000 # Google TTS always outputs at 24kHz
@@ -1243,7 +1243,7 @@ class GeminiTTSService(GoogleBaseTTSService):
"""Input parameters for Gemini TTS configuration. """Input parameters for Gemini TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``GeminiTTSSettings`` directly via the ``settings`` parameter instead. Use ``GeminiTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
language: Language for synthesis. Defaults to English. language: Language for synthesis. Defaults to English.
@@ -1268,7 +1268,7 @@ class GeminiTTSService(GoogleBaseTTSService):
voice_id: Optional[str] = None, voice_id: Optional[str] = None,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[GeminiTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initializes the Gemini TTS service. """Initializes the Gemini TTS service.
@@ -1284,7 +1284,7 @@ class GeminiTTSService(GoogleBaseTTSService):
"gemini-2.5-flash-tts" or "gemini-2.5-pro-tts". "gemini-2.5-flash-tts" or "gemini-2.5-pro-tts".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GeminiTTSSettings(model=...)`` instead. Use ``settings=GeminiTTSService.Settings(model=...)`` instead.
credentials: JSON string containing Google Cloud service account credentials. credentials: JSON string containing Google Cloud service account credentials.
credentials_path: Path to Google Cloud service account JSON file. credentials_path: Path to Google Cloud service account JSON file.
@@ -1292,13 +1292,13 @@ class GeminiTTSService(GoogleBaseTTSService):
voice_id: Voice name from the available Gemini voices. voice_id: Voice name from the available Gemini voices.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GeminiTTSSettings(voice=...)`` instead. Use ``settings=GeminiTTSService.Settings(voice=...)`` instead.
sample_rate: Audio sample rate in Hz. If None, uses Google's default 24kHz. sample_rate: Audio sample rate in Hz. If None, uses Google's default 24kHz.
params: TTS configuration parameters. params: TTS configuration parameters.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GeminiTTSSettings(...)`` instead. Use ``settings=GeminiTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -1320,7 +1320,7 @@ class GeminiTTSService(GoogleBaseTTSService):
) )
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GeminiTTSSettings( default_settings = self.Settings(
model="gemini-2.5-flash-tts", model="gemini-2.5-flash-tts",
voice="Kore", voice="Kore",
language="en-US", language="en-US",
@@ -1331,10 +1331,10 @@ class GeminiTTSService(GoogleBaseTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", GeminiTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", GeminiTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if default_settings.voice not in self.AVAILABLE_VOICES: if default_settings.voice not in self.AVAILABLE_VOICES:
@@ -1344,7 +1344,7 @@ class GeminiTTSService(GoogleBaseTTSService):
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", GeminiTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = self.language_to_service_language(params.language) default_settings.language = self.language_to_service_language(params.language)

View File

@@ -21,7 +21,7 @@ from typing import Optional
from loguru import logger from loguru import logger
from pipecat.services.google.llm import GoogleLLMService, GoogleLLMSettings from pipecat.services.google.llm import GoogleLLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
try: try:
@@ -41,7 +41,7 @@ except ModuleNotFoundError as e:
@dataclass @dataclass
class GoogleVertexLLMSettings(GoogleLLMSettings): class GoogleVertexLLMSettings(GoogleLLMService.Settings):
"""Settings for GoogleVertexLLMService.""" """Settings for GoogleVertexLLMService."""
pass pass
@@ -60,7 +60,7 @@ class GoogleVertexLLMService(GoogleLLMService):
""" """
Settings = GoogleVertexLLMSettings Settings = GoogleVertexLLMSettings
_settings: GoogleVertexLLMSettings _settings: Settings
class InputParams(GoogleLLMService.InputParams): class InputParams(GoogleLLMService.InputParams):
"""Input parameters specific to Vertex AI. """Input parameters specific to Vertex AI.
@@ -115,7 +115,7 @@ class GoogleVertexLLMService(GoogleLLMService):
location: Optional[str] = None, location: Optional[str] = None,
project_id: Optional[str] = None, project_id: Optional[str] = None,
params: Optional[GoogleLLMService.InputParams] = None, params: Optional[GoogleLLMService.InputParams] = None,
settings: Optional[GoogleVertexLLMSettings] = None, settings: Optional[Settings] = None,
system_instruction: Optional[str] = None, system_instruction: Optional[str] = None,
tools: Optional[list] = None, tools: Optional[list] = None,
tool_config: Optional[dict] = None, tool_config: Optional[dict] = None,
@@ -130,14 +130,14 @@ class GoogleVertexLLMService(GoogleLLMService):
model: Model identifier (e.g., "gemini-2.5-flash"). model: Model identifier (e.g., "gemini-2.5-flash").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleLLMSettings(model=...)`` instead. Use ``settings=GoogleVertexLLMService.Settings(model=...)`` instead.
location: GCP region for Vertex AI endpoint (e.g., "us-east4"). location: GCP region for Vertex AI endpoint (e.g., "us-east4").
project_id: Google Cloud project ID. project_id: Google Cloud project ID.
params: Input parameters for the model. params: Input parameters for the model.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleLLMSettings(...)`` instead. Use ``settings=GoogleVertexLLMService.Settings(...)`` instead.
settings: Runtime-updatable settings for this service. When both settings: Runtime-updatable settings for this service. When both
deprecated parameters and *settings* are provided, *settings* deprecated parameters and *settings* are provided, *settings*
@@ -145,7 +145,7 @@ class GoogleVertexLLMService(GoogleLLMService):
system_instruction: System instruction/prompt for the model. system_instruction: System instruction/prompt for the model.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GoogleVertexLLMSettings(system_instruction=...)`` instead. Use ``settings=GoogleVertexLLMService.Settings(system_instruction=...)`` instead.
tools: List of available tools/functions. tools: List of available tools/functions.
tool_config: Configuration for tool usage. tool_config: Configuration for tool usage.
http_options: HTTP options for the client. http_options: HTTP options for the client.
@@ -197,7 +197,7 @@ class GoogleVertexLLMService(GoogleLLMService):
self._location = location self._location = location
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GoogleVertexLLMSettings( default_settings = self.Settings(
model="gemini-2.5-flash", model="gemini-2.5-flash",
system_instruction=None, system_instruction=None,
max_tokens=4096, max_tokens=4096,
@@ -215,17 +215,15 @@ class GoogleVertexLLMService(GoogleLLMService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", GoogleVertexLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if system_instruction is not None: if system_instruction is not None:
_warn_deprecated_param( _warn_deprecated_param("system_instruction", self.Settings, "system_instruction")
"system_instruction", GoogleVertexLLMSettings, "system_instruction"
)
default_settings.system_instruction = system_instruction default_settings.system_instruction = system_instruction
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", GoogleVertexLLMSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.max_tokens = params.max_tokens default_settings.max_tokens = params.max_tokens
default_settings.temperature = params.temperature default_settings.temperature = params.temperature

View File

@@ -89,13 +89,13 @@ class GradiumSTTService(WebsocketSTTService):
""" """
Settings = GradiumSTTSettings Settings = GradiumSTTSettings
_settings: GradiumSTTSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for Gradium STT API. """Configuration parameters for Gradium STT API.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GradiumSTTSettings(...)`` instead. Use ``settings=GradiumSTTService.Settings(...)`` instead.
Parameters: Parameters:
language: Expected language of the audio (e.g., "en", "es", "fr"). language: Expected language of the audio (e.g., "en", "es", "fr").
@@ -117,7 +117,7 @@ class GradiumSTTService(WebsocketSTTService):
api_endpoint_base_url: str = "wss://eu.api.gradium.ai/api/speech/asr", api_endpoint_base_url: str = "wss://eu.api.gradium.ai/api/speech/asr",
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
json_config: Optional[str] = None, json_config: Optional[str] = None,
settings: Optional[GradiumSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = GRADIUM_TTFS_P99, ttfs_p99_latency: Optional[float] = GRADIUM_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -129,7 +129,7 @@ class GradiumSTTService(WebsocketSTTService):
params: Configuration parameters for language and delay settings. params: Configuration parameters for language and delay settings.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GradiumSTTSettings(...)`` instead. Use ``settings=GradiumSTTService.Settings(...)`` instead.
json_config: Optional JSON configuration string for additional model settings. json_config: Optional JSON configuration string for additional model settings.
@@ -152,7 +152,7 @@ class GradiumSTTService(WebsocketSTTService):
) )
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GradiumSTTSettings( default_settings = self.Settings(
model=None, model=None,
language=None, language=None,
delay_in_frames=None, delay_in_frames=None,
@@ -162,7 +162,7 @@ class GradiumSTTService(WebsocketSTTService):
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", GradiumSTTSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = params.language default_settings.language = params.language
if params.delay_in_frames is not None: if params.delay_in_frames is not None:
@@ -207,7 +207,7 @@ class GradiumSTTService(WebsocketSTTService):
"""Apply a settings delta, sync params, and reconnect. """Apply a settings delta, sync params, and reconnect.
Args: Args:
delta: A :class:`STTSettings` (or ``GradiumSTTSettings``) delta. delta: A :class:`STTSettings` (or ``GradiumSTTService.Settings``) delta.
Returns: Returns:
Dict mapping changed field names to their previous values. Dict mapping changed field names to their previous values.

View File

@@ -48,13 +48,13 @@ class GradiumTTSService(WebsocketTTSService):
"""Text-to-Speech service using Gradium's websocket API.""" """Text-to-Speech service using Gradium's websocket API."""
Settings = GradiumTTSSettings Settings = GradiumTTSSettings
_settings: GradiumTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for Gradium TTS service. """Configuration parameters for Gradium TTS service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``GradiumTTSSettings`` directly via the ``settings`` parameter instead. Use ``GradiumTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
temp: Temperature to be used for generation, defaults to 0.6. temp: Temperature to be used for generation, defaults to 0.6.
@@ -71,7 +71,7 @@ class GradiumTTSService(WebsocketTTSService):
model: Optional[str] = None, model: Optional[str] = None,
json_config: Optional[str] = None, json_config: Optional[str] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[GradiumTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Gradium TTS service. """Initialize the Gradium TTS service.
@@ -81,26 +81,26 @@ class GradiumTTSService(WebsocketTTSService):
voice_id: the voice identifier. voice_id: the voice identifier.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GradiumTTSSettings(voice=...)`` instead. Use ``settings=GradiumTTSService.Settings(voice=...)`` instead.
url: Gradium websocket API endpoint. url: Gradium websocket API endpoint.
model: Model ID to use for synthesis. model: Model ID to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GradiumTTSSettings(model=...)`` instead. Use ``settings=GradiumTTSService.Settings(model=...)`` instead.
json_config: Optional JSON configuration string for additional model settings. json_config: Optional JSON configuration string for additional model settings.
params: Additional configuration parameters. params: Additional configuration parameters.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GradiumTTSSettings(...)`` instead. Use ``settings=GradiumTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to parent class. **kwargs: Additional arguments passed to parent class.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GradiumTTSSettings( default_settings = self.Settings(
model="default", model="default",
voice="YTpq7expH9539ERJ", voice="YTpq7expH9539ERJ",
language=None, language=None,
@@ -108,15 +108,15 @@ class GradiumTTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", GradiumTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", GradiumTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", GradiumTTSSettings) _warn_deprecated_param("params", self.Settings)
# Note: params.temp has no corresponding settings field # Note: params.temp has no corresponding settings field
# 4. Apply settings delta (canonical API, always wins) # 4. Apply settings delta (canonical API, always wins)
@@ -153,7 +153,7 @@ class GradiumTTSService(WebsocketTTSService):
"""Apply a settings delta and reconnect if voice changed. """Apply a settings delta and reconnect if voice changed.
Args: Args:
delta: A :class:`TTSSettings` (or ``GradiumTTSSettings``) delta. delta: A :class:`TTSSettings` (or ``GradiumTTSService.Settings``) delta.
Returns: Returns:
Dict mapping changed field names to their previous values. Dict mapping changed field names to their previous values.

View File

@@ -23,7 +23,7 @@ from pipecat.processors.aggregators.llm_response import (
LLMUserAggregatorParams, LLMUserAggregatorParams,
) )
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import ( from pipecat.services.openai.llm import (
OpenAIAssistantContextAggregator, OpenAIAssistantContextAggregator,
OpenAILLMService, OpenAILLMService,
@@ -71,7 +71,7 @@ class GrokContextAggregatorPair:
@dataclass @dataclass
class GrokLLMSettings(OpenAILLMSettings): class GrokLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for GrokLLMService.""" """Settings for GrokLLMService."""
pass pass
@@ -87,7 +87,7 @@ class GrokLLMService(OpenAILLMService):
""" """
Settings = GrokLLMSettings Settings = GrokLLMSettings
_settings: GrokLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -95,7 +95,7 @@ class GrokLLMService(OpenAILLMService):
api_key: str, api_key: str,
base_url: str = "https://api.x.ai/v1", base_url: str = "https://api.x.ai/v1",
model: Optional[str] = None, model: Optional[str] = None,
settings: Optional[GrokLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the GrokLLMService with API key and model. """Initialize the GrokLLMService with API key and model.
@@ -106,18 +106,18 @@ class GrokLLMService(OpenAILLMService):
model: The model identifier to use. Defaults to "grok-3-beta". model: The model identifier to use. Defaults to "grok-3-beta".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=GrokLLMService.Settings(model=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GrokLLMSettings(model="grok-3-beta") default_settings = self.Settings(model="grok-3-beta")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", GrokLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -109,7 +109,7 @@ class GrokRealtimeLLMSettings(LLMSettings):
# -- Bidirectional sync helpers ------------------------------------------ # -- Bidirectional sync helpers ------------------------------------------
@staticmethod @staticmethod
def _sync_top_level_to_sp(settings: "GrokRealtimeLLMSettings"): def _sync_top_level_to_sp(settings: "GrokRealtimeLLMService.Settings"):
"""Push top-level ``system_instruction`` into ``session_properties``.""" """Push top-level ``system_instruction`` into ``session_properties``."""
if not is_given(settings.session_properties): if not is_given(settings.session_properties):
return return
@@ -119,7 +119,7 @@ class GrokRealtimeLLMSettings(LLMSettings):
# -- apply_update override ----------------------------------------------- # -- apply_update override -----------------------------------------------
def apply_update(self, delta: "GrokRealtimeLLMSettings") -> Dict[str, Any]: def apply_update(self, delta: "GrokRealtimeLLMService.Settings") -> Dict[str, Any]:
"""Merge a delta, keeping ``system_instruction`` in sync with SP. """Merge a delta, keeping ``system_instruction`` in sync with SP.
When the delta contains ``session_properties``, it **replaces** the When the delta contains ``session_properties``, it **replaces** the
@@ -151,8 +151,8 @@ class GrokRealtimeLLMSettings(LLMSettings):
@classmethod @classmethod
def from_mapping( def from_mapping(
cls: Type["GrokRealtimeLLMSettings"], settings: Mapping[str, Any] cls: Type["GrokRealtimeLLMService.Settings"], settings: Mapping[str, Any]
) -> "GrokRealtimeLLMSettings": ) -> "GrokRealtimeLLMService.Settings":
"""Build a delta from a plain dict, routing SP keys into ``session_properties``. """Build a delta from a plain dict, routing SP keys into ``session_properties``.
Keys that correspond to ``SessionProperties`` fields are collected into Keys that correspond to ``SessionProperties`` fields are collected into
@@ -203,7 +203,7 @@ class GrokRealtimeLLMService(LLMService):
""" """
Settings = GrokRealtimeLLMSettings Settings = GrokRealtimeLLMSettings
_settings: GrokRealtimeLLMSettings _settings: Settings
# Use the Grok-specific adapter # Use the Grok-specific adapter
adapter_class = GrokRealtimeLLMAdapter adapter_class = GrokRealtimeLLMAdapter
@@ -214,7 +214,7 @@ class GrokRealtimeLLMService(LLMService):
api_key: str, api_key: str,
base_url: str = "wss://api.x.ai/v1/realtime", base_url: str = "wss://api.x.ai/v1/realtime",
session_properties: Optional[events.SessionProperties] = None, session_properties: Optional[events.SessionProperties] = None,
settings: Optional[GrokRealtimeLLMSettings] = None, settings: Optional[Settings] = None,
start_audio_paused: bool = False, start_audio_paused: bool = False,
**kwargs, **kwargs,
): ):
@@ -228,7 +228,7 @@ class GrokRealtimeLLMService(LLMService):
If None, uses default SessionProperties with voice "Ara". If None, uses default SessionProperties with voice "Ara".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GrokRealtimeLLMSettings(session_properties=...)`` Use ``settings=GrokRealtimeLLMService.Settings(session_properties=...)``
instead. instead.
To set a different voice, configure it in session_properties: To set a different voice, configure it in session_properties:
@@ -241,7 +241,7 @@ class GrokRealtimeLLMService(LLMService):
**kwargs: Additional arguments passed to parent LLMService. **kwargs: Additional arguments passed to parent LLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GrokRealtimeLLMSettings( default_settings = self.Settings(
model=None, model=None,
system_instruction=None, system_instruction=None,
temperature=None, temperature=None,
@@ -260,7 +260,7 @@ class GrokRealtimeLLMService(LLMService):
if session_properties is not None: if session_properties is not None:
_warn_deprecated_param( _warn_deprecated_param(
"session_properties", "session_properties",
GrokRealtimeLLMSettings, self.Settings,
"session_properties", "session_properties",
) )
default_settings.session_properties = session_properties default_settings.session_properties = session_properties
@@ -269,7 +269,7 @@ class GrokRealtimeLLMService(LLMService):
default_settings.system_instruction = session_properties.instructions default_settings.system_instruction = session_properties.instructions
# Sync top-level system_instruction back into session_properties # Sync top-level system_instruction back into session_properties
GrokRealtimeLLMSettings._sync_top_level_to_sp(default_settings) self.Settings._sync_top_level_to_sp(default_settings)
# 3. Apply settings delta (canonical API, always wins) # 3. Apply settings delta (canonical API, always wins)
if settings is not None: if settings is not None:

View File

@@ -11,13 +11,13 @@ from typing import Optional
from loguru import logger from loguru import logger
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class GroqLLMSettings(OpenAILLMSettings): class GroqLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for GroqLLMService.""" """Settings for GroqLLMService."""
pass pass
@@ -31,7 +31,7 @@ class GroqLLMService(OpenAILLMService):
""" """
Settings = GroqLLMSettings Settings = GroqLLMSettings
_settings: GroqLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -39,7 +39,7 @@ class GroqLLMService(OpenAILLMService):
api_key: str, api_key: str,
base_url: str = "https://api.groq.com/openai/v1", base_url: str = "https://api.groq.com/openai/v1",
model: Optional[str] = None, model: Optional[str] = None,
settings: Optional[GroqLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize Groq LLM service. """Initialize Groq LLM service.
@@ -50,18 +50,18 @@ class GroqLLMService(OpenAILLMService):
model: The model identifier to use. Defaults to "llama-3.3-70b-versatile". model: The model identifier to use. Defaults to "llama-3.3-70b-versatile".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=GroqLLMService.Settings(model=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GroqLLMSettings(model="llama-3.3-70b-versatile") default_settings = self.Settings(model="llama-3.3-70b-versatile")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", GroqLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -13,14 +13,13 @@ from pipecat.services.settings import _warn_deprecated_param
from pipecat.services.stt_latency import GROQ_TTFS_P99 from pipecat.services.stt_latency import GROQ_TTFS_P99
from pipecat.services.whisper.base_stt import ( from pipecat.services.whisper.base_stt import (
BaseWhisperSTTService, BaseWhisperSTTService,
BaseWhisperSTTSettings,
Transcription, Transcription,
) )
from pipecat.transcriptions.language import Language from pipecat.transcriptions.language import Language
@dataclass @dataclass
class GroqSTTSettings(BaseWhisperSTTSettings): class GroqSTTSettings(BaseWhisperSTTService.Settings):
"""Settings for the Groq STT service. """Settings for the Groq STT service.
Parameters: Parameters:
@@ -38,7 +37,7 @@ class GroqSTTService(BaseWhisperSTTService):
""" """
Settings = GroqSTTSettings Settings = GroqSTTSettings
_settings: GroqSTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -49,7 +48,7 @@ class GroqSTTService(BaseWhisperSTTService):
language: Optional[Language] = None, language: Optional[Language] = None,
prompt: Optional[str] = None, prompt: Optional[str] = None,
temperature: Optional[float] = None, temperature: Optional[float] = None,
settings: Optional[GroqSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = GROQ_TTFS_P99, ttfs_p99_latency: Optional[float] = GROQ_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -59,24 +58,24 @@ class GroqSTTService(BaseWhisperSTTService):
model: Whisper model to use. model: Whisper model to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GroqSTTSettings(model=...)`` instead. Use ``settings=GroqSTTService.Settings(model=...)`` instead.
api_key: Groq API key. Defaults to None. api_key: Groq API key. Defaults to None.
base_url: API base URL. Defaults to "https://api.groq.com/openai/v1". base_url: API base URL. Defaults to "https://api.groq.com/openai/v1".
language: Language of the audio input. language: Language of the audio input.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GroqSTTSettings(language=...)`` instead. Use ``settings=GroqSTTService.Settings(language=...)`` instead.
prompt: Optional text to guide the model's style or continue a previous segment. prompt: Optional text to guide the model's style or continue a previous segment.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GroqSTTSettings(prompt=...)`` instead. Use ``settings=GroqSTTService.Settings(prompt=...)`` instead.
temperature: Optional sampling temperature between 0 and 1. temperature: Optional sampling temperature between 0 and 1.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GroqSTTSettings(temperature=...)`` instead. Use ``settings=GroqSTTService.Settings(temperature=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -85,7 +84,7 @@ class GroqSTTService(BaseWhisperSTTService):
**kwargs: Additional arguments passed to BaseWhisperSTTService. **kwargs: Additional arguments passed to BaseWhisperSTTService.
""" """
# --- 1. Hardcoded defaults --- # --- 1. Hardcoded defaults ---
default_settings = GroqSTTSettings( default_settings = self.Settings(
model="whisper-large-v3-turbo", model="whisper-large-v3-turbo",
language=self.language_to_service_language(Language.EN), language=self.language_to_service_language(Language.EN),
prompt=None, prompt=None,
@@ -94,16 +93,16 @@ class GroqSTTService(BaseWhisperSTTService):
# --- 2. Deprecated direct-arg overrides --- # --- 2. Deprecated direct-arg overrides ---
if model is not None: if model is not None:
_warn_deprecated_param("model", GroqSTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if language is not None: if language is not None:
_warn_deprecated_param("language", GroqSTTSettings, "language") _warn_deprecated_param("language", self.Settings, "language")
default_settings.language = self.language_to_service_language(language) default_settings.language = self.language_to_service_language(language)
if prompt is not None: if prompt is not None:
_warn_deprecated_param("prompt", GroqSTTSettings, "prompt") _warn_deprecated_param("prompt", self.Settings, "prompt")
default_settings.prompt = prompt default_settings.prompt = prompt
if temperature is not None: if temperature is not None:
_warn_deprecated_param("temperature", GroqSTTSettings, "temperature") _warn_deprecated_param("temperature", self.Settings, "temperature")
default_settings.temperature = temperature default_settings.temperature = temperature
# --- 3. (no params object for this service) --- # --- 3. (no params object for this service) ---

View File

@@ -52,13 +52,13 @@ class GroqTTSService(TTSService):
""" """
Settings = GroqTTSSettings Settings = GroqTTSSettings
_settings: GroqTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Groq TTS configuration. """Input parameters for Groq TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GroqTTSSettings(...)`` instead. Use ``settings=GroqTTSService.Settings(...)`` instead.
Parameters: Parameters:
language: Language for speech synthesis. Defaults to English. language: Language for speech synthesis. Defaults to English.
@@ -79,7 +79,7 @@ class GroqTTSService(TTSService):
model_name: Optional[str] = None, model_name: Optional[str] = None,
voice_id: Optional[str] = None, voice_id: Optional[str] = None,
sample_rate: Optional[int] = GROQ_SAMPLE_RATE, sample_rate: Optional[int] = GROQ_SAMPLE_RATE,
settings: Optional[GroqTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize Groq TTS service. """Initialize Groq TTS service.
@@ -90,17 +90,17 @@ class GroqTTSService(TTSService):
params: Additional input parameters for voice customization. params: Additional input parameters for voice customization.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GroqTTSSettings(...)`` instead. Use ``settings=GroqTTSService.Settings(...)`` instead.
model_name: TTS model to use. model_name: TTS model to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GroqTTSSettings(model=...)`` instead. Use ``settings=GroqTTSService.Settings(model=...)`` instead.
voice_id: Voice identifier to use. voice_id: Voice identifier to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=GroqTTSSettings(voice=...)`` instead. Use ``settings=GroqTTSService.Settings(voice=...)`` instead.
sample_rate: Audio sample rate. Must be 48000 Hz for Groq TTS. sample_rate: Audio sample rate. Must be 48000 Hz for Groq TTS.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -111,7 +111,7 @@ class GroqTTSService(TTSService):
logger.warning(f"Groq TTS only supports {self.GROQ_SAMPLE_RATE}Hz sample rate. ") logger.warning(f"Groq TTS only supports {self.GROQ_SAMPLE_RATE}Hz sample rate. ")
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = GroqTTSSettings( default_settings = self.Settings(
model="canopylabs/orpheus-v1-english", model="canopylabs/orpheus-v1-english",
voice="autumn", voice="autumn",
language="en", language="en",
@@ -120,15 +120,15 @@ class GroqTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model_name is not None: if model_name is not None:
_warn_deprecated_param("model_name", GroqTTSSettings, "model") _warn_deprecated_param("model_name", self.Settings, "model")
default_settings.model = model_name default_settings.model = model_name
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", GroqTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", GroqTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = str(params.language) if params.language else "en" default_settings.language = str(params.language) if params.language else "en"
default_settings.speed = params.speed default_settings.speed = params.speed

View File

@@ -83,7 +83,7 @@ class HeyGenVideoService(AIService):
""" """
Settings = HeyGenVideoSettings Settings = HeyGenVideoSettings
_settings: HeyGenVideoSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -92,7 +92,7 @@ class HeyGenVideoService(AIService):
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
session_request: Optional[Union[LiveAvatarNewSessionRequest, NewSessionRequest]] = None, session_request: Optional[Union[LiveAvatarNewSessionRequest, NewSessionRequest]] = None,
service_type: Optional[ServiceType] = None, service_type: Optional[ServiceType] = None,
settings: Optional[HeyGenVideoSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
) -> None: ) -> None:
"""Initialize the HeyGen video service. """Initialize the HeyGen video service.

View File

@@ -79,13 +79,13 @@ class HumeTTSService(TTSService):
""" """
Settings = HumeTTSSettings Settings = HumeTTSSettings
_settings: HumeTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Optional synthesis parameters for Hume TTS. """Optional synthesis parameters for Hume TTS.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=HumeTTSSettings(...)`` instead. Use ``settings=HumeTTSService.Settings(...)`` instead.
Parameters: Parameters:
description: Natural-language acting directions (up to 100 characters). description: Natural-language acting directions (up to 100 characters).
@@ -104,7 +104,7 @@ class HumeTTSService(TTSService):
voice_id: Optional[str] = None, voice_id: Optional[str] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
sample_rate: Optional[int] = HUME_SAMPLE_RATE, sample_rate: Optional[int] = HUME_SAMPLE_RATE,
settings: Optional[HumeTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
) -> None: ) -> None:
"""Initialize the HumeTTSService. """Initialize the HumeTTSService.
@@ -114,12 +114,12 @@ class HumeTTSService(TTSService):
voice_id: ID of the voice to use. Only voice IDs are supported; voice names are not. voice_id: ID of the voice to use. Only voice IDs are supported; voice names are not.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=HumeTTSSettings(voice=...)`` instead. Use ``settings=HumeTTSService.Settings(voice=...)`` instead.
params: Optional synthesis controls (acting instructions, speed, trailing silence). params: Optional synthesis controls (acting instructions, speed, trailing silence).
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=HumeTTSSettings(...)`` instead. Use ``settings=HumeTTSService.Settings(...)`` instead.
sample_rate: Output sample rate for emitted PCM frames. Defaults to 48_000 (Hume). sample_rate: Output sample rate for emitted PCM frames. Defaults to 48_000 (Hume).
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -136,7 +136,7 @@ class HumeTTSService(TTSService):
) )
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = HumeTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice=None, voice=None,
language=None, # Not applicable here language=None, # Not applicable here
@@ -147,12 +147,12 @@ class HumeTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", HumeTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", HumeTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.description = params.description default_settings.description = params.description
default_settings.speed = params.speed default_settings.speed = params.speed
@@ -242,7 +242,7 @@ class HumeTTSService(TTSService):
"""Runtime updates via key/value pair. """Runtime updates via key/value pair.
.. deprecated:: 0.0.104 .. deprecated:: 0.0.104
Use ``TTSUpdateSettingsFrame(delta=HumeTTSSettings(...))`` instead. Use ``TTSUpdateSettingsFrame(delta=HumeTTSService.Settings(...))`` instead.
Args: Args:
key: The name of the setting to update. Recognized keys are: key: The name of the setting to update. Recognized keys are:
@@ -256,7 +256,7 @@ class HumeTTSService(TTSService):
warnings.simplefilter("always") warnings.simplefilter("always")
warnings.warn( warnings.warn(
"'update_setting' is deprecated, use " "'update_setting' is deprecated, use "
"'TTSUpdateSettingsFrame(delta=HumeTTSSettings(...))' instead.", "'TTSUpdateSettingsFrame(delta=self.Settings(...))' instead.",
DeprecationWarning, DeprecationWarning,
stacklevel=2, stacklevel=2,
) )
@@ -274,7 +274,7 @@ class HumeTTSService(TTSService):
kwargs["speed"] = None if value is None else float(value) kwargs["speed"] = None if value is None else float(value)
elif key_l == "trailing_silence": elif key_l == "trailing_silence":
kwargs["trailing_silence"] = None if value is None else float(value) kwargs["trailing_silence"] = None if value is None else float(value)
await self._update_settings(HumeTTSSettings(**kwargs)) await self._update_settings(self.Settings(**kwargs))
@traced_tts @traced_tts
async def run_tts(self, text: str, context_id: str) -> AsyncGenerator[Frame, None]: async def run_tts(self, text: str, context_id: str) -> AsyncGenerator[Frame, None]:

View File

@@ -101,13 +101,13 @@ class InworldHttpTTSService(TTSService):
""" """
Settings = InworldTTSSettings Settings = InworldTTSSettings
_settings: InworldTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Inworld TTS configuration. """Input parameters for Inworld TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``InworldTTSSettings`` directly via the ``settings`` parameter instead. Use ``InworldHttpTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
temperature: Temperature for speech synthesis. temperature: Temperature for speech synthesis.
@@ -131,7 +131,7 @@ class InworldHttpTTSService(TTSService):
encoding: str = "LINEAR16", encoding: str = "LINEAR16",
timestamp_transport_strategy: Optional[Literal["ASYNC", "SYNC"]] = "ASYNC", timestamp_transport_strategy: Optional[Literal["ASYNC", "SYNC"]] = "ASYNC",
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[InworldTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Inworld TTS service. """Initialize the Inworld TTS service.
@@ -142,12 +142,12 @@ class InworldHttpTTSService(TTSService):
voice_id: ID of the voice to use for synthesis. voice_id: ID of the voice to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=InworldTTSSettings(voice=...)`` instead. Use ``settings=InworldHttpTTSService.Settings(voice=...)`` instead.
model: ID of the model to use for synthesis. model: ID of the model to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=InworldTTSSettings(model=...)`` instead. Use ``settings=InworldHttpTTSService.Settings(model=...)`` instead.
streaming: Whether to use streaming mode. streaming: Whether to use streaming mode.
sample_rate: Audio sample rate in Hz. sample_rate: Audio sample rate in Hz.
@@ -157,14 +157,14 @@ class InworldHttpTTSService(TTSService):
params: Input parameters for Inworld TTS configuration. params: Input parameters for Inworld TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=InworldTTSSettings(...)`` instead. Use ``settings=InworldHttpTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to the parent class. **kwargs: Additional arguments passed to the parent class.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = InworldTTSSettings( default_settings = self.Settings(
model="inworld-tts-1.5-max", model="inworld-tts-1.5-max",
voice="Ashley", voice="Ashley",
language=None, language=None,
@@ -174,15 +174,15 @@ class InworldHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", InworldTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if model is not None: if model is not None:
_warn_deprecated_param("model", InworldTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", InworldTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.speaking_rate is not None: if params.speaking_rate is not None:
default_settings.speaking_rate = params.speaking_rate default_settings.speaking_rate = params.speaking_rate
@@ -489,13 +489,13 @@ class InworldTTSService(WebsocketTTSService):
""" """
Settings = InworldTTSSettings Settings = InworldTTSSettings
_settings: InworldTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Inworld WebSocket TTS configuration. """Input parameters for Inworld WebSocket TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``InworldTTSSettings`` directly via the ``settings`` parameter instead. Use ``InworldTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
temperature: Temperature for speech synthesis. temperature: Temperature for speech synthesis.
@@ -532,7 +532,7 @@ class InworldTTSService(WebsocketTTSService):
apply_text_normalization: Optional[str] = None, apply_text_normalization: Optional[str] = None,
timestamp_transport_strategy: Optional[Literal["ASYNC", "SYNC"]] = "ASYNC", timestamp_transport_strategy: Optional[Literal["ASYNC", "SYNC"]] = "ASYNC",
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[InworldTTSSettings] = None, settings: Optional[Settings] = None,
aggregate_sentences: Optional[bool] = None, aggregate_sentences: Optional[bool] = None,
text_aggregation_mode: Optional[TextAggregationMode] = None, text_aggregation_mode: Optional[TextAggregationMode] = None,
append_trailing_space: bool = True, append_trailing_space: bool = True,
@@ -545,12 +545,12 @@ class InworldTTSService(WebsocketTTSService):
voice_id: ID of the voice to use for synthesis. voice_id: ID of the voice to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=InworldTTSSettings(voice=...)`` instead. Use ``settings=InworldTTSService.Settings(voice=...)`` instead.
model: ID of the model to use for synthesis. model: ID of the model to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=InworldTTSSettings(model=...)`` instead. Use ``settings=InworldTTSService.Settings(model=...)`` instead.
url: URL of the Inworld WebSocket API. url: URL of the Inworld WebSocket API.
sample_rate: Audio sample rate in Hz. sample_rate: Audio sample rate in Hz.
@@ -564,7 +564,7 @@ class InworldTTSService(WebsocketTTSService):
params: Input parameters for Inworld WebSocket TTS configuration. params: Input parameters for Inworld WebSocket TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=InworldTTSSettings(...)`` instead. Use ``settings=InworldTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -582,7 +582,7 @@ class InworldTTSService(WebsocketTTSService):
auto_mode = True if aggregate_sentences is None else aggregate_sentences auto_mode = True if aggregate_sentences is None else aggregate_sentences
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = InworldTTSSettings( default_settings = self.Settings(
model="inworld-tts-1.5-max", model="inworld-tts-1.5-max",
voice="Ashley", voice="Ashley",
language=None, language=None,
@@ -592,17 +592,17 @@ class InworldTTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", InworldTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if model is not None: if model is not None:
_warn_deprecated_param("model", InworldTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
_buffer_max_delay_ms = None _buffer_max_delay_ms = None
_buffer_char_threshold = None _buffer_char_threshold = None
if params is not None: if params is not None:
_warn_deprecated_param("params", InworldTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.speaking_rate is not None: if params.speaking_rate is not None:
default_settings.speaking_rate = params.speaking_rate default_settings.speaking_rate = params.speaking_rate

View File

@@ -102,13 +102,13 @@ class KokoroTTSService(TTSService):
""" """
Settings = KokoroTTSSettings Settings = KokoroTTSSettings
_settings: KokoroTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Kokoro TTS configuration. """Input parameters for Kokoro TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``KokoroTTSSettings`` directly via the ``settings`` parameter instead. Use ``KokoroTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
language: Language to use for synthesis. language: Language to use for synthesis.
@@ -123,7 +123,7 @@ class KokoroTTSService(TTSService):
model_path: Optional[str] = None, model_path: Optional[str] = None,
voices_path: Optional[str] = None, voices_path: Optional[str] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[KokoroTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Kokoro TTS service. """Initialize the Kokoro TTS service.
@@ -132,14 +132,14 @@ class KokoroTTSService(TTSService):
voice_id: Voice identifier to use for synthesis. voice_id: Voice identifier to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=KokoroTTSSettings(voice=...)`` instead. Use ``settings=KokoroTTSService.Settings(voice=...)`` instead.
model_path: Path to the kokoro ONNX model file. Defaults to auto-downloaded file. model_path: Path to the kokoro ONNX model file. Defaults to auto-downloaded file.
voices_path: Path to the voices binary file. Defaults to auto-downloaded file. voices_path: Path to the voices binary file. Defaults to auto-downloaded file.
params: Configuration parameters for synthesis. params: Configuration parameters for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=KokoroTTSSettings(...)`` instead. Use ``settings=KokoroTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -147,7 +147,7 @@ class KokoroTTSService(TTSService):
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = KokoroTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice=None, voice=None,
language=language_to_kokoro_language(Language.EN), language=language_to_kokoro_language(Language.EN),
@@ -155,12 +155,12 @@ class KokoroTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", KokoroTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", KokoroTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = language_to_kokoro_language(params.language) default_settings.language = language_to_kokoro_language(params.language)

View File

@@ -89,7 +89,7 @@ class LmntTTSService(InterruptibleTTSService):
""" """
Settings = LmntTTSSettings Settings = LmntTTSSettings
_settings: LmntTTSSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -100,7 +100,7 @@ class LmntTTSService(InterruptibleTTSService):
language: Language = Language.EN, language: Language = Language.EN,
output_format: str = "pcm_s16le", output_format: str = "pcm_s16le",
model: Optional[str] = None, model: Optional[str] = None,
settings: Optional[LmntTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the LMNT TTS service. """Initialize the LMNT TTS service.
@@ -110,7 +110,7 @@ class LmntTTSService(InterruptibleTTSService):
voice_id: ID of the voice to use for synthesis. voice_id: ID of the voice to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=LmntTTSSettings(voice=...)`` instead. Use ``settings=LmntTTSService.Settings(voice=...)`` instead.
sample_rate: Audio sample rate. If None, uses default. sample_rate: Audio sample rate. If None, uses default.
language: Language for synthesis. Defaults to English. language: Language for synthesis. Defaults to English.
@@ -119,14 +119,14 @@ class LmntTTSService(InterruptibleTTSService):
model: TTS model to use. model: TTS model to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=LmntTTSSettings(model=...)`` instead. Use ``settings=LmntTTSService.Settings(model=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to parent InterruptibleTTSService. **kwargs: Additional arguments passed to parent InterruptibleTTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = LmntTTSSettings( default_settings = self.Settings(
model="aurora", model="aurora",
voice=None, voice=None,
language=self.language_to_service_language(language), language=self.language_to_service_language(language),
@@ -134,10 +134,10 @@ class LmntTTSService(InterruptibleTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", LmntTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if model is not None: if model is not None:
_warn_deprecated_param("model", LmntTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)
@@ -237,7 +237,7 @@ class LmntTTSService(InterruptibleTTSService):
"""Apply a settings delta. """Apply a settings delta.
Args: Args:
delta: A :class:`TTSSettings` (or ``LmntTTSSettings``) delta. delta: A :class:`TTSSettings` (or ``LmntTTSService.Settings``) delta.
Returns: Returns:
Dict mapping changed field names to their previous values. Dict mapping changed field names to their previous values.

View File

@@ -141,13 +141,13 @@ class MiniMaxHttpTTSService(TTSService):
""" """
Settings = MiniMaxTTSSettings Settings = MiniMaxTTSSettings
_settings: MiniMaxTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for MiniMax TTS. """Configuration parameters for MiniMax TTS.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``MiniMaxTTSSettings`` directly via the ``settings`` parameter instead. Use ``MiniMaxHttpTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
language: Language for TTS generation. Supports 40 languages. language: Language for TTS generation. Supports 40 languages.
@@ -190,7 +190,7 @@ class MiniMaxHttpTTSService(TTSService):
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
stream: bool = True, stream: bool = True,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[MiniMaxTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the MiniMax TTS service. """Initialize the MiniMax TTS service.
@@ -208,12 +208,12 @@ class MiniMaxHttpTTSService(TTSService):
"speech-01-hd", "speech-01-turbo". "speech-01-hd", "speech-01-turbo".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=MiniMaxTTSSettings(model=...)`` instead. Use ``settings=MiniMaxHttpTTSService.Settings(model=...)`` instead.
voice_id: Voice identifier. Defaults to "Calm_Woman". voice_id: Voice identifier. Defaults to "Calm_Woman".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=MiniMaxTTSSettings(voice=...)`` instead. Use ``settings=MiniMaxHttpTTSService.Settings(voice=...)`` instead.
aiohttp_session: aiohttp.ClientSession for API communication. aiohttp_session: aiohttp.ClientSession for API communication.
sample_rate: Output audio sample rate in Hz. If None, uses pipeline default. sample_rate: Output audio sample rate in Hz. If None, uses pipeline default.
@@ -221,14 +221,14 @@ class MiniMaxHttpTTSService(TTSService):
params: Additional configuration parameters. params: Additional configuration parameters.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=MiniMaxTTSSettings(...)`` instead. Use ``settings=MiniMaxHttpTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to parent TTSService. **kwargs: Additional arguments passed to parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = MiniMaxTTSSettings( default_settings = self.Settings(
model="speech-02-turbo", model="speech-02-turbo",
voice="Calm_Woman", voice="Calm_Woman",
language=None, language=None,
@@ -243,15 +243,15 @@ class MiniMaxHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", MiniMaxTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", MiniMaxTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", MiniMaxTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.speed = params.speed default_settings.speed = params.speed
default_settings.volume = params.volume default_settings.volume = params.volume

View File

@@ -14,13 +14,13 @@ from openai.types.chat import ChatCompletionMessageParam
from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
from pipecat.frames.frames import FunctionCallFromLLM from pipecat.frames.frames import FunctionCallFromLLM
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class MistralLLMSettings(OpenAILLMSettings): class MistralLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for MistralLLMService.""" """Settings for MistralLLMService."""
pass pass
@@ -34,7 +34,7 @@ class MistralLLMService(OpenAILLMService):
""" """
Settings = MistralLLMSettings Settings = MistralLLMSettings
_settings: MistralLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -42,7 +42,7 @@ class MistralLLMService(OpenAILLMService):
api_key: str, api_key: str,
base_url: str = "https://api.mistral.ai/v1", base_url: str = "https://api.mistral.ai/v1",
model: Optional[str] = None, model: Optional[str] = None,
settings: Optional[MistralLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Mistral LLM service. """Initialize the Mistral LLM service.
@@ -53,18 +53,18 @@ class MistralLLMService(OpenAILLMService):
model: The model identifier to use. Defaults to "mistral-small-latest". model: The model identifier to use. Defaults to "mistral-small-latest".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=MistralLLMService.Settings(model=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = MistralLLMSettings(model="mistral-small-latest") default_settings = self.Settings(model="mistral-small-latest")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", MistralLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -80,7 +80,7 @@ class MoondreamService(VisionService):
""" """
Settings = MoondreamSettings Settings = MoondreamSettings
_settings: MoondreamSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -88,7 +88,7 @@ class MoondreamService(VisionService):
model: Optional[str] = None, model: Optional[str] = None,
revision="2025-01-09", revision="2025-01-09",
use_cpu=False, use_cpu=False,
settings: Optional[MoondreamSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Moondream service. """Initialize the Moondream service.
@@ -97,7 +97,7 @@ class MoondreamService(VisionService):
model: Hugging Face model identifier for the Moondream model. model: Hugging Face model identifier for the Moondream model.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=MoondreamSettings(model=...)`` instead. Use ``settings=MoondreamService.Settings(model=...)`` instead.
revision: Specific model revision to use. revision: Specific model revision to use.
use_cpu: Whether to force CPU usage instead of hardware acceleration. use_cpu: Whether to force CPU usage instead of hardware acceleration.
@@ -106,11 +106,11 @@ class MoondreamService(VisionService):
**kwargs: Additional arguments passed to the parent VisionService. **kwargs: Additional arguments passed to the parent VisionService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = MoondreamSettings(model="vikhyatk/moondream2") default_settings = self.Settings(model="vikhyatk/moondream2")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", MoondreamSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 4. Apply settings delta (canonical API, always wins) # 4. Apply settings delta (canonical API, always wins)

View File

@@ -92,13 +92,13 @@ class NeuphonicTTSService(InterruptibleTTSService):
""" """
Settings = NeuphonicTTSSettings Settings = NeuphonicTTSSettings
_settings: NeuphonicTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Neuphonic TTS configuration. """Input parameters for Neuphonic TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=NeuphonicTTSSettings(...)`` instead. Use ``settings=NeuphonicTTSService.Settings(...)`` instead.
Parameters: Parameters:
language: Language for synthesis. Defaults to English. language: Language for synthesis. Defaults to English.
@@ -117,7 +117,7 @@ class NeuphonicTTSService(InterruptibleTTSService):
sample_rate: Optional[int] = 22050, sample_rate: Optional[int] = 22050,
encoding: str = "pcm_linear", encoding: str = "pcm_linear",
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[NeuphonicTTSSettings] = None, settings: Optional[Settings] = None,
aggregate_sentences: Optional[bool] = None, aggregate_sentences: Optional[bool] = None,
text_aggregation_mode: Optional[TextAggregationMode] = None, text_aggregation_mode: Optional[TextAggregationMode] = None,
**kwargs, **kwargs,
@@ -129,7 +129,7 @@ class NeuphonicTTSService(InterruptibleTTSService):
voice_id: ID of the voice to use for synthesis. voice_id: ID of the voice to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=NeuphonicTTSSettings(voice=...)`` instead. Use ``settings=NeuphonicTTSService.Settings(voice=...)`` instead.
url: WebSocket URL for the Neuphonic API. url: WebSocket URL for the Neuphonic API.
sample_rate: Audio sample rate in Hz. Defaults to 22050. sample_rate: Audio sample rate in Hz. Defaults to 22050.
@@ -137,7 +137,7 @@ class NeuphonicTTSService(InterruptibleTTSService):
params: Additional input parameters for TTS configuration. params: Additional input parameters for TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=NeuphonicTTSSettings(...)`` instead. Use ``settings=NeuphonicTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -150,7 +150,7 @@ class NeuphonicTTSService(InterruptibleTTSService):
**kwargs: Additional arguments passed to parent InterruptibleTTSService. **kwargs: Additional arguments passed to parent InterruptibleTTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = NeuphonicTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice=None, voice=None,
language=self.language_to_service_language(Language.EN), language=self.language_to_service_language(Language.EN),
@@ -159,12 +159,12 @@ class NeuphonicTTSService(InterruptibleTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", NeuphonicTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", NeuphonicTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = self.language_to_service_language(params.language) default_settings.language = self.language_to_service_language(params.language)
@@ -432,13 +432,13 @@ class NeuphonicHttpTTSService(TTSService):
""" """
Settings = NeuphonicTTSSettings Settings = NeuphonicTTSSettings
_settings: NeuphonicTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Neuphonic HTTP TTS configuration. """Input parameters for Neuphonic HTTP TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=NeuphonicTTSSettings(...)`` instead. Use ``settings=NeuphonicHttpTTSService.Settings(...)`` instead.
Parameters: Parameters:
language: Language for synthesis. Defaults to English. language: Language for synthesis. Defaults to English.
@@ -458,7 +458,7 @@ class NeuphonicHttpTTSService(TTSService):
sample_rate: Optional[int] = 22050, sample_rate: Optional[int] = 22050,
encoding: Optional[str] = "pcm_linear", encoding: Optional[str] = "pcm_linear",
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[NeuphonicTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Neuphonic HTTP TTS service. """Initialize the Neuphonic HTTP TTS service.
@@ -468,7 +468,7 @@ class NeuphonicHttpTTSService(TTSService):
voice_id: ID of the voice to use for synthesis. voice_id: ID of the voice to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=NeuphonicTTSSettings(voice=...)`` instead. Use ``settings=NeuphonicHttpTTSService.Settings(voice=...)`` instead.
aiohttp_session: Shared aiohttp session for HTTP requests. aiohttp_session: Shared aiohttp session for HTTP requests.
url: Base URL for the Neuphonic HTTP API. url: Base URL for the Neuphonic HTTP API.
@@ -477,14 +477,14 @@ class NeuphonicHttpTTSService(TTSService):
params: Additional input parameters for TTS configuration. params: Additional input parameters for TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=NeuphonicTTSSettings(...)`` instead. Use ``settings=NeuphonicHttpTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to parent TTSService. **kwargs: Additional arguments passed to parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = NeuphonicTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice=None, voice=None,
language=self.language_to_service_language(Language.EN), language=self.language_to_service_language(Language.EN),
@@ -493,12 +493,12 @@ class NeuphonicHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", NeuphonicTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", NeuphonicTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = self.language_to_service_language(params.language) default_settings.language = self.language_to_service_language(params.language)

View File

@@ -16,13 +16,13 @@ from typing import Optional
from pipecat.metrics.metrics import LLMTokenUsage from pipecat.metrics.metrics import LLMTokenUsage
from pipecat.processors.aggregators.llm_context import LLMContext from pipecat.processors.aggregators.llm_context import LLMContext
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class NvidiaLLMSettings(OpenAILLMSettings): class NvidiaLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for NvidiaLLMService.""" """Settings for NvidiaLLMService."""
pass pass
@@ -37,7 +37,7 @@ class NvidiaLLMService(OpenAILLMService):
""" """
Settings = NvidiaLLMSettings Settings = NvidiaLLMSettings
_settings: NvidiaLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -45,7 +45,7 @@ class NvidiaLLMService(OpenAILLMService):
api_key: str, api_key: str,
base_url: str = "https://integrate.api.nvidia.com/v1", base_url: str = "https://integrate.api.nvidia.com/v1",
model: Optional[str] = None, model: Optional[str] = None,
settings: Optional[NvidiaLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the NvidiaLLMService. """Initialize the NvidiaLLMService.
@@ -57,18 +57,18 @@ class NvidiaLLMService(OpenAILLMService):
"nvidia/llama-3.1-nemotron-70b-instruct". "nvidia/llama-3.1-nemotron-70b-instruct".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=NvidiaLLMService.Settings(model=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = NvidiaLLMSettings(model="nvidia/llama-3.1-nemotron-70b-instruct") default_settings = self.Settings(model="nvidia/llama-3.1-nemotron-70b-instruct")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", NvidiaLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -126,13 +126,13 @@ class NvidiaSTTService(STTService):
""" """
Settings = NvidiaSTTSettings Settings = NvidiaSTTSettings
_settings: NvidiaSTTSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for NVIDIA Riva STT service. """Configuration parameters for NVIDIA Riva STT service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=NvidiaSTTSettings(...)`` instead. Use ``settings=NvidiaSTTService.Settings(...)`` instead.
Parameters: Parameters:
language: Target language for transcription. Defaults to EN_US. language: Target language for transcription. Defaults to EN_US.
@@ -152,7 +152,7 @@ class NvidiaSTTService(STTService):
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
use_ssl: bool = True, use_ssl: bool = True,
settings: Optional[NvidiaSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = NVIDIA_TTFS_P99, ttfs_p99_latency: Optional[float] = NVIDIA_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -166,7 +166,7 @@ class NvidiaSTTService(STTService):
params: Additional configuration parameters for NVIDIA Riva. params: Additional configuration parameters for NVIDIA Riva.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=NvidiaSTTSettings(...)`` instead. Use ``settings=NvidiaSTTService.Settings(...)`` instead.
use_ssl: Whether to use SSL for the NVIDIA Riva server. Defaults to True. use_ssl: Whether to use SSL for the NVIDIA Riva server. Defaults to True.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -176,7 +176,7 @@ class NvidiaSTTService(STTService):
**kwargs: Additional arguments passed to STTService. **kwargs: Additional arguments passed to STTService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = NvidiaSTTSettings( default_settings = self.Settings(
model=model_function_map.get("model_name"), model=model_function_map.get("model_name"),
language=Language.EN_US, language=Language.EN_US,
) )
@@ -185,7 +185,7 @@ class NvidiaSTTService(STTService):
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", NvidiaSTTSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = params.language default_settings.language = params.language
@@ -441,13 +441,13 @@ class NvidiaSegmentedSTTService(SegmentedSTTService):
""" """
Settings = NvidiaSegmentedSTTSettings Settings = NvidiaSegmentedSTTSettings
_settings: NvidiaSegmentedSTTSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for NVIDIA Riva segmented STT service. """Configuration parameters for NVIDIA Riva segmented STT service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=NvidiaSegmentedSTTSettings(...)`` instead. Use ``settings=NvidiaSegmentedSTTService.Settings(...)`` instead.
Parameters: Parameters:
language: Target language for transcription. Defaults to EN_US. language: Target language for transcription. Defaults to EN_US.
@@ -477,7 +477,7 @@ class NvidiaSegmentedSTTService(SegmentedSTTService):
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
use_ssl: bool = True, use_ssl: bool = True,
settings: Optional[NvidiaSegmentedSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = NVIDIA_TTFS_P99, ttfs_p99_latency: Optional[float] = NVIDIA_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -491,7 +491,7 @@ class NvidiaSegmentedSTTService(SegmentedSTTService):
params: Additional configuration parameters for NVIDIA Riva params: Additional configuration parameters for NVIDIA Riva
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=NvidiaSegmentedSTTSettings(...)`` instead. Use ``settings=NvidiaSegmentedSTTService.Settings(...)`` instead.
use_ssl: Whether to use SSL for the NVIDIA Riva server. Defaults to True. use_ssl: Whether to use SSL for the NVIDIA Riva server. Defaults to True.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -501,7 +501,7 @@ class NvidiaSegmentedSTTService(SegmentedSTTService):
**kwargs: Additional arguments passed to SegmentedSTTService **kwargs: Additional arguments passed to SegmentedSTTService
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = NvidiaSegmentedSTTSettings( default_settings = self.Settings(
model=model_function_map.get("model_name"), model=model_function_map.get("model_name"),
language=language_to_nvidia_riva_language(Language.EN_US) or "en-US", language=language_to_nvidia_riva_language(Language.EN_US) or "en-US",
profanity_filter=False, profanity_filter=False,
@@ -515,7 +515,7 @@ class NvidiaSegmentedSTTService(SegmentedSTTService):
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", NvidiaSegmentedSTTSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = ( default_settings.language = (
language_to_nvidia_riva_language(params.language or Language.EN_US) or "en-US" language_to_nvidia_riva_language(params.language or Language.EN_US) or "en-US"
@@ -641,7 +641,7 @@ class NvidiaSegmentedSTTService(SegmentedSTTService):
"""Apply a settings delta and sync internal state. """Apply a settings delta and sync internal state.
Args: Args:
delta: A :class:`STTSettings` (or ``NvidiaSegmentedSTTSettings``) delta. delta: A :class:`STTSettings` (or ``NvidiaSegmentedSTTService.Settings``) delta.
Returns: Returns:
Dict mapping changed field names to their previous values. Dict mapping changed field names to their previous values.

View File

@@ -62,13 +62,13 @@ class NvidiaTTSService(TTSService):
""" """
Settings = NvidiaTTSSettings Settings = NvidiaTTSSettings
_settings: NvidiaTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Riva TTS configuration. """Input parameters for Riva TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``NvidiaTTSSettings`` directly via the ``settings`` parameter instead. Use ``NvidiaTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
language: Language code for synthesis. Defaults to US English. language: Language code for synthesis. Defaults to US English.
@@ -90,7 +90,7 @@ class NvidiaTTSService(TTSService):
"model_name": "magpie-tts-multilingual", "model_name": "magpie-tts-multilingual",
}, },
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[NvidiaTTSSettings] = None, settings: Optional[Settings] = None,
use_ssl: bool = True, use_ssl: bool = True,
**kwargs, **kwargs,
): ):
@@ -102,14 +102,14 @@ class NvidiaTTSService(TTSService):
voice_id: Voice model identifier. Defaults to multilingual Aria voice. voice_id: Voice model identifier. Defaults to multilingual Aria voice.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=NvidiaTTSSettings(voice=...)`` instead. Use ``settings=NvidiaTTSService.Settings(voice=...)`` instead.
sample_rate: Audio sample rate. If None, uses service default. sample_rate: Audio sample rate. If None, uses service default.
model_function_map: Dictionary containing function_id and model_name for the TTS model. model_function_map: Dictionary containing function_id and model_name for the TTS model.
params: Additional configuration parameters for TTS synthesis. params: Additional configuration parameters for TTS synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=NvidiaTTSSettings(...)`` instead. Use ``settings=NvidiaTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -117,7 +117,7 @@ class NvidiaTTSService(TTSService):
**kwargs: Additional arguments passed to parent TTSService. **kwargs: Additional arguments passed to parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = NvidiaTTSSettings( default_settings = self.Settings(
model=model_function_map.get("model_name"), model=model_function_map.get("model_name"),
voice="Magpie-Multilingual.EN-US.Aria", voice="Magpie-Multilingual.EN-US.Aria",
language=Language.EN_US, language=Language.EN_US,
@@ -126,12 +126,12 @@ class NvidiaTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", NvidiaTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", NvidiaTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = params.language default_settings.language = params.language
@@ -186,7 +186,7 @@ class NvidiaTTSService(TTSService):
stacklevel=2, stacklevel=2,
) )
async def _update_settings(self, delta: NvidiaTTSSettings) -> dict[str, Any]: async def _update_settings(self, delta: Settings) -> dict[str, Any]:
"""Apply a settings delta. """Apply a settings delta.
Settings are stored but not applied to the active connection. Settings are stored but not applied to the active connection.

View File

@@ -11,13 +11,13 @@ from typing import Optional
from loguru import logger from loguru import logger
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class OllamaLLMSettings(OpenAILLMSettings): class OllamaLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for OLLamaLLMService.""" """Settings for OLLamaLLMService."""
pass pass
@@ -31,14 +31,14 @@ class OLLamaLLMService(OpenAILLMService):
""" """
Settings = OllamaLLMSettings Settings = OllamaLLMSettings
_settings: OllamaLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
*, *,
model: Optional[str] = None, model: Optional[str] = None,
base_url: str = "http://localhost:11434/v1", base_url: str = "http://localhost:11434/v1",
settings: Optional[OllamaLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize OLLama LLM service. """Initialize OLLama LLM service.
@@ -47,7 +47,7 @@ class OLLamaLLMService(OpenAILLMService):
model: The OLLama model to use. Defaults to "llama2". model: The OLLama model to use. Defaults to "llama2".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=OLLamaLLMService.Settings(model=...)`` instead.
base_url: The base URL for the OLLama API endpoint. base_url: The base URL for the OLLama API endpoint.
Defaults to "http://localhost:11434/v1". Defaults to "http://localhost:11434/v1".
@@ -56,11 +56,11 @@ class OLLamaLLMService(OpenAILLMService):
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = OllamaLLMSettings(model="llama2") default_settings = self.Settings(model="llama2")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", OllamaLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -69,13 +69,13 @@ class BaseOpenAILLMService(LLMService):
""" """
Settings = OpenAILLMSettings Settings = OpenAILLMSettings
_settings: OpenAILLMSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for OpenAI model configuration. """Input parameters for OpenAI model configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(...)`` instead of Use ``settings=BaseOpenAILLMService.Settings(...)`` instead of
``params=InputParams(...)``. ``params=InputParams(...)``.
Parameters: Parameters:
@@ -119,7 +119,7 @@ class BaseOpenAILLMService(LLMService):
default_headers: Optional[Mapping[str, str]] = None, default_headers: Optional[Mapping[str, str]] = None,
service_tier: Optional[str] = None, service_tier: Optional[str] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[OpenAILLMSettings] = None, settings: Optional[Settings] = None,
retry_timeout_secs: Optional[float] = 5.0, retry_timeout_secs: Optional[float] = 5.0,
retry_on_timeout: Optional[bool] = False, retry_on_timeout: Optional[bool] = False,
**kwargs, **kwargs,
@@ -130,7 +130,7 @@ class BaseOpenAILLMService(LLMService):
model: The OpenAI model name to use (e.g., "gpt-4.1", "gpt-4o"). model: The OpenAI model name to use (e.g., "gpt-4.1", "gpt-4o").
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=BaseOpenAILLMService.Settings(model=...)`` instead.
api_key: OpenAI API key. If None, uses environment variable. api_key: OpenAI API key. If None, uses environment variable.
base_url: Custom base URL for OpenAI API. If None, uses default. base_url: Custom base URL for OpenAI API. If None, uses default.
@@ -141,7 +141,7 @@ class BaseOpenAILLMService(LLMService):
params: Input parameters for model configuration and behavior. params: Input parameters for model configuration and behavior.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(...)`` instead. Use ``settings=BaseOpenAILLMService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -150,7 +150,7 @@ class BaseOpenAILLMService(LLMService):
**kwargs: Additional arguments passed to the parent LLMService. **kwargs: Additional arguments passed to the parent LLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = OpenAILLMSettings( default_settings = self.Settings(
model="gpt-4o", model="gpt-4o",
system_instruction=None, system_instruction=None,
frequency_penalty=NOT_GIVEN, frequency_penalty=NOT_GIVEN,

View File

@@ -49,7 +49,7 @@ class OpenAIImageGenService(ImageGenService):
""" """
Settings = OpenAIImageGenSettings Settings = OpenAIImageGenSettings
_settings: OpenAIImageGenSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -61,7 +61,7 @@ class OpenAIImageGenService(ImageGenService):
Literal["256x256", "512x512", "1024x1024", "1792x1024", "1024x1792"] Literal["256x256", "512x512", "1024x1024", "1792x1024", "1024x1792"]
] = None, ] = None,
model: Optional[str] = None, model: Optional[str] = None,
settings: Optional[OpenAIImageGenSettings] = None, settings: Optional[Settings] = None,
): ):
"""Initialize the OpenAI image generation service. """Initialize the OpenAI image generation service.
@@ -72,29 +72,29 @@ class OpenAIImageGenService(ImageGenService):
image_size: Target size for generated images. Defaults to "1024x1024". image_size: Target size for generated images. Defaults to "1024x1024".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAIImageGenSettings(image_size=...)`` instead. Use ``settings=OpenAIImageGenService.Settings(image_size=...)`` instead.
model: DALL-E model to use for generation. Defaults to "dall-e-3". model: DALL-E model to use for generation. Defaults to "dall-e-3".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAIImageGenSettings(model=...)`` instead. Use ``settings=OpenAIImageGenService.Settings(model=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = OpenAIImageGenSettings( default_settings = self.Settings(
model="dall-e-3", model="dall-e-3",
image_size=None, image_size=None,
) )
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", OpenAIImageGenSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if image_size is not None: if image_size is not None:
_warn_deprecated_param("image_size", OpenAIImageGenSettings, "image_size") _warn_deprecated_param("image_size", self.Settings, "image_size")
default_settings.image_size = image_size default_settings.image_size = image_size
# 4. Apply settings delta (canonical API, always wins) # 4. Apply settings delta (canonical API, always wins)

View File

@@ -25,7 +25,7 @@ from pipecat.processors.aggregators.llm_response import (
LLMUserContextAggregator, LLMUserContextAggregator,
) )
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
from pipecat.services.openai.base_llm import BaseOpenAILLMService, OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@@ -72,13 +72,15 @@ class OpenAILLMService(BaseOpenAILLMService):
context aggregator creation. context aggregator creation.
""" """
Settings = BaseOpenAILLMService.Settings
def __init__( def __init__(
self, self,
*, *,
model: Optional[str] = None, model: Optional[str] = None,
service_tier: Optional[str] = None, service_tier: Optional[str] = None,
params: Optional[BaseOpenAILLMService.InputParams] = None, params: Optional[BaseOpenAILLMService.InputParams] = None,
settings: Optional[OpenAILLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize OpenAI LLM service. """Initialize OpenAI LLM service.
@@ -87,20 +89,20 @@ class OpenAILLMService(BaseOpenAILLMService):
model: The OpenAI model name to use. Defaults to "gpt-4.1". model: The OpenAI model name to use. Defaults to "gpt-4.1".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=OpenAILLMService.Settings(model=...)`` instead.
service_tier: Service tier to use (e.g., "auto", "flex", "priority"). service_tier: Service tier to use (e.g., "auto", "flex", "priority").
params: Input parameters for model configuration. params: Input parameters for model configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(...)`` instead. Use ``settings=OpenAILLMService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to the parent BaseOpenAILLMService. **kwargs: Additional arguments passed to the parent BaseOpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = OpenAILLMSettings( default_settings = self.Settings(
model="gpt-4.1", model="gpt-4.1",
system_instruction=None, system_instruction=None,
frequency_penalty=NOT_GIVEN, frequency_penalty=NOT_GIVEN,
@@ -118,7 +120,7 @@ class OpenAILLMService(BaseOpenAILLMService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", OpenAILLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# Handle service_tier from deprecated params # Handle service_tier from deprecated params
@@ -127,7 +129,7 @@ class OpenAILLMService(BaseOpenAILLMService):
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", OpenAILLMSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.frequency_penalty = params.frequency_penalty default_settings.frequency_penalty = params.frequency_penalty
default_settings.presence_penalty = params.presence_penalty default_settings.presence_penalty = params.presence_penalty

View File

@@ -115,7 +115,7 @@ class OpenAIRealtimeLLMSettings(LLMSettings):
# -- Bidirectional sync helpers ------------------------------------------ # -- Bidirectional sync helpers ------------------------------------------
@staticmethod @staticmethod
def _sync_top_level_to_sp(settings: "OpenAIRealtimeLLMSettings"): def _sync_top_level_to_sp(settings: "OpenAIRealtimeLLMService.Settings"):
"""Push top-level ``model``/``system_instruction`` into ``session_properties``.""" """Push top-level ``model``/``system_instruction`` into ``session_properties``."""
if not is_given(settings.session_properties): if not is_given(settings.session_properties):
return return
@@ -127,7 +127,7 @@ class OpenAIRealtimeLLMSettings(LLMSettings):
# -- apply_update override ----------------------------------------------- # -- apply_update override -----------------------------------------------
def apply_update(self, delta: "OpenAIRealtimeLLMSettings") -> Dict[str, Any]: def apply_update(self, delta: "OpenAIRealtimeLLMService.Settings") -> Dict[str, Any]:
"""Merge a delta, keeping ``model``/``system_instruction`` in sync with SP. """Merge a delta, keeping ``model``/``system_instruction`` in sync with SP.
When the delta contains ``session_properties``, it **replaces** the When the delta contains ``session_properties``, it **replaces** the
@@ -165,8 +165,8 @@ class OpenAIRealtimeLLMSettings(LLMSettings):
@classmethod @classmethod
def from_mapping( def from_mapping(
cls: Type["OpenAIRealtimeLLMSettings"], settings: Mapping[str, Any] cls: Type["OpenAIRealtimeLLMService.Settings"], settings: Mapping[str, Any]
) -> "OpenAIRealtimeLLMSettings": ) -> "OpenAIRealtimeLLMService.Settings":
"""Build a delta from a plain dict, routing SP keys into ``session_properties``. """Build a delta from a plain dict, routing SP keys into ``session_properties``.
Keys that correspond to ``SessionProperties`` fields (except ``model``) Keys that correspond to ``SessionProperties`` fields (except ``model``)
@@ -211,7 +211,7 @@ class OpenAIRealtimeLLMService(LLMService):
""" """
Settings = OpenAIRealtimeLLMSettings Settings = OpenAIRealtimeLLMSettings
_settings: OpenAIRealtimeLLMSettings _settings: Settings
# Overriding the default adapter to use the OpenAIRealtimeLLMAdapter one. # Overriding the default adapter to use the OpenAIRealtimeLLMAdapter one.
adapter_class = OpenAIRealtimeLLMAdapter adapter_class = OpenAIRealtimeLLMAdapter
@@ -223,7 +223,7 @@ class OpenAIRealtimeLLMService(LLMService):
model: Optional[str] = None, model: Optional[str] = None,
base_url: str = "wss://api.openai.com/v1/realtime", base_url: str = "wss://api.openai.com/v1/realtime",
session_properties: Optional[events.SessionProperties] = None, session_properties: Optional[events.SessionProperties] = None,
settings: Optional[OpenAIRealtimeLLMSettings] = None, settings: Optional[Settings] = None,
start_audio_paused: bool = False, start_audio_paused: bool = False,
start_video_paused: bool = False, start_video_paused: bool = False,
video_frame_detail: str = "auto", video_frame_detail: str = "auto",
@@ -237,7 +237,7 @@ class OpenAIRealtimeLLMService(LLMService):
model: OpenAI model name. model: OpenAI model name.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAIRealtimeLLMSettings(model=...)`` instead. Use ``settings=OpenAIRealtimeLLMService.Settings(model=...)`` instead.
This is a connection-level parameter set via the WebSocket URL query This is a connection-level parameter set via the WebSocket URL query
parameter and cannot be changed during the session. parameter and cannot be changed during the session.
@@ -247,7 +247,7 @@ class OpenAIRealtimeLLMService(LLMService):
If None, uses default SessionProperties. If None, uses default SessionProperties.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAIRealtimeLLMSettings(session_properties=...)`` Use ``settings=OpenAIRealtimeLLMService.Settings(session_properties=...)``
instead. instead.
settings: Runtime-updatable settings for this service. settings: Runtime-updatable settings for this service.
start_audio_paused: Whether to start with audio input paused. Defaults to False. start_audio_paused: Whether to start with audio input paused. Defaults to False.
@@ -277,7 +277,7 @@ class OpenAIRealtimeLLMService(LLMService):
) )
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = OpenAIRealtimeLLMSettings( default_settings = self.Settings(
model="gpt-realtime-1.5", model="gpt-realtime-1.5",
system_instruction=None, system_instruction=None,
temperature=None, temperature=None,
@@ -294,13 +294,13 @@ class OpenAIRealtimeLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", OpenAIRealtimeLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if session_properties is not None: if session_properties is not None:
_warn_deprecated_param( _warn_deprecated_param(
"session_properties", "session_properties",
OpenAIRealtimeLLMSettings, self.Settings,
"session_properties", "session_properties",
) )
default_settings.session_properties = session_properties default_settings.session_properties = session_properties
@@ -312,7 +312,7 @@ class OpenAIRealtimeLLMService(LLMService):
default_settings.system_instruction = session_properties.instructions default_settings.system_instruction = session_properties.instructions
# Sync top-level model back into session_properties # Sync top-level model back into session_properties
OpenAIRealtimeLLMSettings._sync_top_level_to_sp(default_settings) self.Settings._sync_top_level_to_sp(default_settings)
# 3. Apply settings delta (canonical API, always wins) # 3. Apply settings delta (canonical API, always wins)
if settings is not None: if settings is not None:

View File

@@ -40,7 +40,6 @@ from pipecat.services.stt_latency import OPENAI_REALTIME_TTFS_P99, OPENAI_TTFS_P
from pipecat.services.stt_service import WebsocketSTTService from pipecat.services.stt_service import WebsocketSTTService
from pipecat.services.whisper.base_stt import ( from pipecat.services.whisper.base_stt import (
BaseWhisperSTTService, BaseWhisperSTTService,
BaseWhisperSTTSettings,
Transcription, Transcription,
) )
from pipecat.transcriptions.language import Language from pipecat.transcriptions.language import Language
@@ -56,7 +55,7 @@ except ModuleNotFoundError:
@dataclass @dataclass
class OpenAISTTSettings(BaseWhisperSTTSettings): class OpenAISTTSettings(BaseWhisperSTTService.Settings):
"""Settings for the OpenAI STT service.""" """Settings for the OpenAI STT service."""
pass pass
@@ -70,7 +69,7 @@ class OpenAISTTService(BaseWhisperSTTService):
""" """
Settings = OpenAISTTSettings Settings = OpenAISTTSettings
_settings: OpenAISTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -81,7 +80,7 @@ class OpenAISTTService(BaseWhisperSTTService):
language: Optional[Language] = Language.EN, language: Optional[Language] = Language.EN,
prompt: Optional[str] = None, prompt: Optional[str] = None,
temperature: Optional[float] = None, temperature: Optional[float] = None,
settings: Optional[OpenAISTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = OPENAI_TTFS_P99, ttfs_p99_latency: Optional[float] = OPENAI_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -91,24 +90,24 @@ class OpenAISTTService(BaseWhisperSTTService):
model: Model to use — either gpt-4o or Whisper. model: Model to use — either gpt-4o or Whisper.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAISTTSettings(model=...)`` instead. Use ``settings=OpenAISTTService.Settings(model=...)`` instead.
api_key: OpenAI API key. Defaults to None. api_key: OpenAI API key. Defaults to None.
base_url: API base URL. Defaults to None. base_url: API base URL. Defaults to None.
language: Language of the audio input. Defaults to English. language: Language of the audio input. Defaults to English.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAISTTSettings(language=...)`` instead. Use ``settings=OpenAISTTService.Settings(language=...)`` instead.
prompt: Optional text to guide the model's style or continue a previous segment. prompt: Optional text to guide the model's style or continue a previous segment.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAISTTSettings(prompt=...)`` instead. Use ``settings=OpenAISTTService.Settings(prompt=...)`` instead.
temperature: Optional sampling temperature between 0 and 1. Defaults to 0.0. temperature: Optional sampling temperature between 0 and 1. Defaults to 0.0.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAISTTSettings(temperature=...)`` instead. Use ``settings=OpenAISTTService.Settings(temperature=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -118,7 +117,7 @@ class OpenAISTTService(BaseWhisperSTTService):
""" """
# --- 1. Hardcoded defaults --- # --- 1. Hardcoded defaults ---
_language = language or Language.EN _language = language or Language.EN
default_settings = OpenAISTTSettings( default_settings = self.Settings(
model="gpt-4o-transcribe", model="gpt-4o-transcribe",
language=self.language_to_service_language(_language), language=self.language_to_service_language(_language),
prompt=None, prompt=None,
@@ -127,13 +126,13 @@ class OpenAISTTService(BaseWhisperSTTService):
# --- 2. Deprecated direct-arg overrides --- # --- 2. Deprecated direct-arg overrides ---
if model is not None: if model is not None:
_warn_deprecated_param("model", OpenAISTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if prompt is not None: if prompt is not None:
_warn_deprecated_param("prompt", OpenAISTTSettings, "prompt") _warn_deprecated_param("prompt", self.Settings, "prompt")
default_settings.prompt = prompt default_settings.prompt = prompt
if temperature is not None: if temperature is not None:
_warn_deprecated_param("temperature", OpenAISTTSettings, "temperature") _warn_deprecated_param("temperature", self.Settings, "temperature")
default_settings.temperature = temperature default_settings.temperature = temperature
# --- 3. (no params object for this service) --- # --- 3. (no params object for this service) ---
@@ -234,7 +233,7 @@ class OpenAIRealtimeSTTService(WebsocketSTTService):
""" """
Settings = OpenAIRealtimeSTTSettings Settings = OpenAIRealtimeSTTSettings
_settings: OpenAIRealtimeSTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -247,7 +246,7 @@ class OpenAIRealtimeSTTService(WebsocketSTTService):
turn_detection: Optional[Union[dict, Literal[False]]] = False, turn_detection: Optional[Union[dict, Literal[False]]] = False,
noise_reduction: Optional[Literal["near_field", "far_field"]] = None, noise_reduction: Optional[Literal["near_field", "far_field"]] = None,
should_interrupt: bool = True, should_interrupt: bool = True,
settings: Optional[OpenAIRealtimeSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = OPENAI_REALTIME_TTFS_P99, ttfs_p99_latency: Optional[float] = OPENAI_REALTIME_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -259,20 +258,20 @@ class OpenAIRealtimeSTTService(WebsocketSTTService):
``"gpt-4o-transcribe"`` and ``"gpt-4o-mini-transcribe"``. ``"gpt-4o-transcribe"`` and ``"gpt-4o-mini-transcribe"``.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAIRealtimeSTTSettings(model=...)`` instead. Use ``settings=OpenAIRealtimeSTTService.Settings(model=...)`` instead.
base_url: WebSocket base URL for the Realtime API. base_url: WebSocket base URL for the Realtime API.
Defaults to ``"wss://api.openai.com/v1/realtime"``. Defaults to ``"wss://api.openai.com/v1/realtime"``.
language: Language of the audio input. Defaults to English. language: Language of the audio input. Defaults to English.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAIRealtimeSTTSettings(language=...)`` instead. Use ``settings=OpenAIRealtimeSTTService.Settings(language=...)`` instead.
prompt: Optional prompt text to guide transcription style prompt: Optional prompt text to guide transcription style
or provide keyword hints. or provide keyword hints.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAIRealtimeSTTSettings(prompt=...)`` instead. Use ``settings=OpenAIRealtimeSTTService.Settings(prompt=...)`` instead.
turn_detection: Server-side VAD configuration. Defaults to turn_detection: Server-side VAD configuration. Defaults to
``False`` (disabled), which relies on a local VAD ``False`` (disabled), which relies on a local VAD
@@ -284,7 +283,7 @@ class OpenAIRealtimeSTTService(WebsocketSTTService):
microphones, or ``None`` to disable. microphones, or ``None`` to disable.
.. deprecated:: 0.0.106 .. deprecated:: 0.0.106
Use ``settings=OpenAIRealtimeSTTSettings(noise_reduction=...)`` instead. Use ``settings=OpenAIRealtimeSTTService.Settings(noise_reduction=...)`` instead.
should_interrupt: Whether to interrupt bot output when should_interrupt: Whether to interrupt bot output when
speech is detected by server-side VAD. Only applies when speech is detected by server-side VAD. Only applies when
turn detection is enabled. Defaults to True. turn detection is enabled. Defaults to True.
@@ -302,7 +301,7 @@ class OpenAIRealtimeSTTService(WebsocketSTTService):
) )
# --- 1. Hardcoded defaults --- # --- 1. Hardcoded defaults ---
default_settings = OpenAIRealtimeSTTSettings( default_settings = self.Settings(
model="gpt-4o-transcribe", model="gpt-4o-transcribe",
language=Language.EN, language=Language.EN,
prompt=None, prompt=None,
@@ -311,16 +310,16 @@ class OpenAIRealtimeSTTService(WebsocketSTTService):
# --- 2. Deprecated direct-arg overrides --- # --- 2. Deprecated direct-arg overrides ---
if model is not None: if model is not None:
_warn_deprecated_param("model", OpenAIRealtimeSTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if language is not None and language != Language.EN: if language is not None and language != Language.EN:
_warn_deprecated_param("language", OpenAIRealtimeSTTSettings, "language") _warn_deprecated_param("language", self.Settings, "language")
default_settings.language = language default_settings.language = language
if prompt is not None: if prompt is not None:
_warn_deprecated_param("prompt", OpenAIRealtimeSTTSettings, "prompt") _warn_deprecated_param("prompt", self.Settings, "prompt")
default_settings.prompt = prompt default_settings.prompt = prompt
if noise_reduction is not None: if noise_reduction is not None:
_warn_deprecated_param("noise_reduction", OpenAIRealtimeSTTSettings, "noise_reduction") _warn_deprecated_param("noise_reduction", self.Settings, "noise_reduction")
default_settings.noise_reduction = noise_reduction default_settings.noise_reduction = noise_reduction
# --- 3. (no params object for this service) --- # --- 3. (no params object for this service) ---
@@ -376,7 +375,7 @@ class OpenAIRealtimeSTTService(WebsocketSTTService):
Sends a ``session.update`` to the server when the session is active. Sends a ``session.update`` to the server when the session is active.
Args: Args:
delta: A :class:`STTSettings` (or ``OpenAIRealtimeSTTSettings``) delta. delta: A :class:`STTSettings` (or ``OpenAIRealtimeSTTService.Settings``) delta.
Returns: Returns:
Dict mapping changed field names to their previous values. Dict mapping changed field names to their previous values.

View File

@@ -82,7 +82,7 @@ class OpenAITTSService(TTSService):
""" """
Settings = OpenAITTSSettings Settings = OpenAITTSSettings
_settings: OpenAITTSSettings _settings: Settings
OPENAI_SAMPLE_RATE = 24000 # OpenAI TTS always outputs at 24kHz OPENAI_SAMPLE_RATE = 24000 # OpenAI TTS always outputs at 24kHz
@@ -90,7 +90,7 @@ class OpenAITTSService(TTSService):
"""Input parameters for OpenAI TTS configuration. """Input parameters for OpenAI TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAITTSSettings(...)`` instead. Use ``settings=OpenAITTSService.Settings(...)`` instead.
Parameters: Parameters:
instructions: Instructions to guide voice synthesis behavior. instructions: Instructions to guide voice synthesis behavior.
@@ -111,7 +111,7 @@ class OpenAITTSService(TTSService):
instructions: Optional[str] = None, instructions: Optional[str] = None,
speed: Optional[float] = None, speed: Optional[float] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[OpenAITTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize OpenAI TTS service. """Initialize OpenAI TTS service.
@@ -122,28 +122,28 @@ class OpenAITTSService(TTSService):
voice: Voice ID to use for synthesis. Defaults to "alloy". voice: Voice ID to use for synthesis. Defaults to "alloy".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAITTSSettings(voice=...)`` instead. Use ``settings=OpenAITTSService.Settings(voice=...)`` instead.
model: TTS model to use. Defaults to "gpt-4o-mini-tts". model: TTS model to use. Defaults to "gpt-4o-mini-tts".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAITTSSettings(model=...)`` instead. Use ``settings=OpenAITTSService.Settings(model=...)`` instead.
sample_rate: Output audio sample rate in Hz. If None, uses OpenAI's default 24kHz. sample_rate: Output audio sample rate in Hz. If None, uses OpenAI's default 24kHz.
instructions: Optional instructions to guide voice synthesis behavior. instructions: Optional instructions to guide voice synthesis behavior.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAITTSSettings(instructions=...)`` instead. Use ``settings=OpenAITTSService.Settings(instructions=...)`` instead.
speed: Voice speed control (0.25 to 4.0, default 1.0). speed: Voice speed control (0.25 to 4.0, default 1.0).
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAITTSSettings(speed=...)`` instead. Use ``settings=OpenAITTSService.Settings(speed=...)`` instead.
params: Optional synthesis controls (acting instructions, speed, ...). params: Optional synthesis controls (acting instructions, speed, ...).
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAITTSSettings(...)`` instead. Use ``settings=OpenAITTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -156,7 +156,7 @@ class OpenAITTSService(TTSService):
) )
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = OpenAITTSSettings( default_settings = self.Settings(
model="gpt-4o-mini-tts", model="gpt-4o-mini-tts",
voice="alloy", voice="alloy",
language=None, language=None,
@@ -166,21 +166,21 @@ class OpenAITTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice is not None: if voice is not None:
_warn_deprecated_param("voice", OpenAITTSSettings, "voice") _warn_deprecated_param("voice", self.Settings, "voice")
default_settings.voice = voice default_settings.voice = voice
if model is not None: if model is not None:
_warn_deprecated_param("model", OpenAITTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if instructions is not None: if instructions is not None:
_warn_deprecated_param("instructions", OpenAITTSSettings, "instructions") _warn_deprecated_param("instructions", self.Settings, "instructions")
default_settings.instructions = instructions default_settings.instructions = instructions
if speed is not None: if speed is not None:
_warn_deprecated_param("speed", OpenAITTSSettings, "speed") _warn_deprecated_param("speed", self.Settings, "speed")
default_settings.speed = speed default_settings.speed = speed
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", OpenAITTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.instructions is not None: if params.instructions is not None:
default_settings.instructions = params.instructions default_settings.instructions = params.instructions

View File

@@ -11,7 +11,7 @@ from dataclasses import dataclass
from loguru import logger from loguru import logger
from .openai import OpenAIRealtimeBetaLLMService, OpenAIRealtimeBetaLLMSettings from .openai import OpenAIRealtimeBetaLLMService
try: try:
from websockets.asyncio.client import connect as websocket_connect from websockets.asyncio.client import connect as websocket_connect
@@ -24,7 +24,7 @@ except ModuleNotFoundError as e:
@dataclass @dataclass
class AzureRealtimeBetaLLMSettings(OpenAIRealtimeBetaLLMSettings): class AzureRealtimeBetaLLMSettings(OpenAIRealtimeBetaLLMService.Settings):
"""Settings for AzureRealtimeBetaLLMService.""" """Settings for AzureRealtimeBetaLLMService."""
pass pass
@@ -43,7 +43,7 @@ class AzureRealtimeBetaLLMService(OpenAIRealtimeBetaLLMService):
""" """
Settings = AzureRealtimeBetaLLMSettings Settings = AzureRealtimeBetaLLMSettings
_settings: AzureRealtimeBetaLLMSettings _settings: Settings
def __init__( def __init__(
self, self,

View File

@@ -112,7 +112,7 @@ class OpenAIRealtimeBetaLLMService(LLMService):
""" """
Settings = OpenAIRealtimeBetaLLMSettings Settings = OpenAIRealtimeBetaLLMSettings
_settings: OpenAIRealtimeBetaLLMSettings _settings: Settings
# Overriding the default adapter to use the OpenAIRealtimeLLMAdapter one. # Overriding the default adapter to use the OpenAIRealtimeLLMAdapter one.
adapter_class = OpenAIRealtimeLLMAdapter adapter_class = OpenAIRealtimeLLMAdapter
@@ -124,7 +124,7 @@ class OpenAIRealtimeBetaLLMService(LLMService):
model: Optional[str] = None, model: Optional[str] = None,
base_url: str = "wss://api.openai.com/v1/realtime", base_url: str = "wss://api.openai.com/v1/realtime",
session_properties: Optional[events.SessionProperties] = None, session_properties: Optional[events.SessionProperties] = None,
settings: Optional[OpenAIRealtimeBetaLLMSettings] = None, settings: Optional[Settings] = None,
start_audio_paused: bool = False, start_audio_paused: bool = False,
send_transcription_frames: bool = True, send_transcription_frames: bool = True,
**kwargs, **kwargs,
@@ -136,7 +136,7 @@ class OpenAIRealtimeBetaLLMService(LLMService):
model: OpenAI model name. model: OpenAI model name.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAIRealtimeBetaLLMSettings(model=...)`` instead. Use ``settings=OpenAIRealtimeBetaLLMService.Settings(model=...)`` instead.
base_url: WebSocket base URL for the realtime API. base_url: WebSocket base URL for the realtime API.
Defaults to "wss://api.openai.com/v1/realtime". Defaults to "wss://api.openai.com/v1/realtime".
@@ -157,7 +157,7 @@ class OpenAIRealtimeBetaLLMService(LLMService):
) )
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = OpenAIRealtimeBetaLLMSettings( default_settings = self.Settings(
model="gpt-4o-realtime-preview-2025-06-03", model="gpt-4o-realtime-preview-2025-06-03",
system_instruction=None, system_instruction=None,
temperature=None, temperature=None,
@@ -173,7 +173,7 @@ class OpenAIRealtimeBetaLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", OpenAIRealtimeBetaLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply settings delta (canonical API, always wins) # 3. Apply settings delta (canonical API, always wins)
if settings is not None: if settings is not None:

View File

@@ -16,7 +16,7 @@ from typing import Dict, Optional
from loguru import logger from loguru import logger
from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@@ -29,7 +29,7 @@ except ModuleNotFoundError as e:
@dataclass @dataclass
class OpenPipeLLMSettings(OpenAILLMSettings): class OpenPipeLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for OpenPipeLLMService.""" """Settings for OpenPipeLLMService."""
pass pass
@@ -44,7 +44,7 @@ class OpenPipeLLMService(OpenAILLMService):
""" """
Settings = OpenPipeLLMSettings Settings = OpenPipeLLMSettings
_settings: OpenPipeLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -55,7 +55,7 @@ class OpenPipeLLMService(OpenAILLMService):
openpipe_api_key: Optional[str] = None, openpipe_api_key: Optional[str] = None,
openpipe_base_url: str = "https://app.openpipe.ai/api/v1", openpipe_base_url: str = "https://app.openpipe.ai/api/v1",
tags: Optional[Dict[str, str]] = None, tags: Optional[Dict[str, str]] = None,
settings: Optional[OpenPipeLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize OpenPipe LLM service. """Initialize OpenPipe LLM service.
@@ -64,7 +64,7 @@ class OpenPipeLLMService(OpenAILLMService):
model: The model name to use. Defaults to "gpt-4.1". model: The model name to use. Defaults to "gpt-4.1".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=OpenPipeLLMService.Settings(model=...)`` instead.
api_key: OpenAI API key for authentication. If None, reads from environment. api_key: OpenAI API key for authentication. If None, reads from environment.
base_url: Custom OpenAI API endpoint URL. Uses default if None. base_url: Custom OpenAI API endpoint URL. Uses default if None.
@@ -76,11 +76,11 @@ class OpenPipeLLMService(OpenAILLMService):
**kwargs: Additional arguments passed to parent OpenAILLMService. **kwargs: Additional arguments passed to parent OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = OpenPipeLLMSettings(model="gpt-4.1") default_settings = self.Settings(model="gpt-4.1")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", OpenPipeLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -15,13 +15,13 @@ from typing import Any, Dict, Optional
from loguru import logger from loguru import logger
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class OpenRouterLLMSettings(OpenAILLMSettings): class OpenRouterLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for OpenRouterLLMService.""" """Settings for OpenRouterLLMService."""
pass pass
@@ -35,7 +35,7 @@ class OpenRouterLLMService(OpenAILLMService):
""" """
Settings = OpenRouterLLMSettings Settings = OpenRouterLLMSettings
_settings: OpenRouterLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -43,7 +43,7 @@ class OpenRouterLLMService(OpenAILLMService):
api_key: Optional[str] = None, api_key: Optional[str] = None,
model: Optional[str] = None, model: Optional[str] = None,
base_url: str = "https://openrouter.ai/api/v1", base_url: str = "https://openrouter.ai/api/v1",
settings: Optional[OpenRouterLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the OpenRouter LLM service. """Initialize the OpenRouter LLM service.
@@ -54,7 +54,7 @@ class OpenRouterLLMService(OpenAILLMService):
model: The model identifier to use. Defaults to "openai/gpt-4o-2024-11-20". model: The model identifier to use. Defaults to "openai/gpt-4o-2024-11-20".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=OpenRouterLLMService.Settings(model=...)`` instead.
base_url: The base URL for OpenRouter API. Defaults to "https://openrouter.ai/api/v1". base_url: The base URL for OpenRouter API. Defaults to "https://openrouter.ai/api/v1".
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -62,11 +62,11 @@ class OpenRouterLLMService(OpenAILLMService):
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = OpenRouterLLMSettings(model="openai/gpt-4o-2024-11-20") default_settings = self.Settings(model="openai/gpt-4o-2024-11-20")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", OpenRouterLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -18,13 +18,13 @@ from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
from pipecat.metrics.metrics import LLMTokenUsage from pipecat.metrics.metrics import LLMTokenUsage
from pipecat.processors.aggregators.llm_context import LLMContext from pipecat.processors.aggregators.llm_context import LLMContext
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class PerplexityLLMSettings(OpenAILLMSettings): class PerplexityLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for PerplexityLLMService.""" """Settings for PerplexityLLMService."""
pass pass
@@ -39,7 +39,7 @@ class PerplexityLLMService(OpenAILLMService):
""" """
Settings = PerplexityLLMSettings Settings = PerplexityLLMSettings
_settings: PerplexityLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -47,7 +47,7 @@ class PerplexityLLMService(OpenAILLMService):
api_key: str, api_key: str,
base_url: str = "https://api.perplexity.ai", base_url: str = "https://api.perplexity.ai",
model: Optional[str] = None, model: Optional[str] = None,
settings: Optional[PerplexityLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Perplexity LLM service. """Initialize the Perplexity LLM service.
@@ -58,18 +58,18 @@ class PerplexityLLMService(OpenAILLMService):
model: The model identifier to use. Defaults to "sonar". model: The model identifier to use. Defaults to "sonar".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=PerplexityLLMService.Settings(model=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = PerplexityLLMSettings(model="sonar") default_settings = self.Settings(model="sonar")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", PerplexityLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -48,7 +48,7 @@ class PiperTTSService(TTSService):
""" """
Settings = PiperTTSSettings Settings = PiperTTSSettings
_settings: PiperTTSSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -57,7 +57,7 @@ class PiperTTSService(TTSService):
download_dir: Optional[Path] = None, download_dir: Optional[Path] = None,
force_redownload: bool = False, force_redownload: bool = False,
use_cuda: bool = False, use_cuda: bool = False,
settings: Optional[PiperTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Piper TTS service. """Initialize the Piper TTS service.
@@ -66,7 +66,7 @@ class PiperTTSService(TTSService):
voice_id: Piper voice model identifier (e.g. `en_US-ryan-high`). voice_id: Piper voice model identifier (e.g. `en_US-ryan-high`).
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=PiperTTSSettings(voice=...)`` instead. Use ``settings=PiperTTSService.Settings(voice=...)`` instead.
download_dir: Directory for storing voice model files. Defaults to download_dir: Directory for storing voice model files. Defaults to
the current working directory. the current working directory.
@@ -77,11 +77,11 @@ class PiperTTSService(TTSService):
**kwargs: Additional arguments passed to the parent `TTSService`. **kwargs: Additional arguments passed to the parent `TTSService`.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = PiperTTSSettings(model=None, voice=None, language=None) default_settings = self.Settings(model=None, voice=None, language=None)
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", PiperTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)
@@ -121,7 +121,7 @@ class PiperTTSService(TTSService):
""" """
return True return True
async def _update_settings(self, delta: PiperTTSSettings) -> dict[str, Any]: async def _update_settings(self, delta: Settings) -> dict[str, Any]:
"""Apply a settings delta. """Apply a settings delta.
Settings are stored but not applied to the active connection. Settings are stored but not applied to the active connection.
@@ -202,7 +202,7 @@ class PiperHttpTTSService(TTSService):
""" """
Settings = PiperHttpTTSSettings Settings = PiperHttpTTSSettings
_settings: PiperHttpTTSSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -210,7 +210,7 @@ class PiperHttpTTSService(TTSService):
base_url: str, base_url: str,
aiohttp_session: aiohttp.ClientSession, aiohttp_session: aiohttp.ClientSession,
voice_id: Optional[str] = None, voice_id: Optional[str] = None,
settings: Optional[PiperHttpTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Piper TTS service. """Initialize the Piper TTS service.
@@ -221,18 +221,18 @@ class PiperHttpTTSService(TTSService):
voice_id: Piper voice model identifier (e.g. `en_US-ryan-high`). voice_id: Piper voice model identifier (e.g. `en_US-ryan-high`).
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=PiperHttpTTSSettings(voice=...)`` instead. Use ``settings=PiperHttpTTSService.Settings(voice=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to the parent TTSService. **kwargs: Additional arguments passed to the parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = PiperHttpTTSSettings(model=None, voice=None, language=None) default_settings = self.Settings(model=None, voice=None, language=None)
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", PiperHttpTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -11,13 +11,13 @@ from typing import Optional
from loguru import logger from loguru import logger
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class QwenLLMSettings(OpenAILLMSettings): class QwenLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for QwenLLMService.""" """Settings for QwenLLMService."""
pass pass
@@ -31,7 +31,7 @@ class QwenLLMService(OpenAILLMService):
""" """
Settings = QwenLLMSettings Settings = QwenLLMSettings
_settings: QwenLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -39,7 +39,7 @@ class QwenLLMService(OpenAILLMService):
api_key: str, api_key: str,
base_url: str = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", base_url: str = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
model: Optional[str] = None, model: Optional[str] = None,
settings: Optional[QwenLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Qwen LLM service. """Initialize the Qwen LLM service.
@@ -50,18 +50,18 @@ class QwenLLMService(OpenAILLMService):
model: The model identifier to use. Defaults to "qwen-plus". model: The model identifier to use. Defaults to "qwen-plus".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=QwenLLMService.Settings(model=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = QwenLLMSettings(model="qwen-plus") default_settings = self.Settings(model="qwen-plus")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", QwenLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -52,7 +52,7 @@ class ResembleAITTSService(WebsocketTTSService):
""" """
Settings = ResembleAITTSSettings Settings = ResembleAITTSSettings
_settings: ResembleAITTSSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -63,7 +63,7 @@ class ResembleAITTSService(WebsocketTTSService):
precision: Optional[str] = "PCM_16", precision: Optional[str] = "PCM_16",
output_format: Optional[str] = "wav", output_format: Optional[str] = "wav",
sample_rate: Optional[int] = 22050, sample_rate: Optional[int] = 22050,
settings: Optional[ResembleAITTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Resemble AI TTS service. """Initialize the Resemble AI TTS service.
@@ -73,7 +73,7 @@ class ResembleAITTSService(WebsocketTTSService):
voice_id: Voice UUID to use for synthesis. voice_id: Voice UUID to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=ResembleAITTSSettings(voice=...)`` instead. Use ``settings=ResembleAITTSService.Settings(voice=...)`` instead.
url: WebSocket URL for Resemble AI TTS API. url: WebSocket URL for Resemble AI TTS API.
precision: PCM bit depth (PCM_32, PCM_24, PCM_16, or MULAW). precision: PCM bit depth (PCM_32, PCM_24, PCM_16, or MULAW).
@@ -84,7 +84,7 @@ class ResembleAITTSService(WebsocketTTSService):
**kwargs: Additional arguments passed to the parent service. **kwargs: Additional arguments passed to the parent service.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = ResembleAITTSSettings( default_settings = self.Settings(
model=None, model=None,
voice=None, voice=None,
language=None, language=None,
@@ -92,7 +92,7 @@ class ResembleAITTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", ResembleAITTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -132,13 +132,13 @@ class RimeTTSService(WebsocketTTSService):
""" """
Settings = RimeTTSSettings Settings = RimeTTSSettings
_settings: RimeTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for Rime TTS service. """Configuration parameters for Rime TTS service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=RimeTTSSettings(...)`` instead. Use ``settings=RimeTTSService.Settings(...)`` instead.
Parameters: Parameters:
language: Language for synthesis. Defaults to English. language: Language for synthesis. Defaults to English.
@@ -177,7 +177,7 @@ class RimeTTSService(WebsocketTTSService):
model: Optional[str] = None, model: Optional[str] = None,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[RimeTTSSettings] = None, settings: Optional[Settings] = None,
text_aggregator: Optional[BaseTextAggregator] = None, text_aggregator: Optional[BaseTextAggregator] = None,
text_aggregation_mode: Optional[TextAggregationMode] = None, text_aggregation_mode: Optional[TextAggregationMode] = None,
aggregate_sentences: Optional[bool] = None, aggregate_sentences: Optional[bool] = None,
@@ -190,19 +190,19 @@ class RimeTTSService(WebsocketTTSService):
voice_id: ID of the voice to use. voice_id: ID of the voice to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=RimeTTSSettings(voice=...)`` instead. Use ``settings=RimeTTSService.Settings(voice=...)`` instead.
url: Rime websocket API endpoint. url: Rime websocket API endpoint.
model: Model ID to use for synthesis. model: Model ID to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=RimeTTSSettings(model=...)`` instead. Use ``settings=RimeTTSService.Settings(model=...)`` instead.
sample_rate: Audio sample rate in Hz. sample_rate: Audio sample rate in Hz.
params: Additional configuration parameters. params: Additional configuration parameters.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=RimeTTSSettings(...)`` instead. Use ``settings=RimeTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -220,7 +220,7 @@ class RimeTTSService(WebsocketTTSService):
**kwargs: Additional arguments passed to parent class. **kwargs: Additional arguments passed to parent class.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = RimeTTSSettings( default_settings = self.Settings(
model="arcana", model="arcana",
voice=None, voice=None,
language=None, language=None,
@@ -241,15 +241,15 @@ class RimeTTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", RimeTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if model is not None: if model is not None:
_warn_deprecated_param("model", RimeTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", RimeTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = ( default_settings.language = (
self.language_to_service_language(params.language) if params.language else None self.language_to_service_language(params.language) if params.language else None
@@ -663,13 +663,13 @@ class RimeHttpTTSService(TTSService):
""" """
Settings = RimeTTSSettings Settings = RimeTTSSettings
_settings: RimeTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for Rime HTTP TTS service. """Configuration parameters for Rime HTTP TTS service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=RimeTTSSettings(...)`` instead. Use ``settings=RimeHttpTTSService.Settings(...)`` instead.
Parameters: Parameters:
language: Language for synthesis. Defaults to English. language: Language for synthesis. Defaults to English.
@@ -696,7 +696,7 @@ class RimeHttpTTSService(TTSService):
model: Optional[str] = None, model: Optional[str] = None,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[RimeTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize Rime HTTP TTS service. """Initialize Rime HTTP TTS service.
@@ -706,26 +706,26 @@ class RimeHttpTTSService(TTSService):
voice_id: ID of the voice to use. voice_id: ID of the voice to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=RimeTTSSettings(voice=...)`` instead. Use ``settings=RimeHttpTTSService.Settings(voice=...)`` instead.
aiohttp_session: Shared aiohttp session for HTTP requests. aiohttp_session: Shared aiohttp session for HTTP requests.
model: Model ID to use for synthesis. model: Model ID to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=RimeTTSSettings(model=...)`` instead. Use ``settings=RimeHttpTTSService.Settings(model=...)`` instead.
sample_rate: Audio sample rate in Hz. sample_rate: Audio sample rate in Hz.
params: Additional configuration parameters. params: Additional configuration parameters.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=RimeTTSSettings(...)`` instead. Use ``settings=RimeHttpTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to parent TTSService. **kwargs: Additional arguments passed to parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = RimeTTSSettings( default_settings = self.Settings(
model="mistv2", model="mistv2",
voice=None, voice=None,
language="eng", language="eng",
@@ -744,15 +744,15 @@ class RimeHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", RimeTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if model is not None: if model is not None:
_warn_deprecated_param("model", RimeTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", RimeTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = ( default_settings.language = (
self.language_to_service_language(params.language) if params.language else "eng" self.language_to_service_language(params.language) if params.language else "eng"
@@ -888,13 +888,13 @@ class RimeNonJsonTTSService(InterruptibleTTSService):
""" """
Settings = RimeNonJsonTTSSettings Settings = RimeNonJsonTTSSettings
_settings: RimeNonJsonTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for Rime Non-JSON WebSocket TTS service. """Configuration parameters for Rime Non-JSON WebSocket TTS service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=RimeNonJsonTTSSettings(...)`` instead. Use ``settings=RimeNonJsonTTSService.Settings(...)`` instead.
Args: Args:
language: Language for synthesis. Defaults to English. language: Language for synthesis. Defaults to English.
@@ -922,7 +922,7 @@ class RimeNonJsonTTSService(InterruptibleTTSService):
audio_format: str = "pcm", audio_format: str = "pcm",
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[RimeNonJsonTTSSettings] = None, settings: Optional[Settings] = None,
aggregate_sentences: Optional[bool] = None, aggregate_sentences: Optional[bool] = None,
text_aggregation_mode: Optional[TextAggregationMode] = None, text_aggregation_mode: Optional[TextAggregationMode] = None,
**kwargs, **kwargs,
@@ -934,20 +934,20 @@ class RimeNonJsonTTSService(InterruptibleTTSService):
voice_id: ID of the voice to use. voice_id: ID of the voice to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=RimeNonJsonTTSSettings(voice=...)`` instead. Use ``settings=RimeNonJsonTTSService.Settings(voice=...)`` instead.
url: Rime websocket API endpoint. url: Rime websocket API endpoint.
model: Model ID to use for synthesis. model: Model ID to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=RimeNonJsonTTSSettings(model=...)`` instead. Use ``settings=RimeNonJsonTTSService.Settings(model=...)`` instead.
audio_format: Audio format to use. audio_format: Audio format to use.
sample_rate: Audio sample rate in Hz. sample_rate: Audio sample rate in Hz.
params: Additional configuration parameters. params: Additional configuration parameters.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=RimeNonJsonTTSSettings(...)`` instead. Use ``settings=RimeNonJsonTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -962,7 +962,7 @@ class RimeNonJsonTTSService(InterruptibleTTSService):
**kwargs: Additional arguments passed to parent class. **kwargs: Additional arguments passed to parent class.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = RimeNonJsonTTSSettings( default_settings = self.Settings(
voice=None, voice=None,
model="arcana", model="arcana",
language=None, language=None,
@@ -974,15 +974,15 @@ class RimeNonJsonTTSService(InterruptibleTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", RimeNonJsonTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
if model is not None: if model is not None:
_warn_deprecated_param("model", RimeNonJsonTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", RimeNonJsonTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = ( default_settings.language = (
self.language_to_service_language(params.language) if params.language else None self.language_to_service_language(params.language) if params.language else None

View File

@@ -22,14 +22,14 @@ from pipecat.metrics.metrics import LLMTokenUsage
from pipecat.processors.aggregators.llm_context import LLMContext from pipecat.processors.aggregators.llm_context import LLMContext
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
from pipecat.services.llm_service import FunctionCallFromLLM from pipecat.services.llm_service import FunctionCallFromLLM
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
from pipecat.utils.tracing.service_decorators import traced_llm from pipecat.utils.tracing.service_decorators import traced_llm
@dataclass @dataclass
class SambaNovaLLMSettings(OpenAILLMSettings): class SambaNovaLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for SambaNovaLLMService.""" """Settings for SambaNovaLLMService."""
pass pass
@@ -43,7 +43,7 @@ class SambaNovaLLMService(OpenAILLMService): # type: ignore
""" """
Settings = SambaNovaLLMSettings Settings = SambaNovaLLMSettings
_settings: SambaNovaLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -51,7 +51,7 @@ class SambaNovaLLMService(OpenAILLMService): # type: ignore
api_key: str, api_key: str,
model: Optional[str] = None, model: Optional[str] = None,
base_url: str = "https://api.sambanova.ai/v1", base_url: str = "https://api.sambanova.ai/v1",
settings: Optional[SambaNovaLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs: Dict[Any, Any], **kwargs: Dict[Any, Any],
) -> None: ) -> None:
"""Initialize SambaNova LLM service. """Initialize SambaNova LLM service.
@@ -61,7 +61,7 @@ class SambaNovaLLMService(OpenAILLMService): # type: ignore
model: The model identifier to use. Defaults to "Llama-4-Maverick-17B-128E-Instruct". model: The model identifier to use. Defaults to "Llama-4-Maverick-17B-128E-Instruct".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=SambaNovaLLMService.Settings(model=...)`` instead.
base_url: The base URL for SambaNova API. Defaults to "https://api.sambanova.ai/v1". base_url: The base URL for SambaNova API. Defaults to "https://api.sambanova.ai/v1".
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -69,11 +69,11 @@ class SambaNovaLLMService(OpenAILLMService): # type: ignore
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = SambaNovaLLMSettings(model="Llama-4-Maverick-17B-128E-Instruct") default_settings = self.Settings(model="Llama-4-Maverick-17B-128E-Instruct")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", SambaNovaLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -15,14 +15,13 @@ from pipecat.services.settings import _warn_deprecated_param
from pipecat.services.stt_latency import SAMBANOVA_TTFS_P99 from pipecat.services.stt_latency import SAMBANOVA_TTFS_P99
from pipecat.services.whisper.base_stt import ( from pipecat.services.whisper.base_stt import (
BaseWhisperSTTService, BaseWhisperSTTService,
BaseWhisperSTTSettings,
Transcription, Transcription,
) )
from pipecat.transcriptions.language import Language from pipecat.transcriptions.language import Language
@dataclass @dataclass
class SambaNovaSTTSettings(BaseWhisperSTTSettings): class SambaNovaSTTSettings(BaseWhisperSTTService.Settings):
"""Settings for the SambaNova STT service.""" """Settings for the SambaNova STT service."""
pass pass
@@ -46,7 +45,7 @@ class SambaNovaSTTService(BaseWhisperSTTService): # type: ignore
language: Optional[Language] = None, language: Optional[Language] = None,
prompt: Optional[str] = None, prompt: Optional[str] = None,
temperature: Optional[float] = None, temperature: Optional[float] = None,
settings: Optional[SambaNovaSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = SAMBANOVA_TTFS_P99, ttfs_p99_latency: Optional[float] = SAMBANOVA_TTFS_P99,
**kwargs: Any, **kwargs: Any,
) -> None: ) -> None:
@@ -56,24 +55,24 @@ class SambaNovaSTTService(BaseWhisperSTTService): # type: ignore
model: Whisper model to use. model: Whisper model to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SambaNovaSTTSettings(model=...)`` instead. Use ``settings=SambaNovaSTTService.Settings(model=...)`` instead.
api_key: SambaNova API key. Defaults to None. api_key: SambaNova API key. Defaults to None.
base_url: API base URL. Defaults to "https://api.sambanova.ai/v1". base_url: API base URL. Defaults to "https://api.sambanova.ai/v1".
language: Language of the audio input. language: Language of the audio input.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SambaNovaSTTSettings(language=...)`` instead. Use ``settings=SambaNovaSTTService.Settings(language=...)`` instead.
prompt: Optional text to guide the model's style or continue a previous segment. prompt: Optional text to guide the model's style or continue a previous segment.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SambaNovaSTTSettings(prompt=...)`` instead. Use ``settings=SambaNovaSTTService.Settings(prompt=...)`` instead.
temperature: Optional sampling temperature between 0 and 1. temperature: Optional sampling temperature between 0 and 1.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SambaNovaSTTSettings(temperature=...)`` instead. Use ``settings=SambaNovaSTTService.Settings(temperature=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -82,7 +81,7 @@ class SambaNovaSTTService(BaseWhisperSTTService): # type: ignore
**kwargs: Additional arguments passed to `pipecat.services.whisper.base_stt.BaseWhisperSTTService`. **kwargs: Additional arguments passed to `pipecat.services.whisper.base_stt.BaseWhisperSTTService`.
""" """
# --- 1. Hardcoded defaults --- # --- 1. Hardcoded defaults ---
default_settings = SambaNovaSTTSettings( default_settings = self.Settings(
model="Whisper-Large-v3", model="Whisper-Large-v3",
language=self.language_to_service_language(Language.EN), language=self.language_to_service_language(Language.EN),
prompt=None, prompt=None,
@@ -91,16 +90,16 @@ class SambaNovaSTTService(BaseWhisperSTTService): # type: ignore
# --- 2. Deprecated direct-arg overrides --- # --- 2. Deprecated direct-arg overrides ---
if model is not None: if model is not None:
_warn_deprecated_param("model", SambaNovaSTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if language is not None: if language is not None:
_warn_deprecated_param("language", SambaNovaSTTSettings, "language") _warn_deprecated_param("language", self.Settings, "language")
default_settings.language = self.language_to_service_language(language) default_settings.language = self.language_to_service_language(language)
if prompt is not None: if prompt is not None:
_warn_deprecated_param("prompt", SambaNovaSTTSettings, "prompt") _warn_deprecated_param("prompt", self.Settings, "prompt")
default_settings.prompt = prompt default_settings.prompt = prompt
if temperature is not None: if temperature is not None:
_warn_deprecated_param("temperature", SambaNovaSTTSettings, "temperature") _warn_deprecated_param("temperature", self.Settings, "temperature")
default_settings.temperature = temperature default_settings.temperature = temperature
# --- 3. (no params object for this service) --- # --- 3. (no params object for this service) ---

View File

@@ -172,13 +172,13 @@ class SarvamSTTService(STTService):
""" """
Settings = SarvamSTTSettings Settings = SarvamSTTSettings
_settings: SarvamSTTSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for Sarvam STT service. """Configuration parameters for Sarvam STT service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SarvamSTTSettings(...)`` instead. Use ``settings=SarvamSTTService.Settings(...)`` instead.
Parameters: Parameters:
language: Target language for transcription. language: Target language for transcription.
@@ -210,7 +210,7 @@ class SarvamSTTService(STTService):
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
input_audio_codec: str = "wav", input_audio_codec: str = "wav",
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[SarvamSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = SARVAM_TTFS_P99, ttfs_p99_latency: Optional[float] = SARVAM_TTFS_P99,
keepalive_timeout: Optional[float] = None, keepalive_timeout: Optional[float] = None,
keepalive_interval: float = 5.0, keepalive_interval: float = 5.0,
@@ -223,7 +223,7 @@ class SarvamSTTService(STTService):
model: Sarvam model to use for transcription. model: Sarvam model to use for transcription.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SarvamSTTSettings(model=...)`` instead. Use ``settings=SarvamSTTService.Settings(model=...)`` instead.
mode: Mode of operation. Options: transcribe, translate, verbatim, mode: Mode of operation. Options: transcribe, translate, verbatim,
translit, codemix. Only applicable to models that support it translit, codemix. Only applicable to models that support it
@@ -233,7 +233,7 @@ class SarvamSTTService(STTService):
params: Configuration parameters for Sarvam STT service. params: Configuration parameters for Sarvam STT service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SarvamSTTSettings(...)`` instead. Use ``settings=SarvamSTTService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -245,7 +245,7 @@ class SarvamSTTService(STTService):
**kwargs: Additional arguments passed to the parent STTService. **kwargs: Additional arguments passed to the parent STTService.
""" """
# --- 1. Hardcoded defaults --- # --- 1. Hardcoded defaults ---
default_settings = SarvamSTTSettings( default_settings = self.Settings(
model="saarika:v2.5", model="saarika:v2.5",
language=None, language=None,
prompt=None, prompt=None,
@@ -255,12 +255,12 @@ class SarvamSTTService(STTService):
# --- 2. Deprecated direct-arg overrides --- # --- 2. Deprecated direct-arg overrides ---
if model is not None: if model is not None:
_warn_deprecated_param("model", SarvamSTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# --- 3. Deprecated params overrides --- # --- 3. Deprecated params overrides ---
if params is not None: if params is not None:
_warn_deprecated_param("params", SarvamSTTSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = params.language default_settings.language = params.language
default_settings.prompt = params.prompt default_settings.prompt = params.prompt
@@ -374,7 +374,7 @@ class SarvamSTTService(STTService):
"""Apply a settings delta, validate, sync state, and reconnect. """Apply a settings delta, validate, sync state, and reconnect.
Args: Args:
delta: A :class:`STTSettings` (or ``SarvamSTTSettings``) delta. delta: A :class:`STTSettings` (or ``SarvamSTTService.Settings``) delta.
Returns: Returns:
Dict mapping changed field names to their previous values. Dict mapping changed field names to their previous values.
@@ -389,11 +389,7 @@ class SarvamSTTService(STTService):
f"Model '{self._settings.model}' does not support language parameter " f"Model '{self._settings.model}' does not support language parameter "
"(auto-detects language)." "(auto-detects language)."
) )
if ( if isinstance(delta, self.Settings) and is_given(delta.prompt) and delta.prompt is not None:
isinstance(delta, SarvamSTTSettings)
and is_given(delta.prompt)
and delta.prompt is not None
):
if not self._config.supports_prompt: if not self._config.supports_prompt:
raise ValueError( raise ValueError(
f"Model '{self._settings.model}' does not support prompt parameter." f"Model '{self._settings.model}' does not support prompt parameter."
@@ -417,7 +413,7 @@ class SarvamSTTService(STTService):
"""Set the transcription/translation prompt and reconnect. """Set the transcription/translation prompt and reconnect.
.. deprecated:: 0.0.104 .. deprecated:: 0.0.104
Use ``STTUpdateSettingsFrame(SarvamSTTSettings(prompt=...))`` instead. Use ``STTUpdateSettingsFrame(SarvamSTTService.Settings(prompt=...))`` instead.
Args: Args:
prompt: Prompt text to guide transcription/translation style/context. prompt: Prompt text to guide transcription/translation style/context.
@@ -430,7 +426,7 @@ class SarvamSTTService(STTService):
warnings.simplefilter("always") warnings.simplefilter("always")
warnings.warn( warnings.warn(
f"{self.__class__.__name__}.set_prompt() is deprecated. " f"{self.__class__.__name__}.set_prompt() is deprecated. "
"Use STTUpdateSettingsFrame(SarvamSTTSettings(prompt=...)) instead.", "Use STTUpdateSettingsFrame(self.Settings(prompt=...)) instead.",
DeprecationWarning, DeprecationWarning,
stacklevel=2, stacklevel=2,
) )

View File

@@ -284,7 +284,7 @@ class SarvamHttpTTSSettings(TTSSettings):
class SarvamTTSSettings(SarvamHttpTTSSettings): class SarvamTTSSettings(SarvamHttpTTSSettings):
"""Settings for SarvamTTSService. """Settings for SarvamTTSService.
Extends :class:`SarvamHttpTTSSettings` with WebSocket-specific buffering parameters. Extends :class:`SarvamHttpTTSService.Settings` with WebSocket-specific buffering parameters.
Parameters: Parameters:
min_buffer_size: Minimum characters to buffer before generating audio. min_buffer_size: Minimum characters to buffer before generating audio.
@@ -352,13 +352,13 @@ class SarvamHttpTTSService(TTSService):
""" """
Settings = SarvamHttpTTSSettings Settings = SarvamHttpTTSSettings
_settings: SarvamHttpTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Input parameters for Sarvam TTS configuration. """Input parameters for Sarvam TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``SarvamHttpTTSSettings`` directly via the ``settings`` parameter instead. Use ``SarvamHttpTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
language: Language for synthesis. Defaults to English (India). language: Language for synthesis. Defaults to English (India).
@@ -416,7 +416,7 @@ class SarvamHttpTTSService(TTSService):
base_url: str = "https://api.sarvam.ai", base_url: str = "https://api.sarvam.ai",
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[SarvamHttpTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Sarvam TTS service. """Initialize the Sarvam TTS service.
@@ -427,14 +427,14 @@ class SarvamHttpTTSService(TTSService):
voice_id: Speaker voice ID. If None, uses model-appropriate default. voice_id: Speaker voice ID. If None, uses model-appropriate default.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SarvamHttpTTSSettings(voice=...)`` instead. Use ``settings=SarvamHttpTTSService.Settings(voice=...)`` instead.
model: TTS model to use. Options: model: TTS model to use. Options:
- "bulbul:v2" (default): Standard model with pitch/loudness support - "bulbul:v2" (default): Standard model with pitch/loudness support
- "bulbul:v3-beta": Advanced model with temperature control - "bulbul:v3-beta": Advanced model with temperature control
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SarvamHttpTTSSettings(model=...)`` instead. Use ``settings=SarvamHttpTTSService.Settings(model=...)`` instead.
base_url: Sarvam AI API base URL. Defaults to "https://api.sarvam.ai". base_url: Sarvam AI API base URL. Defaults to "https://api.sarvam.ai".
sample_rate: Audio sample rate in Hz (8000, 16000, 22050, 24000). sample_rate: Audio sample rate in Hz (8000, 16000, 22050, 24000).
@@ -442,14 +442,14 @@ class SarvamHttpTTSService(TTSService):
params: Additional voice and preprocessing parameters. If None, uses defaults. params: Additional voice and preprocessing parameters. If None, uses defaults.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SarvamHttpTTSSettings(...)`` instead. Use ``settings=SarvamHttpTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to parent TTSService. **kwargs: Additional arguments passed to parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = SarvamHttpTTSSettings( default_settings = self.Settings(
model="bulbul:v2", model="bulbul:v2",
voice="anushka", voice="anushka",
language="en-IN", language="en-IN",
@@ -462,15 +462,15 @@ class SarvamHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", SarvamHttpTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", SarvamHttpTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", SarvamHttpTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = ( default_settings.language = (
@@ -719,13 +719,13 @@ class SarvamTTSService(InterruptibleTTSService):
""" """
Settings = SarvamTTSSettings Settings = SarvamTTSSettings
_settings: SarvamTTSSettings _settings: Settings
class InputParams(BaseModel): class InputParams(BaseModel):
"""Configuration parameters for Sarvam TTS WebSocket service. """Configuration parameters for Sarvam TTS WebSocket service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``SarvamTTSSettings`` directly via the ``settings`` parameter instead. Use ``SarvamTTSService.Settings`` directly via the ``settings`` parameter instead.
Parameters: Parameters:
pitch: Voice pitch adjustment (-0.75 to 0.75). Defaults to 0.0. pitch: Voice pitch adjustment (-0.75 to 0.75). Defaults to 0.0.
@@ -819,7 +819,7 @@ class SarvamTTSService(InterruptibleTTSService):
text_aggregation_mode: Optional[TextAggregationMode] = None, text_aggregation_mode: Optional[TextAggregationMode] = None,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[SarvamTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Sarvam TTS service with voice and transport configuration. """Initialize the Sarvam TTS service with voice and transport configuration.
@@ -831,12 +831,12 @@ class SarvamTTSService(InterruptibleTTSService):
- "bulbul:v3-beta": Advanced model with temperature control - "bulbul:v3-beta": Advanced model with temperature control
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SarvamTTSSettings(model=...)`` instead. Use ``settings=SarvamTTSService.Settings(model=...)`` instead.
voice_id: Speaker voice ID. If None, uses model-appropriate default. voice_id: Speaker voice ID. If None, uses model-appropriate default.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SarvamTTSSettings(voice=...)`` instead. Use ``settings=SarvamTTSService.Settings(voice=...)`` instead.
url: WebSocket URL for the TTS backend (default production URL). url: WebSocket URL for the TTS backend (default production URL).
aggregate_sentences: Deprecated. Use text_aggregation_mode instead. aggregate_sentences: Deprecated. Use text_aggregation_mode instead.
@@ -850,7 +850,7 @@ class SarvamTTSService(InterruptibleTTSService):
params: Optional input parameters to override defaults. params: Optional input parameters to override defaults.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SarvamTTSSettings(...)`` instead. Use ``settings=SarvamTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -859,7 +859,7 @@ class SarvamTTSService(InterruptibleTTSService):
See https://docs.sarvam.ai/api-reference-docs/text-to-speech/stream See https://docs.sarvam.ai/api-reference-docs/text-to-speech/stream
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = SarvamTTSSettings( default_settings = self.Settings(
model="bulbul:v2", model="bulbul:v2",
voice="anushka", voice="anushka",
language="en-IN", language="en-IN",
@@ -874,10 +874,10 @@ class SarvamTTSService(InterruptibleTTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", SarvamTTSSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", SarvamTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# Init-only audio format fields (not runtime-updatable) # Init-only audio format fields (not runtime-updatable)
@@ -886,7 +886,7 @@ class SarvamTTSService(InterruptibleTTSService):
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", SarvamTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
if params.language is not None: if params.language is not None:
default_settings.language = ( default_settings.language = (

View File

@@ -80,7 +80,7 @@ class SonioxInputParams(BaseModel):
"""Real-time transcription settings. """Real-time transcription settings.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SonioxSTTSettings(...)`` instead. Use ``settings=SonioxSTTService.Settings(...)`` instead.
See Soniox WebSocket API documentation for more details: See Soniox WebSocket API documentation for more details:
https://soniox.com/docs/speech-to-text/api-reference/websocket-api#configuration-parameters https://soniox.com/docs/speech-to-text/api-reference/websocket-api#configuration-parameters
@@ -175,7 +175,7 @@ class SonioxSTTService(WebsocketSTTService):
""" """
Settings = SonioxSTTSettings Settings = SonioxSTTSettings
_settings: SonioxSTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -188,7 +188,7 @@ class SonioxSTTService(WebsocketSTTService):
num_channels: int = 1, num_channels: int = 1,
params: Optional[SonioxInputParams] = None, params: Optional[SonioxInputParams] = None,
vad_force_turn_endpoint: bool = True, vad_force_turn_endpoint: bool = True,
settings: Optional[SonioxSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = SONIOX_TTFS_P99, ttfs_p99_latency: Optional[float] = SONIOX_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -201,7 +201,7 @@ class SonioxSTTService(WebsocketSTTService):
model: Soniox model to use for transcription. model: Soniox model to use for transcription.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SonioxSTTSettings(model=...)`` instead. Use ``settings=SonioxSTTService.Settings(model=...)`` instead.
audio_format: Audio format for transcription. Defaults to ``"pcm_s16le"``. audio_format: Audio format for transcription. Defaults to ``"pcm_s16le"``.
num_channels: Number of audio channels. Defaults to 1. num_channels: Number of audio channels. Defaults to 1.
@@ -209,7 +209,7 @@ class SonioxSTTService(WebsocketSTTService):
speaker diarization. speaker diarization.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SonioxSTTSettings(...)`` instead. Use ``settings=SonioxSTTService.Settings(...)`` instead.
vad_force_turn_endpoint: Listen to `VADUserStoppedSpeakingFrame` to send finalize message to Soniox. vad_force_turn_endpoint: Listen to `VADUserStoppedSpeakingFrame` to send finalize message to Soniox.
If disabled, Soniox will detect the end of the speech. Defaults to True. If disabled, Soniox will detect the end of the speech. Defaults to True.
@@ -220,7 +220,7 @@ class SonioxSTTService(WebsocketSTTService):
**kwargs: Additional arguments passed to the STTService. **kwargs: Additional arguments passed to the STTService.
""" """
# --- 1. Hardcoded defaults --- # --- 1. Hardcoded defaults ---
default_settings = SonioxSTTSettings( default_settings = self.Settings(
model="stt-rt-v4", model="stt-rt-v4",
language=None, language=None,
language_hints=None, language_hints=None,
@@ -233,12 +233,12 @@ class SonioxSTTService(WebsocketSTTService):
# --- 2. Deprecated direct-arg overrides --- # --- 2. Deprecated direct-arg overrides ---
if model is not None: if model is not None:
_warn_deprecated_param("model", SonioxSTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# --- 3. Deprecated params overrides --- # --- 3. Deprecated params overrides ---
if params is not None: if params is not None:
_warn_deprecated_param("params", SonioxSTTSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.model = params.model default_settings.model = params.model
if params.audio_format is not None: if params.audio_format is not None:
@@ -297,7 +297,7 @@ class SonioxSTTService(WebsocketSTTService):
await super().start(frame) await super().start(frame)
await self._connect() await self._connect()
async def _update_settings(self, delta: SonioxSTTSettings) -> dict[str, Any]: async def _update_settings(self, delta: Settings) -> dict[str, Any]:
"""Apply settings delta and reconnect if anything changed. """Apply settings delta and reconnect if anything changed.
Args: Args:

View File

@@ -176,7 +176,7 @@ class SpeechmaticsSTTService(STTService):
""" """
Settings = SpeechmaticsSTTSettings Settings = SpeechmaticsSTTSettings
_settings: SpeechmaticsSTTSettings _settings: Settings
# Export related classes as class attributes # Export related classes as class attributes
TurnDetectionMode = TurnDetectionMode TurnDetectionMode = TurnDetectionMode
@@ -343,7 +343,7 @@ class SpeechmaticsSTTService(STTService):
"""Update parameters for Speechmatics STT service. """Update parameters for Speechmatics STT service.
.. deprecated:: 0.0.104 .. deprecated:: 0.0.104
Use ``SpeechmaticsSTTSettings`` with ``STTUpdateSettingsFrame`` instead. Use ``SpeechmaticsSTTService.Settings`` with ``STTUpdateSettingsFrame`` instead.
Parameters: Parameters:
focus_speakers: List of speaker IDs to focus on. When enabled, only these speakers are focus_speakers: List of speaker IDs to focus on. When enabled, only these speakers are
@@ -380,7 +380,7 @@ class SpeechmaticsSTTService(STTService):
encoding: AudioEncoding = AudioEncoding.PCM_S16LE, encoding: AudioEncoding = AudioEncoding.PCM_S16LE,
params: InputParams | None = None, params: InputParams | None = None,
should_interrupt: bool = True, should_interrupt: bool = True,
settings: SpeechmaticsSTTSettings | None = None, settings: Settings | None = None,
ttfs_p99_latency: float | None = SPEECHMATICS_TTFS_P99, ttfs_p99_latency: float | None = SPEECHMATICS_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -396,7 +396,7 @@ class SpeechmaticsSTTService(STTService):
params: Input parameters for the service. params: Input parameters for the service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SpeechmaticsSTTSettings(...)`` instead. Use ``settings=SpeechmaticsSTTService.Settings(...)`` instead.
should_interrupt: Determine whether the bot should be interrupted when Speechmatics turn_detection_mode is configured to detect user speech. should_interrupt: Determine whether the bot should be interrupted when Speechmatics turn_detection_mode is configured to detect user speech.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
@@ -424,7 +424,7 @@ class SpeechmaticsSTTService(STTService):
self._check_deprecated_args(kwargs, _params) self._check_deprecated_args(kwargs, _params)
# --- 1. Hardcoded defaults --- # --- 1. Hardcoded defaults ---
default_settings = SpeechmaticsSTTSettings( default_settings = self.Settings(
model=None, # Will be resolved from operating_point after config is built model=None, # Will be resolved from operating_point after config is built
language=Language.EN, language=Language.EN,
domain=None, domain=None,
@@ -454,7 +454,7 @@ class SpeechmaticsSTTService(STTService):
# --- 3. Deprecated params overrides --- # --- 3. Deprecated params overrides ---
if params is not None: if params is not None:
_warn_deprecated_param("params", SpeechmaticsSTTSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.language = _params.language default_settings.language = _params.language
default_settings.domain = _params.domain default_settings.domain = _params.domain
@@ -537,11 +537,11 @@ class SpeechmaticsSTTService(STTService):
await super().start(frame) await super().start(frame)
await self._connect() await self._connect()
async def _update_settings(self, delta: SpeechmaticsSTTSettings) -> dict[str, Any]: async def _update_settings(self, delta: Settings) -> dict[str, Any]:
"""Apply settings delta, reconnecting only when necessary. """Apply settings delta, reconnecting only when necessary.
Fields are classified into three categories (see Fields are classified into three categories (see
``SpeechmaticsSTTSettings``): ``SpeechmaticsSTTService.Settings``):
* **HOT_FIELDS** diarization speaker settings that can be pushed * **HOT_FIELDS** diarization speaker settings that can be pushed
to a live Speechmatics connection without reconnecting. to a live Speechmatics connection without reconnecting.
@@ -561,7 +561,7 @@ class SpeechmaticsSTTService(STTService):
if not changed: if not changed:
return changed return changed
no_reconnect = SpeechmaticsSTTSettings.HOT_FIELDS | SpeechmaticsSTTSettings.LOCAL_FIELDS no_reconnect = self.Settings.HOT_FIELDS | self.Settings.LOCAL_FIELDS
needs_reconnect = bool(changed.keys() - no_reconnect) needs_reconnect = bool(changed.keys() - no_reconnect)
if needs_reconnect: if needs_reconnect:
@@ -571,7 +571,7 @@ class SpeechmaticsSTTService(STTService):
self._config = self._build_config(self._settings) self._config = self._build_config(self._settings)
await self._disconnect() await self._disconnect()
await self._connect() await self._connect()
elif changed.keys() & SpeechmaticsSTTSettings.HOT_FIELDS: elif changed.keys() & self.Settings.HOT_FIELDS:
logger.debug(f"{self} applying hot settings update: {changed.keys()}") logger.debug(f"{self} applying hot settings update: {changed.keys()}")
if self._config.enable_diarization: if self._config.enable_diarization:
# Only hot-updatable fields changed — push to the live session. # Only hot-updatable fields changed — push to the live session.
@@ -586,7 +586,7 @@ class SpeechmaticsSTTService(STTService):
) )
# Diarization not enabled — the new settings will take effect # Diarization not enabled — the new settings will take effect
# if/when diarization is enabled, which does require a reconnect. # if/when diarization is enabled, which does require a reconnect.
elif changed.keys() & SpeechmaticsSTTSettings.LOCAL_FIELDS: elif changed.keys() & self.Settings.LOCAL_FIELDS:
logger.debug( logger.debug(
f"{self} local settings update, no special action required: {changed.keys()}" f"{self} local settings update, no special action required: {changed.keys()}"
) )
@@ -705,7 +705,7 @@ class SpeechmaticsSTTService(STTService):
# CONFIGURATION # CONFIGURATION
# ============================================================================ # ============================================================================
def _build_config(self, settings: SpeechmaticsSTTSettings) -> VoiceAgentConfig: def _build_config(self, settings: Settings) -> VoiceAgentConfig:
"""Build a ``VoiceAgentConfig`` from the given settings. """Build a ``VoiceAgentConfig`` from the given settings.
Used both at init time (with explicit settings, before Used both at init time (with explicit settings, before
@@ -778,7 +778,7 @@ class SpeechmaticsSTTService(STTService):
.. deprecated:: 0.0.104 .. deprecated:: 0.0.104
Use ``STTUpdateSettingsFrame`` with Use ``STTUpdateSettingsFrame`` with
``SpeechmaticsSTTSettings(...)`` instead. ``SpeechmaticsSTTService.Settings(...)`` instead.
This can update the speakers to listen to or ignore during an in-flight This can update the speakers to listen to or ignore during an in-flight
transcription. Only available if diarization is enabled. transcription. Only available if diarization is enabled.
@@ -790,7 +790,7 @@ class SpeechmaticsSTTService(STTService):
warnings.simplefilter("always") warnings.simplefilter("always")
warnings.warn( warnings.warn(
"update_params() is deprecated. Use STTUpdateSettingsFrame with " "update_params() is deprecated. Use STTUpdateSettingsFrame with "
"SpeechmaticsSTTSettings(...) instead.", "self.Settings(...) instead.",
DeprecationWarning, DeprecationWarning,
) )
# Check possible # Check possible

View File

@@ -54,7 +54,7 @@ class SpeechmaticsTTSService(TTSService):
""" """
Settings = SpeechmaticsTTSSettings Settings = SpeechmaticsTTSSettings
_settings: SpeechmaticsTTSSettings _settings: Settings
SPEECHMATICS_SAMPLE_RATE = 16000 SPEECHMATICS_SAMPLE_RATE = 16000
@@ -62,7 +62,7 @@ class SpeechmaticsTTSService(TTSService):
"""Optional input parameters for Speechmatics TTS configuration. """Optional input parameters for Speechmatics TTS configuration.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SpeechmaticsTTSSettings(...)`` instead. Use ``settings=SpeechmaticsTTSService.Settings(...)`` instead.
Parameters: Parameters:
max_retries: Maximum number of retries for TTS requests. Defaults to 5. max_retries: Maximum number of retries for TTS requests. Defaults to 5.
@@ -79,7 +79,7 @@ class SpeechmaticsTTSService(TTSService):
aiohttp_session: aiohttp.ClientSession, aiohttp_session: aiohttp.ClientSession,
sample_rate: Optional[int] = SPEECHMATICS_SAMPLE_RATE, sample_rate: Optional[int] = SPEECHMATICS_SAMPLE_RATE,
params: Optional[InputParams] = None, params: Optional[InputParams] = None,
settings: Optional[SpeechmaticsTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Speechmatics TTS service. """Initialize the Speechmatics TTS service.
@@ -90,14 +90,14 @@ class SpeechmaticsTTSService(TTSService):
voice_id: Voice model to use for synthesis. voice_id: Voice model to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SpeechmaticsTTSSettings(voice=...)`` instead. Use ``settings=SpeechmaticsTTSService.Settings(voice=...)`` instead.
aiohttp_session: Shared aiohttp session for HTTP requests. aiohttp_session: Shared aiohttp session for HTTP requests.
sample_rate: Audio sample rate in Hz. sample_rate: Audio sample rate in Hz.
params: Input parameters for the service. params: Input parameters for the service.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=SpeechmaticsTTSSettings(...)`` instead. Use ``settings=SpeechmaticsTTSService.Settings(...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
@@ -110,7 +110,7 @@ class SpeechmaticsTTSService(TTSService):
) )
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = SpeechmaticsTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice="sarah", voice="sarah",
language=None, language=None,
@@ -119,12 +119,12 @@ class SpeechmaticsTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", SpeechmaticsTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided # 3. Apply params overrides — only if settings not provided
if params is not None: if params is not None:
_warn_deprecated_param("params", SpeechmaticsTTSSettings) _warn_deprecated_param("params", self.Settings)
if not settings: if not settings:
default_settings.max_retries = params.max_retries default_settings.max_retries = params.max_retries

View File

@@ -60,7 +60,7 @@ class TavusVideoService(AIService):
""" """
Settings = TavusVideoSettings Settings = TavusVideoSettings
_settings: TavusVideoSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -69,7 +69,7 @@ class TavusVideoService(AIService):
replica_id: str, replica_id: str,
persona_id: str = "pipecat-stream", persona_id: str = "pipecat-stream",
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
settings: Optional[TavusVideoSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
) -> None: ) -> None:
"""Initialize the Tavus video service. """Initialize the Tavus video service.

View File

@@ -11,13 +11,13 @@ from typing import Optional
from loguru import logger from loguru import logger
from pipecat.services.openai.base_llm import OpenAILLMSettings from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param from pipecat.services.settings import _warn_deprecated_param
@dataclass @dataclass
class TogetherLLMSettings(OpenAILLMSettings): class TogetherLLMSettings(BaseOpenAILLMService.Settings):
"""Settings for TogetherLLMService.""" """Settings for TogetherLLMService."""
pass pass
@@ -31,7 +31,7 @@ class TogetherLLMService(OpenAILLMService):
""" """
Settings = TogetherLLMSettings Settings = TogetherLLMSettings
_settings: TogetherLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -39,7 +39,7 @@ class TogetherLLMService(OpenAILLMService):
api_key: str, api_key: str,
base_url: str = "https://api.together.xyz/v1", base_url: str = "https://api.together.xyz/v1",
model: Optional[str] = None, model: Optional[str] = None,
settings: Optional[TogetherLLMSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize Together.ai LLM service. """Initialize Together.ai LLM service.
@@ -50,18 +50,18 @@ class TogetherLLMService(OpenAILLMService):
model: The model identifier to use. Defaults to "meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo". model: The model identifier to use. Defaults to "meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo".
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=OpenAILLMSettings(model=...)`` instead. Use ``settings=TogetherLLMService.Settings(model=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional keyword arguments passed to OpenAILLMService. **kwargs: Additional keyword arguments passed to OpenAILLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = TogetherLLMSettings(model="meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo") default_settings = self.Settings(model="meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo")
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if model is not None: if model is not None:
_warn_deprecated_param("model", TogetherLLMSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)

View File

@@ -167,13 +167,13 @@ class UltravoxRealtimeLLMService(LLMService):
""" """
Settings = UltravoxRealtimeLLMSettings Settings = UltravoxRealtimeLLMSettings
_settings: UltravoxRealtimeLLMSettings _settings: Settings
def __init__( def __init__(
self, self,
*, *,
params: Union[AgentInputParams, OneShotInputParams, JoinUrlInputParams], params: Union[AgentInputParams, OneShotInputParams, JoinUrlInputParams],
settings: Optional[UltravoxRealtimeLLMSettings] = None, settings: Optional[Settings] = None,
one_shot_selected_tools: Optional[ToolsSchema] = None, one_shot_selected_tools: Optional[ToolsSchema] = None,
**kwargs, **kwargs,
): ):
@@ -188,7 +188,7 @@ class UltravoxRealtimeLLMService(LLMService):
**kwargs: Additional arguments passed to parent LLMService. **kwargs: Additional arguments passed to parent LLMService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = UltravoxRealtimeLLMSettings( default_settings = self.Settings(
model=None, model=None,
system_instruction=None, system_instruction=None,
temperature=None, temperature=None,
@@ -383,7 +383,7 @@ class UltravoxRealtimeLLMService(LLMService):
await self.cancel_task(self._receive_task, timeout=1.0) await self.cancel_task(self._receive_task, timeout=1.0)
self._receive_task = None self._receive_task = None
async def _update_settings(self, delta: UltravoxRealtimeLLMSettings): async def _update_settings(self, delta: Settings):
changed = await super()._update_settings(delta) changed = await super()._update_settings(delta)
if "output_medium" in changed: if "output_medium" in changed:
await self._update_output_medium(self._settings.output_medium) await self._update_output_medium(self._settings.output_medium)

View File

@@ -123,7 +123,7 @@ class BaseWhisperSTTService(SegmentedSTTService):
""" """
Settings = BaseWhisperSTTSettings Settings = BaseWhisperSTTSettings
_settings: BaseWhisperSTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -136,7 +136,7 @@ class BaseWhisperSTTService(SegmentedSTTService):
temperature: Optional[float] = None, temperature: Optional[float] = None,
include_prob_metrics: bool = False, include_prob_metrics: bool = False,
push_empty_transcripts: bool = False, push_empty_transcripts: bool = False,
settings: Optional[BaseWhisperSTTSettings] = None, settings: Optional[Settings] = None,
ttfs_p99_latency: Optional[float] = WHISPER_TTFS_P99, ttfs_p99_latency: Optional[float] = WHISPER_TTFS_P99,
**kwargs, **kwargs,
): ):
@@ -146,24 +146,24 @@ class BaseWhisperSTTService(SegmentedSTTService):
model: Name of the Whisper model to use. model: Name of the Whisper model to use.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=BaseWhisperSTTSettings(model=...)`` instead. Use ``settings=BaseWhisperSTTService.Settings(model=...)`` instead.
api_key: Service API key. Defaults to None. api_key: Service API key. Defaults to None.
base_url: Service API base URL. Defaults to None. base_url: Service API base URL. Defaults to None.
language: Language of the audio input. language: Language of the audio input.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=BaseWhisperSTTSettings(language=...)`` instead. Use ``settings=BaseWhisperSTTService.Settings(language=...)`` instead.
prompt: Optional text to guide the model's style or continue a previous segment. prompt: Optional text to guide the model's style or continue a previous segment.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=BaseWhisperSTTSettings(prompt=...)`` instead. Use ``settings=BaseWhisperSTTService.Settings(prompt=...)`` instead.
temperature: Sampling temperature between 0 and 1. temperature: Sampling temperature between 0 and 1.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=BaseWhisperSTTSettings(temperature=...)`` instead. Use ``settings=BaseWhisperSTTService.Settings(temperature=...)`` instead.
include_prob_metrics: If True, enables probability metrics in API response. include_prob_metrics: If True, enables probability metrics in API response.
Each service implements this differently (see child classes). Each service implements this differently (see child classes).
@@ -181,7 +181,7 @@ class BaseWhisperSTTService(SegmentedSTTService):
**kwargs: Additional arguments passed to SegmentedSTTService. **kwargs: Additional arguments passed to SegmentedSTTService.
""" """
# --- 1. Hardcoded defaults --- # --- 1. Hardcoded defaults ---
default_settings = BaseWhisperSTTSettings( default_settings = self.Settings(
model=None, model=None,
language=None, language=None,
prompt=None, prompt=None,
@@ -190,16 +190,16 @@ class BaseWhisperSTTService(SegmentedSTTService):
# --- 2. Deprecated direct-arg overrides --- # --- 2. Deprecated direct-arg overrides ---
if model is not None: if model is not None:
_warn_deprecated_param("model", BaseWhisperSTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model default_settings.model = model
if language is not None: if language is not None:
_warn_deprecated_param("language", BaseWhisperSTTSettings, "language") _warn_deprecated_param("language", self.Settings, "language")
default_settings.language = self.language_to_service_language(language) default_settings.language = self.language_to_service_language(language)
if prompt is not None: if prompt is not None:
_warn_deprecated_param("prompt", BaseWhisperSTTSettings, "prompt") _warn_deprecated_param("prompt", self.Settings, "prompt")
default_settings.prompt = prompt default_settings.prompt = prompt
if temperature is not None: if temperature is not None:
_warn_deprecated_param("temperature", BaseWhisperSTTSettings, "temperature") _warn_deprecated_param("temperature", self.Settings, "temperature")
default_settings.temperature = temperature default_settings.temperature = temperature
# --- 3. (no params object for this service) --- # --- 3. (no params object for this service) ---

View File

@@ -208,7 +208,7 @@ class WhisperSTTService(SegmentedSTTService):
""" """
Settings = WhisperSTTSettings Settings = WhisperSTTSettings
_settings: WhisperSTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -218,7 +218,7 @@ class WhisperSTTService(SegmentedSTTService):
compute_type: str = "default", compute_type: str = "default",
no_speech_prob: Optional[float] = None, no_speech_prob: Optional[float] = None,
language: Optional[Language] = None, language: Optional[Language] = None,
settings: Optional[WhisperSTTSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the Whisper STT service. """Initialize the Whisper STT service.
@@ -227,7 +227,7 @@ class WhisperSTTService(SegmentedSTTService):
model: The Whisper model to use for transcription. Can be a Model enum or string. model: The Whisper model to use for transcription. Can be a Model enum or string.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=WhisperSTTSettings(model=...)`` instead. Use ``settings=WhisperSTTService.Settings(model=...)`` instead.
device: The device to run inference on ('cpu', 'cuda', or 'auto'). device: The device to run inference on ('cpu', 'cuda', or 'auto').
Defaults to ``"auto"``. Defaults to ``"auto"``.
@@ -236,19 +236,19 @@ class WhisperSTTService(SegmentedSTTService):
no_speech_prob: Probability threshold for filtering out non-speech segments. no_speech_prob: Probability threshold for filtering out non-speech segments.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=WhisperSTTSettings(no_speech_prob=...)`` instead. Use ``settings=WhisperSTTService.Settings(no_speech_prob=...)`` instead.
language: The default language for transcription. language: The default language for transcription.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=WhisperSTTSettings(language=...)`` instead. Use ``settings=WhisperSTTService.Settings(language=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to SegmentedSTTService. **kwargs: Additional arguments passed to SegmentedSTTService.
""" """
# --- 1. Hardcoded defaults --- # --- 1. Hardcoded defaults ---
default_settings = WhisperSTTSettings( default_settings = self.Settings(
model=Model.DISTIL_MEDIUM_EN.value, model=Model.DISTIL_MEDIUM_EN.value,
language=Language.EN, language=Language.EN,
no_speech_prob=0.4, no_speech_prob=0.4,
@@ -256,13 +256,13 @@ class WhisperSTTService(SegmentedSTTService):
# --- 2. Deprecated direct-arg overrides --- # --- 2. Deprecated direct-arg overrides ---
if model is not None: if model is not None:
_warn_deprecated_param("model", WhisperSTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model if isinstance(model, str) else model.value default_settings.model = model if isinstance(model, str) else model.value
if no_speech_prob is not None: if no_speech_prob is not None:
_warn_deprecated_param("no_speech_prob", WhisperSTTSettings, "no_speech_prob") _warn_deprecated_param("no_speech_prob", self.Settings, "no_speech_prob")
default_settings.no_speech_prob = no_speech_prob default_settings.no_speech_prob = no_speech_prob
if language is not None: if language is not None:
_warn_deprecated_param("language", WhisperSTTSettings, "language") _warn_deprecated_param("language", self.Settings, "language")
default_settings.language = language default_settings.language = language
# --- 3. (no params object for this service) --- # --- 3. (no params object for this service) ---
@@ -382,7 +382,7 @@ class WhisperSTTServiceMLX(WhisperSTTService):
""" """
Settings = WhisperMLXSTTSettings Settings = WhisperMLXSTTSettings
_settings: WhisperMLXSTTSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -391,7 +391,7 @@ class WhisperSTTServiceMLX(WhisperSTTService):
no_speech_prob: Optional[float] = None, no_speech_prob: Optional[float] = None,
language: Optional[Language] = None, language: Optional[Language] = None,
temperature: Optional[float] = None, temperature: Optional[float] = None,
settings: Optional[WhisperMLXSTTSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the MLX Whisper STT service. """Initialize the MLX Whisper STT service.
@@ -400,29 +400,29 @@ class WhisperSTTServiceMLX(WhisperSTTService):
model: The MLX Whisper model to use for transcription. Can be an MLXModel enum or string. model: The MLX Whisper model to use for transcription. Can be an MLXModel enum or string.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=WhisperMLXSTTSettings(model=...)`` instead. Use ``settings=WhisperSTTServiceMLX.Settings(model=...)`` instead.
no_speech_prob: Probability threshold for filtering out non-speech segments. no_speech_prob: Probability threshold for filtering out non-speech segments.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=WhisperMLXSTTSettings(no_speech_prob=...)`` instead. Use ``settings=WhisperSTTServiceMLX.Settings(no_speech_prob=...)`` instead.
language: The default language for transcription. language: The default language for transcription.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=WhisperMLXSTTSettings(language=...)`` instead. Use ``settings=WhisperSTTServiceMLX.Settings(language=...)`` instead.
temperature: Temperature for sampling. Can be a float or tuple of floats. temperature: Temperature for sampling. Can be a float or tuple of floats.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=WhisperMLXSTTSettings(temperature=...)`` instead. Use ``settings=WhisperSTTServiceMLX.Settings(temperature=...)`` instead.
settings: Runtime-updatable settings. When provided alongside deprecated settings: Runtime-updatable settings. When provided alongside deprecated
parameters, ``settings`` values take precedence. parameters, ``settings`` values take precedence.
**kwargs: Additional arguments passed to SegmentedSTTService. **kwargs: Additional arguments passed to SegmentedSTTService.
""" """
# --- 1. Hardcoded defaults --- # --- 1. Hardcoded defaults ---
default_settings = WhisperMLXSTTSettings( default_settings = self.Settings(
model=MLXModel.TINY.value, model=MLXModel.TINY.value,
language=Language.EN, language=Language.EN,
no_speech_prob=0.6, no_speech_prob=0.6,
@@ -432,16 +432,16 @@ class WhisperSTTServiceMLX(WhisperSTTService):
# --- 2. Deprecated direct-arg overrides --- # --- 2. Deprecated direct-arg overrides ---
if model is not None: if model is not None:
_warn_deprecated_param("model", WhisperMLXSTTSettings, "model") _warn_deprecated_param("model", self.Settings, "model")
default_settings.model = model if isinstance(model, str) else model.value default_settings.model = model if isinstance(model, str) else model.value
if no_speech_prob is not None: if no_speech_prob is not None:
_warn_deprecated_param("no_speech_prob", WhisperMLXSTTSettings, "no_speech_prob") _warn_deprecated_param("no_speech_prob", self.Settings, "no_speech_prob")
default_settings.no_speech_prob = no_speech_prob default_settings.no_speech_prob = no_speech_prob
if language is not None: if language is not None:
_warn_deprecated_param("language", WhisperMLXSTTSettings, "language") _warn_deprecated_param("language", self.Settings, "language")
default_settings.language = language default_settings.language = language
if temperature is not None: if temperature is not None:
_warn_deprecated_param("temperature", WhisperMLXSTTSettings, "temperature") _warn_deprecated_param("temperature", self.Settings, "temperature")
default_settings.temperature = temperature default_settings.temperature = temperature
# --- 3. (no params object for this service) --- # --- 3. (no params object for this service) ---

View File

@@ -84,7 +84,7 @@ class XTTSService(TTSService):
""" """
Settings = XTTSTTSSettings Settings = XTTSTTSSettings
_settings: XTTSTTSSettings _settings: Settings
def __init__( def __init__(
self, self,
@@ -94,7 +94,7 @@ class XTTSService(TTSService):
aiohttp_session: aiohttp.ClientSession, aiohttp_session: aiohttp.ClientSession,
language: Language = Language.EN, language: Language = Language.EN,
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
settings: Optional[XTTSTTSSettings] = None, settings: Optional[Settings] = None,
**kwargs, **kwargs,
): ):
"""Initialize the XTTS service. """Initialize the XTTS service.
@@ -103,7 +103,7 @@ class XTTSService(TTSService):
voice_id: ID of the voice/speaker to use for synthesis. voice_id: ID of the voice/speaker to use for synthesis.
.. deprecated:: 0.0.105 .. deprecated:: 0.0.105
Use ``settings=XTTSTTSSettings(voice=...)`` instead. Use ``settings=XTTSService.Settings(voice=...)`` instead.
base_url: Base URL of the XTTS streaming server. base_url: Base URL of the XTTS streaming server.
aiohttp_session: HTTP session for making requests to the server. aiohttp_session: HTTP session for making requests to the server.
@@ -114,7 +114,7 @@ class XTTSService(TTSService):
**kwargs: Additional arguments passed to parent TTSService. **kwargs: Additional arguments passed to parent TTSService.
""" """
# 1. Initialize default_settings with hardcoded defaults # 1. Initialize default_settings with hardcoded defaults
default_settings = XTTSTTSSettings( default_settings = self.Settings(
model=None, model=None,
voice=None, voice=None,
language=self.language_to_service_language(language), language=self.language_to_service_language(language),
@@ -122,7 +122,7 @@ class XTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated) # 2. Apply direct init arg overrides (deprecated)
if voice_id is not None: if voice_id is not None:
_warn_deprecated_param("voice_id", XTTSTTSSettings, "voice") _warn_deprecated_param("voice_id", self.Settings, "voice")
default_settings.voice = voice_id default_settings.voice = voice_id
# 3. (No step 3, as there's no params object to apply) # 3. (No step 3, as there's no params object to apply)