Remove/deprecate service-specific set_model and set_voice overrides.
- NvidiaSTTService.set_model: convert to proper DeprecationWarning (model can't change at runtime for Riva streaming STT) - NvidiaTTSService.set_model: same treatment for Riva TTS - NvidiaSegmentedSTTService.set_model: remove — base class now routes through _update_settings_from_typed which re-creates the recognition config - GeminiTTSService.set_voice: remove — move AVAILABLE_VOICES validation into _update_settings_from_typed so it fires on both legacy and new paths
This commit is contained in:
@@ -1246,16 +1246,6 @@ class GeminiTTSService(GoogleBaseTTSService):
|
||||
"""
|
||||
return language_to_gemini_tts_language(language)
|
||||
|
||||
async def set_voice(self, voice_id: str):
|
||||
"""Set the voice for TTS generation.
|
||||
|
||||
Args:
|
||||
voice_id: Name of the voice to use from AVAILABLE_VOICES.
|
||||
"""
|
||||
if voice_id not in self.AVAILABLE_VOICES:
|
||||
logger.warning(f"Voice '{voice_id}' not in known voices list. Using anyway.")
|
||||
self._voice_id = voice_id
|
||||
|
||||
async def start(self, frame: StartFrame):
|
||||
"""Start the Gemini TTS service.
|
||||
|
||||
@@ -1270,11 +1260,17 @@ class GeminiTTSService(GoogleBaseTTSService):
|
||||
)
|
||||
|
||||
async def _update_settings_from_typed(self, update: TTSSettings) -> set[str]:
|
||||
"""Override to handle prompt updates.
|
||||
"""Apply a typed settings update with voice validation.
|
||||
|
||||
Args:
|
||||
update: Typed settings delta. Can include 'prompt' (str).
|
||||
update: Typed settings delta. Can include 'voice', 'prompt', etc.
|
||||
|
||||
Returns:
|
||||
Set of field names whose values actually changed.
|
||||
"""
|
||||
if is_given(update.voice) and update.voice not in self.AVAILABLE_VOICES:
|
||||
logger.warning(f"Voice '{update.voice}' not in known voices list. Using anyway.")
|
||||
|
||||
return await super()._update_settings_from_typed(update)
|
||||
|
||||
@traced_tts
|
||||
|
||||
@@ -241,18 +241,31 @@ class NvidiaSTTService(STTService):
|
||||
async def set_model(self, model: str):
|
||||
"""Set the ASR model for transcription.
|
||||
|
||||
.. deprecated:: 0.0.103
|
||||
Model cannot be changed after initialization for NVIDIA Riva streaming STT.
|
||||
Set model and function id in the constructor instead, e.g.::
|
||||
|
||||
NvidiaSTTService(
|
||||
api_key=...,
|
||||
model_function_map={"function_id": "<UUID>", "model_name": "<model_name>"},
|
||||
)
|
||||
|
||||
Args:
|
||||
model: Model name to set.
|
||||
|
||||
Note:
|
||||
Model cannot be changed after initialization. Use model_function_map
|
||||
parameter in constructor instead.
|
||||
"""
|
||||
logger.warning(f"Cannot set model after initialization. Set model and function id like so:")
|
||||
example = {"function_id": "<UUID>", "model_name": "<model_name>"}
|
||||
logger.warning(
|
||||
f"{self.__class__.__name__}(api_key=<api_key>, model_function_map={example})"
|
||||
)
|
||||
import warnings
|
||||
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("always")
|
||||
warnings.warn(
|
||||
"'set_model' is deprecated. Model cannot be changed after initialization"
|
||||
" for NVIDIA Riva streaming STT. Set model and function id in the"
|
||||
" constructor instead, e.g.:"
|
||||
" NvidiaSTTService(api_key=..., model_function_map="
|
||||
"{'function_id': '<UUID>', 'model_name': '<model_name>'})",
|
||||
DeprecationWarning,
|
||||
stacklevel=2,
|
||||
)
|
||||
|
||||
async def start(self, frame: StartFrame):
|
||||
"""Start the NVIDIA Riva STT service and initialize streaming configuration.
|
||||
@@ -555,22 +568,6 @@ class NvidiaSegmentedSTTService(SegmentedSTTService):
|
||||
"""
|
||||
return True
|
||||
|
||||
async def set_model(self, model: str):
|
||||
"""Set the ASR model for transcription.
|
||||
|
||||
Args:
|
||||
model: Model name to set.
|
||||
|
||||
Note:
|
||||
Model cannot be changed after initialization. Use model_function_map
|
||||
parameter in constructor instead.
|
||||
"""
|
||||
logger.warning(f"Cannot set model after initialization. Set model and function id like so:")
|
||||
example = {"function_id": "<UUID>", "model_name": "<model_name>"}
|
||||
logger.warning(
|
||||
f"{self.__class__.__name__}(api_key=<api_key>, model_function_map={example})"
|
||||
)
|
||||
|
||||
async def start(self, frame: StartFrame):
|
||||
"""Initialize the service when the pipeline starts.
|
||||
|
||||
|
||||
@@ -106,18 +106,32 @@ class NvidiaTTSService(TTSService):
|
||||
self._config = None
|
||||
|
||||
async def set_model(self, model: str):
|
||||
"""Attempt to set the TTS model.
|
||||
"""Set the TTS model.
|
||||
|
||||
Note: Model cannot be changed after initialization for Riva service.
|
||||
.. deprecated:: 0.0.103
|
||||
Model cannot be changed after initialization for NVIDIA Riva TTS.
|
||||
Set model and function id in the constructor instead, e.g.::
|
||||
|
||||
NvidiaTTSService(
|
||||
api_key=...,
|
||||
model_function_map={"function_id": "<UUID>", "model_name": "<model_name>"},
|
||||
)
|
||||
|
||||
Args:
|
||||
model: The model name to set (operation not supported).
|
||||
model: The model name to set.
|
||||
"""
|
||||
logger.warning(f"Cannot set model after initialization. Set model and function id like so:")
|
||||
example = {"function_id": "<UUID>", "model_name": "<model_name>"}
|
||||
logger.warning(
|
||||
f"{self.__class__.__name__}(api_key=<api_key>, model_function_map={example})"
|
||||
)
|
||||
import warnings
|
||||
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("always")
|
||||
warnings.warn(
|
||||
"'set_model' is deprecated. Model cannot be changed after initialization"
|
||||
" for NVIDIA Riva TTS. Set model and function id in the constructor"
|
||||
" instead, e.g.: NvidiaTTSService(api_key=..., model_function_map="
|
||||
"{'function_id': '<UUID>', 'model_name': '<model_name>'})",
|
||||
DeprecationWarning,
|
||||
stacklevel=2,
|
||||
)
|
||||
|
||||
def _initialize_client(self):
|
||||
if self._service is not None:
|
||||
|
||||
Reference in New Issue
Block a user