diff --git a/.azdo/pipelines/azure-dev.yml b/.azdo/pipelines/azure-dev.yml index d8b2bdf233..3495e06a45 100644 --- a/.azdo/pipelines/azure-dev.yml +++ b/.azdo/pipelines/azure-dev.yml @@ -101,6 +101,7 @@ steps: AZURE_SPEECH_SERVICE_RESOURCE_GROUP: $(AZURE_SPEECH_SERVICE_RESOURCE_GROUP) AZURE_SPEECH_SERVICE_LOCATION: $(AZURE_SPEECH_SERVICE_LOCATION) AZURE_SPEECH_SERVICE_SKU: $(AZURE_SPEECH_SERVICE_SKU) + AZURE_SPEECH_SERVICE_VOICE: $(AZURE_SPEECH_SERVICE_VOICE) AZURE_KEY_VAULT_NAME: $(AZURE_KEY_VAULT_NAME) AZURE_USE_AUTHENTICATION: $(AZURE_USE_AUTHENTICATION) AZURE_ENFORCE_ACCESS_CONTROL: $(AZURE_ENFORCE_ACCESS_CONTROL) diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml index ab1df9a210..798e589413 100644 --- a/.github/workflows/azure-dev.yml +++ b/.github/workflows/azure-dev.yml @@ -87,6 +87,7 @@ jobs: AZURE_SPEECH_SERVICE_RESOURCE_GROUP: ${{ vars.AZURE_SPEECH_RESOURCE_GROUP }} AZURE_SPEECH_SERVICE_LOCATION: ${{ vars.AZURE_SPEECH_SERVICE_LOCATION }} AZURE_SPEECH_SERVICE_SKU: ${{ vars.AZURE_SPEECH_SERVICE_SKU }} + AZURE_SPEECH_SERVICE_VOICE: ${{ vars.AZURE_SPEECH_SERVICE_VOICE }} AZURE_KEY_VAULT_NAME: ${{ vars.AZURE_KEY_VAULT_NAME }} AZURE_USE_AUTHENTICATION: ${{ vars.AZURE_USE_AUTHENTICATION }} AZURE_ENFORCE_ACCESS_CONTROL: ${{ vars.AZURE_ENFORCE_ACCESS_CONTROL }} diff --git a/app/backend/app.py b/app/backend/app.py index d44d4bc9c5..c3a8e7270e 100644 --- a/app/backend/app.py +++ b/app/backend/app.py @@ -444,7 +444,7 @@ async def setup_clients(): AZURE_SPEECH_SERVICE_ID = os.getenv("AZURE_SPEECH_SERVICE_ID") AZURE_SPEECH_SERVICE_LOCATION = os.getenv("AZURE_SPEECH_SERVICE_LOCATION") - AZURE_SPEECH_VOICE = os.getenv("AZURE_SPEECH_VOICE", "en-US-AndrewMultilingualNeural") + AZURE_SPEECH_SERVICE_VOICE = os.getenv("AZURE_SPEECH_SERVICE_VOICE") or "en-US-AndrewMultilingualNeural" USE_GPT4V = os.getenv("USE_GPT4V", "").lower() == "true" USE_USER_UPLOAD = os.getenv("USE_USER_UPLOAD", "").lower() == "true" @@ -567,7 +567,7 @@ async def setup_clients(): raise ValueError("Azure speech resource not configured correctly, missing AZURE_SPEECH_SERVICE_LOCATION") current_app.config[CONFIG_SPEECH_SERVICE_ID] = AZURE_SPEECH_SERVICE_ID current_app.config[CONFIG_SPEECH_SERVICE_LOCATION] = AZURE_SPEECH_SERVICE_LOCATION - current_app.config[CONFIG_SPEECH_SERVICE_VOICE] = AZURE_SPEECH_VOICE + current_app.config[CONFIG_SPEECH_SERVICE_VOICE] = AZURE_SPEECH_SERVICE_VOICE # Wait until token is needed to fetch for the first time current_app.config[CONFIG_SPEECH_SERVICE_TOKEN] = None current_app.config[CONFIG_CREDENTIAL] = azure_credential diff --git a/azure.yaml b/azure.yaml index 3f025b7bff..fd673f48e0 100644 --- a/azure.yaml +++ b/azure.yaml @@ -100,6 +100,7 @@ pipeline: - AZURE_SPEECH_SERVICE_RESOURCE_GROUP - AZURE_SPEECH_SERVICE_LOCATION - AZURE_SPEECH_SERVICE_SKU + - AZURE_SPEECH_SERVICE_VOICE - AZURE_KEY_VAULT_NAME - AZURE_USE_AUTHENTICATION - AZURE_ENFORCE_ACCESS_CONTROL diff --git a/infra/main.bicep b/infra/main.bicep index 100fe4fedb..9339abe02f 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -57,6 +57,7 @@ param speechServiceResourceGroupName string = '' param speechServiceLocation string = '' param speechServiceName string = '' param speechServiceSkuName string // Set in main.parameters.json +param speechServiceVoice string = '' param useGPT4V bool = false // https://learn.microsoft.com/azure/ai-services/openai/concepts/models?tabs=python-secure%2Cstandard%2Cstandard-chat-completions#standard-deployment-model-availability @@ -326,6 +327,7 @@ var appEnvVariables = { : '' AZURE_SPEECH_SERVICE_ID: useSpeechOutputAzure ? speech.outputs.resourceId : '' AZURE_SPEECH_SERVICE_LOCATION: useSpeechOutputAzure ? speech.outputs.location : '' + AZURE_SPEECH_SERVICE_VOICE: useSpeechOutputAzure ? speechServiceVoice : '' ENABLE_LANGUAGE_PICKER: enableLanguagePicker USE_SPEECH_INPUT_BROWSER: useSpeechInputBrowser USE_SPEECH_OUTPUT_BROWSER: useSpeechOutputBrowser diff --git a/infra/main.parameters.json b/infra/main.parameters.json index 49894d5b0c..1a63507f78 100644 --- a/infra/main.parameters.json +++ b/infra/main.parameters.json @@ -200,6 +200,9 @@ "speechServiceLocation": { "value": "${AZURE_SPEECH_SERVICE_LOCATION}" }, + "speechServiceVoice": { + "value": "${AZURE_SPEECH_SERVICE_VOICE}" + }, "useAuthentication": { "value": "${AZURE_USE_AUTHENTICATION=false}" },