Make region optional and validate Azure STT config
Make `region` optional so users can provide only `private_endpoint`. Raise ValueError if neither is provided, and warn if both are given (private_endpoint takes priority).
This commit is contained in:
@@ -73,7 +73,7 @@ class AzureSTTService(STTService):
|
|||||||
self,
|
self,
|
||||||
*,
|
*,
|
||||||
api_key: str,
|
api_key: str,
|
||||||
region: str,
|
region: Optional[str] = None,
|
||||||
language: Optional[Language] = Language.EN_US,
|
language: Optional[Language] = Language.EN_US,
|
||||||
sample_rate: Optional[int] = None,
|
sample_rate: Optional[int] = None,
|
||||||
private_endpoint: Optional[str] = None,
|
private_endpoint: Optional[str] = None,
|
||||||
@@ -87,6 +87,7 @@ class AzureSTTService(STTService):
|
|||||||
Args:
|
Args:
|
||||||
api_key: Azure Cognitive Services subscription key.
|
api_key: Azure Cognitive Services subscription key.
|
||||||
region: Azure region for the Speech service (e.g., 'eastus').
|
region: Azure region for the Speech service (e.g., 'eastus').
|
||||||
|
Required unless ``private_endpoint`` is provided.
|
||||||
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
|
||||||
@@ -94,7 +95,7 @@ class AzureSTTService(STTService):
|
|||||||
|
|
||||||
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.
|
||||||
See https://learn.microsoft.com/en-us/azure/ai-services/speech-service/speech-services-private-link?tabs=portal
|
See https://docs.azure.cn/en-us/ai-services/speech-service/speech-services-private-link?tabs=portal
|
||||||
endpoint_id: Custom model endpoint id.
|
endpoint_id: Custom model endpoint id.
|
||||||
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.
|
||||||
@@ -126,21 +127,29 @@ class AzureSTTService(STTService):
|
|||||||
**kwargs,
|
**kwargs,
|
||||||
)
|
)
|
||||||
|
|
||||||
speech_config_kwargs: dict[str, Any] = {
|
recognition_language = default_settings.language or language_to_azure_language(
|
||||||
"subscription": api_key,
|
Language.EN_US
|
||||||
"speech_recognition_language": default_settings.language
|
)
|
||||||
or language_to_azure_language(Language.EN_US),
|
|
||||||
}
|
if not region and not private_endpoint:
|
||||||
|
raise ValueError("Either 'region' or 'private_endpoint' must be provided.")
|
||||||
|
|
||||||
if private_endpoint:
|
if private_endpoint:
|
||||||
if region:
|
if region:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
"Both 'region' and 'private_endpoint' provided; 'region' will be ignored."
|
"Both 'region' and 'private_endpoint' provided; 'region' will be ignored."
|
||||||
)
|
)
|
||||||
speech_config_kwargs["endpoint"] = private_endpoint
|
self._speech_config = SpeechConfig(
|
||||||
|
subscription=api_key,
|
||||||
|
endpoint=private_endpoint,
|
||||||
|
speech_recognition_language=recognition_language,
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
speech_config_kwargs["region"] = region
|
self._speech_config = SpeechConfig(
|
||||||
|
subscription=api_key,
|
||||||
self._speech_config = SpeechConfig(**speech_config_kwargs)
|
region=region,
|
||||||
|
speech_recognition_language=recognition_language,
|
||||||
|
)
|
||||||
|
|
||||||
if endpoint_id:
|
if endpoint_id:
|
||||||
self._speech_config.endpoint_id = endpoint_id
|
self._speech_config.endpoint_id = endpoint_id
|
||||||
|
|||||||
Reference in New Issue
Block a user