Chat de voz a voz en Azure OpenAI
Documentación de referencia | Paquete (NuGet) | Ejemplos adicionales en GitHub
En esta guía paso a paso, puede usar el servicio Voz de Azure AI para conversar con Azure OpenAI Service. El texto reconocido por el servicio Voz se envía a Azure OpenAI. El servicio voz sintetiza la voz de la respuesta de texto de Azure OpenAI.
Hable en el micrófono para iniciar una conversación con Azure OpenAI.
- El servicio Voz reconoce la voz y la convierte en texto (conversión de voz en texto).
- La solicitud como texto se envía a Azure OpenAI.
- La característica de texto del servicio voz a voz sintetiza la respuesta de Azure OpenAI al altavoz predeterminado.
Aunque la experiencia de este ejemplo es un intercambio de ida y vuelta, Azure OpenAI no recuerda el contexto de la conversación.
Requisitos previos
- Una suscripción a Azure: cree una cuenta gratuita
- Cree un recurso de Microsoft Azure OpenAI Service en Azure Portal.
- Implemente un modelo en el recurso de Azure OpenAI. Para obtener más información sobre la implementación de modelos, consulte la guía de implementación de recursos de Azure OpenAI.
- Obtenga la clave de recurso y el punto de conexión de Azure OpenAI. Una vez implementado el recurso de Azure OpenAI, seleccione Ir al recurso para ver y administrar las claves.
- Creación de un recurso de Voz en Azure Portal.
- Obtenga la clave y la región del recurso de Voz. Una vez implementado el recurso de Voz, seleccione Ir al recurso para ver y administrar claves.
Configuración del entorno
El SDK de Voz está disponible como paquete NuGet e implementa .NET Standard 2.0. La instalación del SDK de Voz se describe en una sección más adelante de esta guía; primero consulte la SDK installation guide, (guía de instalación del SDK), para conocer otros requisitos.
Establecimiento de variables de entorno
En este ejemplo se requieren variables de entorno denominadas OPEN_AI_KEY
, OPEN_AI_ENDPOINT
, OPEN_AI_DEPLOYMENT_NAME
, SPEECH_KEY
y SPEECH_REGION
.
La aplicación debe autenticarse para acceder a los recursos de servicios de Azure AI. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. Por ejemplo, después de obtener una clave para Recurso de Voz, escríbala en una nueva variable de entorno en el equipo local que ejecuta la aplicación.
Importante
Si usa una clave de API, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.
Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.
Para establecer las variables de entorno, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y entorno de desarrollo.
- Para establecer la variable de entorno
OPEN_AI_KEY
, reemplaceyour-openai-key
por una de las claves del recurso. - Para establecer la variable de entorno
OPEN_AI_ENDPOINT
, reemplaceyour-openai-endpoint
por una de las regiones del recurso. - Para establecer la variable de entorno
OPEN_AI_DEPLOYMENT_NAME
, reemplaceyour-openai-deployment-name
por una de las regiones del recurso. - Para establecer la variable de entorno
SPEECH_KEY
, reemplaceyour-speech-key
por una de las claves del recurso. - Para establecer la variable de entorno
SPEECH_REGION
, reemplaceyour-speech-region
por una de las regiones del recurso.
setx OPEN_AI_KEY your-openai-key
setx OPEN_AI_ENDPOINT your-openai-endpoint
setx OPEN_AI_DEPLOYMENT_NAME your-openai-deployment-name
setx SPEECH_KEY your-speech-key
setx SPEECH_REGION your-speech-region
Nota:
Si solo necesita acceder a la variable de entorno en la consola en ejecución actual, establezca la variable de entorno con set
en lugar de setx
.
Después de agregar las variables de entorno, es posible que tenga que reiniciar los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de la consola. Por ejemplo, si Visual Studio es el editor, reinicie Visual Studio antes de ejecutar el ejemplo.
Reconocimiento de voz a través de un micrófono
Siga estos pasos para crear una nueva aplicación de consola.
Abra una ventana del símbolo del sistema en la carpeta donde desee el nuevo proyecto. Ejecute este comando para crear una aplicación de consola con la CLI de .NET.
dotnet new console
El comando crea un archivo Program.cs en el directorio del proyecto.
Instale el SDK de Voz en el nuevo proyecto con la CLI de .NET.
dotnet add package Microsoft.CognitiveServices.Speech
Instale el SDK de Azure OpenAI (versión preliminar) en su nuevo proyecto con la CLI de .NET.
dotnet add package Azure.AI.OpenAI --prerelease
Reemplace el contenido de
Program.cs
por el código siguiente.using System.Text; using Microsoft.CognitiveServices.Speech; using Microsoft.CognitiveServices.Speech.Audio; using Azure; using Azure.AI.OpenAI; // This example requires environment variables named "OPEN_AI_KEY", "OPEN_AI_ENDPOINT" and "OPEN_AI_DEPLOYMENT_NAME" // Your endpoint should look like the following https://YOUR_OPEN_AI_RESOURCE_NAME.openai.azure.com/ string openAIKey = Environment.GetEnvironmentVariable("OPEN_AI_KEY") ?? throw new ArgumentException("Missing OPEN_AI_KEY"); string openAIEndpoint = Environment.GetEnvironmentVariable("OPEN_AI_ENDPOINT") ?? throw new ArgumentException("Missing OPEN_AI_ENDPOINT"); // Enter the deployment name you chose when you deployed the model. string engine = Environment.GetEnvironmentVariable("OPEN_AI_DEPLOYMENT_NAME") ?? throw new ArgumentException("Missing OPEN_AI_DEPLOYMENT_NAME"); // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY") ?? throw new ArgumentException("Missing SPEECH_KEY"); string speechRegion = Environment.GetEnvironmentVariable("SPEECH_REGION") ?? throw new ArgumentException("Missing SPEECH_REGION"); // Sentence end symbols for splitting the response into sentences. List<string> sentenceSaperators = new() { ".", "!", "?", ";", "。", "!", "?", ";", "\n" }; try { await ChatWithOpenAI(); } catch (Exception ex) { Console.WriteLine(ex); } // Prompts Azure OpenAI with a request and synthesizes the response. async Task AskOpenAI(string prompt) { object consoleLock = new(); var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion); // The language of the voice that speaks. speechConfig.SpeechSynthesisVoiceName = "en-US-JennyMultilingualNeural"; var audioOutputConfig = AudioConfig.FromDefaultSpeakerOutput(); using var speechSynthesizer = new SpeechSynthesizer(speechConfig, audioOutputConfig); speechSynthesizer.Synthesizing += (sender, args) => { lock (consoleLock) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write($"[Audio]"); Console.ResetColor(); } }; // Ask Azure OpenAI OpenAIClient client = new(new Uri(openAIEndpoint), new AzureKeyCredential(openAIKey)); var completionsOptions = new ChatCompletionsOptions() { DeploymentName = engine, Messages = { new ChatRequestUserMessage(prompt) }, MaxTokens = 100, }; var responseStream = await client.GetChatCompletionsStreamingAsync(completionsOptions); StringBuilder gptBuffer = new(); await foreach (var completionUpdate in responseStream) { var message = completionUpdate.ContentUpdate; if (string.IsNullOrEmpty(message)) { continue; } lock (consoleLock) { Console.ForegroundColor = ConsoleColor.DarkBlue; Console.Write($"{message}"); Console.ResetColor(); } gptBuffer.Append(message); if (sentenceSaperators.Any(message.Contains)) { var sentence = gptBuffer.ToString().Trim(); if (!string.IsNullOrEmpty(sentence)) { await speechSynthesizer.SpeakTextAsync(sentence); gptBuffer.Clear(); } } } } // Continuously listens for speech input to recognize and send as text to Azure OpenAI async Task ChatWithOpenAI() { // Should be the locale for the speaker's language. var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion); speechConfig.SpeechRecognitionLanguage = "en-US"; using var audioConfig = AudioConfig.FromDefaultMicrophoneInput(); using var speechRecognizer = new SpeechRecognizer(speechConfig, audioConfig); var conversationEnded = false; while (!conversationEnded) { Console.WriteLine("Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation."); // Get audio from the microphone and then send it to the TTS service. var speechRecognitionResult = await speechRecognizer.RecognizeOnceAsync(); switch (speechRecognitionResult.Reason) { case ResultReason.RecognizedSpeech: if (speechRecognitionResult.Text == "Stop.") { Console.WriteLine("Conversation ended."); conversationEnded = true; } else { Console.WriteLine($"Recognized speech: {speechRecognitionResult.Text}"); await AskOpenAI(speechRecognitionResult.Text); } break; case ResultReason.NoMatch: Console.WriteLine($"No speech could be recognized: "); break; case ResultReason.Canceled: var cancellationDetails = CancellationDetails.FromResult(speechRecognitionResult); Console.WriteLine($"Speech Recognition canceled: {cancellationDetails.Reason}"); if (cancellationDetails.Reason == CancellationReason.Error) { Console.WriteLine($"Error details={cancellationDetails.ErrorDetails}"); } break; } } }
Para aumentar o disminuir el número de tokens devueltos por Azure OpenAI, cambie la propiedad
MaxTokens
en la instancia de la claseChatCompletionsOptions
. Para obtener más información sobre los tokens y las implicaciones de costos, consulte Tokens de Azure OpenAI y precios de Azure OpenAI.Ejecute la nueva aplicación de consola para iniciar el reconocimiento de voz a través de un micrófono:
dotnet run
Importante
Asegúrese de establecer las variables de entorno OPEN_AI_KEY
, OPEN_AI_ENDPOINT
, OPEN_AI_DEPLOYMENT_NAME
, SPEECH_KEY
y SPEECH_REGION
tal como se describe. Si no establece estas variables, se producirá un fallo en el ejemplo, con un mensaje de error.
Hable por el micrófono cuando se le solicite. La salida de la consola incluye el mensaje para empezar a hablar, luego la solicitud como texto y, a continuación, la respuesta de Azure OpenAI como texto. La respuesta de Azure OpenAI se debe convertir de texto a voz y, a continuación, emitirla en el altavoz predeterminado.
PS C:\dev\openai\csharp> dotnet run
Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.
Recognized speech:Make a comma separated list of all continents.
Azure OpenAI response:Africa, Antarctica, Asia, Australia, Europe, North America, South America
Speech synthesized to speaker for text [Africa, Antarctica, Asia, Australia, Europe, North America, South America]
Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.
Recognized speech: Make a comma separated list of 1 Astronomical observatory for each continent. A list should include each continent name in parentheses.
Azure OpenAI response:Mauna Kea Observatories (North America), La Silla Observatory (South America), Tenerife Observatory (Europe), Siding Spring Observatory (Australia), Beijing Xinglong Observatory (Asia), Naukluft Plateau Observatory (Africa), Rutherford Appleton Laboratory (Antarctica)
Speech synthesized to speaker for text [Mauna Kea Observatories (North America), La Silla Observatory (South America), Tenerife Observatory (Europe), Siding Spring Observatory (Australia), Beijing Xinglong Observatory (Asia), Naukluft Plateau Observatory (Africa), Rutherford Appleton Laboratory (Antarctica)]
Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.
Conversation ended.
PS C:\dev\openai\csharp>
Comentarios
Estas son algunas consideraciones más:
- Para cambiar el idioma de reconocimiento de voz, reemplace
en-US
por otroen-US
. Por ejemplo,es-ES
para Español (España). El lenguaje predeterminado esen-US
. Para obtener más información sobre cómo identificar uno de los distintos idiomas que se pueden hablar, consulte Identificación del idioma. - Para cambiar la voz que escucha, reemplace
en-US-JennyMultilingualNeural
con otra voz compatible. Si la voz no habla el idioma del texto que devuelve Azure OpenAI, el servicio Voz no emite audio sintetizado. - Para reducir la latencia de la salida de texto a voz, use la característica de streaming de texto, que permite el procesamiento de texto en tiempo real para una generación rápida de audio y minimiza la latencia, lo que mejora la fluidez y la capacidad de respuesta de las salidas de audio en tiempo real. Consulte cómo usar el streaming de texto.
- Para habilitar el avatar de TTS como experiencia visual de la salida de voz, consulte el artículo sobre la síntesis en tiempo real para el avatar de texto a voz y el código de ejemplo para escenarios de chat con avatar.
- Para usar un modelo diferente, reemplace
gpt-35-turbo-instruct
con el identificador de otra implementación. El identificador de implementación no es necesariamente el mismo que el nombre del modelo. Le ha asignado un nombre a la implementación al crearla en Azure OpenAI Studio. - El servicio Azure OpenAI también realiza la moderación de contenido en las entradas de solicitud y salidas generadas. Las solicitudes o respuestas se pueden filtrar si se detecta contenido dañino. Para obtener más información, consulte el artículo sobre filtros de contenido.
Limpieza de recursos
Puede usar Azure Portal o la Interfaz de la línea de comandos (CLI) de Azure para quitar el recurso de Voz que creó.
Documentación de referencia | Paquete (PyPi) | Ejemplos adicionales en GitHub
En esta guía paso a paso, puede usar el servicio Voz de Azure AI para conversar con Azure OpenAI Service. El texto reconocido por el servicio Voz se envía a Azure OpenAI. El servicio voz sintetiza la voz de la respuesta de texto de Azure OpenAI.
Hable en el micrófono para iniciar una conversación con Azure OpenAI.
- El servicio Voz reconoce la voz y la convierte en texto (conversión de voz en texto).
- La solicitud como texto se envía a Azure OpenAI.
- La característica de texto del servicio voz a voz sintetiza la respuesta de Azure OpenAI al altavoz predeterminado.
Aunque la experiencia de este ejemplo es un intercambio de ida y vuelta, Azure OpenAI no recuerda el contexto de la conversación.
Requisitos previos
- Una suscripción a Azure: cree una cuenta gratuita
- Cree un recurso de Microsoft Azure OpenAI Service en Azure Portal.
- Implemente un modelo en el recurso de Azure OpenAI. Para obtener más información sobre la implementación de modelos, consulte la guía de implementación de recursos de Azure OpenAI.
- Obtenga la clave de recurso y el punto de conexión de Azure OpenAI. Una vez implementado el recurso de Azure OpenAI, seleccione Ir al recurso para ver y administrar las claves.
- Creación de un recurso de Voz en Azure Portal.
- Obtenga la clave y la región del recurso de Voz. Una vez implementado el recurso de Voz, seleccione Ir al recurso para ver y administrar claves.
Configuración del entorno
El SDK de Voz para Python está disponible como módulo de índice de paquetes de Python (PyPI). El SDK de Voz para Python es compatible con Windows, Linux y macOS.
- Instale el Microsoft Visual C++ Redistributable para Visual Studio 2015, 2017, 2019 y 2022 para su plataforma. Durante la primera instalación del paquete, es posible que deba reiniciar.
- En Linux, debe usar la arquitectura de destino x64.
Instale una versión de Python desde la 3.7 en adelante. Primero consulte la guía de instalación del SDK para conocer más requisitos.
Instale las siguientes bibliotecas de Python: os
, requests
, json
.
Establecimiento de variables de entorno
En este ejemplo se requieren variables de entorno denominadas OPEN_AI_KEY
, OPEN_AI_ENDPOINT
, OPEN_AI_DEPLOYMENT_NAME
, SPEECH_KEY
y SPEECH_REGION
.
La aplicación debe autenticarse para acceder a los recursos de servicios de Azure AI. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. Por ejemplo, después de obtener una clave para Recurso de Voz, escríbala en una nueva variable de entorno en el equipo local que ejecuta la aplicación.
Importante
Si usa una clave de API, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.
Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.
Para establecer las variables de entorno, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y entorno de desarrollo.
- Para establecer la variable de entorno
OPEN_AI_KEY
, reemplaceyour-openai-key
por una de las claves del recurso. - Para establecer la variable de entorno
OPEN_AI_ENDPOINT
, reemplaceyour-openai-endpoint
por una de las regiones del recurso. - Para establecer la variable de entorno
OPEN_AI_DEPLOYMENT_NAME
, reemplaceyour-openai-deployment-name
por una de las regiones del recurso. - Para establecer la variable de entorno
SPEECH_KEY
, reemplaceyour-speech-key
por una de las claves del recurso. - Para establecer la variable de entorno
SPEECH_REGION
, reemplaceyour-speech-region
por una de las regiones del recurso.
setx OPEN_AI_KEY your-openai-key
setx OPEN_AI_ENDPOINT your-openai-endpoint
setx OPEN_AI_DEPLOYMENT_NAME your-openai-deployment-name
setx SPEECH_KEY your-speech-key
setx SPEECH_REGION your-speech-region
Nota:
Si solo necesita acceder a la variable de entorno en la consola en ejecución actual, establezca la variable de entorno con set
en lugar de setx
.
Después de agregar las variables de entorno, es posible que tenga que reiniciar los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de la consola. Por ejemplo, si Visual Studio es el editor, reinicie Visual Studio antes de ejecutar el ejemplo.
Reconocimiento de voz a través de un micrófono
Siga estos pasos para crear una nueva aplicación de consola.
Abra una ventana del símbolo del sistema en la carpeta donde desee el nuevo proyecto. Abra un símbolo del sistema donde quiera el nuevo proyecto y cree un archivo llamado
openai-speech.py
.Ejecute este comando para instalar el SDK de voz:
pip install azure-cognitiveservices-speech
Ejecute este comando para instalar el SDK de OpenAI:
pip install openai
Nota:
OpenAI mantiene esta biblioteca, no Microsoft Azure. Consulte el historial de versiones o el historial de confirmación de version.py para realizar el seguimiento de las actualizaciones más recientes de la biblioteca.
Cree un archivo denominado openai-speech.py. Copie el código siguiente en ese archivo:
import os import azure.cognitiveservices.speech as speechsdk from openai import AzureOpenAI # This example requires environment variables named "OPEN_AI_KEY", "OPEN_AI_ENDPOINT" and "OPEN_AI_DEPLOYMENT_NAME" # Your endpoint should look like the following https://YOUR_OPEN_AI_RESOURCE_NAME.openai.azure.com/ client = AzureOpenAI( azure_endpoint=os.environ.get('OPEN_AI_ENDPOINT'), api_key=os.environ.get('OPEN_AI_KEY'), api_version="2023-05-15" ) # This will correspond to the custom name you chose for your deployment when you deployed a model. deployment_id=os.environ.get('OPEN_AI_DEPLOYMENT_NAME') # This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION')) audio_output_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True) audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True) # Should be the locale for the speaker's language. speech_config.speech_recognition_language="en-US" speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config) # The language of the voice that responds on behalf of Azure OpenAI. speech_config.speech_synthesis_voice_name='en-US-JennyMultilingualNeural' speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_output_config) # tts sentence end mark tts_sentence_end = [ ".", "!", "?", ";", "。", "!", "?", ";", "\n" ] # Prompts Azure OpenAI with a request and synthesizes the response. def ask_openai(prompt): # Ask Azure OpenAI in streaming way response = client.chat.completions.create(model=deployment_id, max_tokens=200, stream=True, messages=[ {"role": "user", "content": prompt} ]) collected_messages = [] last_tts_request = None # iterate through the stream response stream for chunk in response: if len(chunk.choices) > 0: chunk_message = chunk.choices[0].delta.content # extract the message if chunk_message is not None: collected_messages.append(chunk_message) # save the message if chunk_message in tts_sentence_end: # sentence end found text = ''.join(collected_messages).strip() # join the recieved message together to build a sentence if text != '': # if sentence only have \n or space, we could skip print(f"Speech synthesized to speaker for: {text}") last_tts_request = speech_synthesizer.speak_text_async(text) collected_messages.clear() if last_tts_request: last_tts_request.get() # Continuously listens for speech input to recognize and send as text to Azure OpenAI def chat_with_open_ai(): while True: print("Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.") try: # Get audio from the microphone and then send it to the TTS service. speech_recognition_result = speech_recognizer.recognize_once_async().get() # If speech is recognized, send it to Azure OpenAI and listen for the response. if speech_recognition_result.reason == speechsdk.ResultReason.RecognizedSpeech: if speech_recognition_result.text == "Stop.": print("Conversation ended.") break print("Recognized speech: {}".format(speech_recognition_result.text)) ask_openai(speech_recognition_result.text) elif speech_recognition_result.reason == speechsdk.ResultReason.NoMatch: print("No speech could be recognized: {}".format(speech_recognition_result.no_match_details)) break elif speech_recognition_result.reason == speechsdk.ResultReason.Canceled: cancellation_details = speech_recognition_result.cancellation_details print("Speech Recognition canceled: {}".format(cancellation_details.reason)) if cancellation_details.reason == speechsdk.CancellationReason.Error: print("Error details: {}".format(cancellation_details.error_details)) except EOFError: break # Main try: chat_with_open_ai() except Exception as err: print("Encountered exception. {}".format(err))
Para aumentar o disminuir el número de tokens devueltos por Azure OpenAI, cambie el parámetro
max_tokens
. Para obtener más información sobre los tokens y las implicaciones de costos, consulte Tokens de Azure OpenAI y precios de Azure OpenAI.Ejecute la nueva aplicación de consola para iniciar el reconocimiento de voz a través de un micrófono:
python openai-speech.py
Importante
Asegúrese de establecer las variables de entorno OPEN_AI_KEY
, OPEN_AI_ENDPOINT
, OPEN_AI_DEPLOYMENT_NAME
, SPEECH_KEY
y SPEECH_REGION
como se ha descrito anteriormente. Si no establece estas variables, se producirá un fallo en el ejemplo, con un mensaje de error.
Hable por el micrófono cuando se le solicite. La salida de la consola incluye el mensaje para empezar a hablar, luego la solicitud como texto y, a continuación, la respuesta de Azure OpenAI como texto. La respuesta de Azure OpenAI se debe convertir de texto a voz y, a continuación, emitirla en el altavoz predeterminado.
PS C:\dev\openai\python> python.exe .\openai-speech.py
Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.
Recognized speech:Make a comma separated list of all continents.
Azure OpenAI response:Africa, Antarctica, Asia, Australia, Europe, North America, South America
Speech synthesized to speaker for text [Africa, Antarctica, Asia, Australia, Europe, North America, South America]
Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.
Recognized speech: Make a comma separated list of 1 Astronomical observatory for each continent. A list should include each continent name in parentheses.
Azure OpenAI response:Mauna Kea Observatories (North America), La Silla Observatory (South America), Tenerife Observatory (Europe), Siding Spring Observatory (Australia), Beijing Xinglong Observatory (Asia), Naukluft Plateau Observatory (Africa), Rutherford Appleton Laboratory (Antarctica)
Speech synthesized to speaker for text [Mauna Kea Observatories (North America), La Silla Observatory (South America), Tenerife Observatory (Europe), Siding Spring Observatory (Australia), Beijing Xinglong Observatory (Asia), Naukluft Plateau Observatory (Africa), Rutherford Appleton Laboratory (Antarctica)]
Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.
Conversation ended.
PS C:\dev\openai\python>
Comentarios
Estas son algunas consideraciones más:
- Para cambiar el idioma de reconocimiento de voz, reemplace
en-US
por otroen-US
. Por ejemplo,es-ES
para Español (España). El lenguaje predeterminado esen-US
. Para obtener más información sobre cómo identificar uno de los distintos idiomas que se pueden hablar, consulte Identificación del idioma. - Para cambiar la voz que escucha, reemplace
en-US-JennyMultilingualNeural
con otra voz compatible. Si la voz no habla el idioma del texto que devuelve Azure OpenAI, el servicio Voz no emite audio sintetizado. - Para reducir la latencia de la salida de texto a voz, use la característica de streaming de texto, que permite el procesamiento de texto en tiempo real para una generación rápida de audio y minimiza la latencia, lo que mejora la fluidez y la capacidad de respuesta de las salidas de audio en tiempo real. Consulte cómo usar el streaming de texto.
- Para habilitar el avatar de TTS como experiencia visual de la salida de voz, consulte el artículo sobre la síntesis en tiempo real para el avatar de texto a voz y el código de ejemplo para escenarios de chat con avatar.
- Para usar un modelo diferente, reemplace
gpt-35-turbo-instruct
con el identificador de otra implementación. Tenga en cuenta que el identificador de implementación no es necesariamente el mismo que el nombre del modelo. Le ha asignado un nombre a la implementación al crearla en Azure OpenAI Studio. - El servicio Azure OpenAI también realiza la moderación de contenido en las entradas de solicitud y salidas generadas. Las solicitudes o respuestas se pueden filtrar si se detecta contenido dañino. Para obtener más información, consulte el artículo sobre filtros de contenido.
Limpieza de recursos
Puede usar Azure Portal o la Interfaz de la línea de comandos (CLI) de Azure para quitar el recurso de Voz que creó.