Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Pacote de documentação | de referência (NuGet) | Exemplos adicionais no GitHub
Neste guia de instruções, você pode usar o Azure AI Speech para conversar com o Azure OpenAI no Azure AI Foundry Models. O texto reconhecido pelo serviço de Fala é enviado para o Azure OpenAI. O serviço de Fala sintetiza a fala a partir da resposta de texto do Azure OpenAI.
Fale ao microfone para iniciar uma conversa com o Azure OpenAI.
- O serviço de Fala reconhece sua fala e a converte em texto (fala para texto).
- Sua solicitação como texto é enviada para o Azure OpenAI.
- O recurso de conversão de texto em fala do serviço de fala sintetiza a resposta do Azure OpenAI para o alto-falante padrão.
Embora a experiência deste exemplo seja uma troca de idas e vindas, o Azure OpenAI não se lembra do contexto da sua conversa.
Pré-requisitos
- Subscrição do Azure - Criar uma gratuitamente
- Crie um recurso do Microsoft Azure OpenAI no Azure AI Foundry Models no portal do Azure.
- Implante um modelo em seu recurso do Azure OpenAI. Para obter mais informações sobre a implantação do modelo, consulte o guia de implantação de recursos do Azure OpenAI.
- Obtenha a chave de recurso e o ponto de extremidade do Azure OpenAI. Depois que seu recurso do Azure OpenAI for implantado, selecione Ir para o recurso para exibir e gerenciar chaves.
- Crie um recurso AI Foundry para Speech no portal do Azure.
- Obtenha a chave de recurso de Fala e a região. Depois que o recurso de Fala for implantado, selecione Ir para o recurso para exibir e gerenciar chaves.
Configurar o ambiente
O SDK de fala está disponível como um pacote NuGet e implementa o .NET Standard 2.0. Você instala o SDK de fala mais adiante neste guia, mas primeiro verifique o guia de instalação do SDK para obter mais requisitos.
Definir variáveis de ambiente
Este exemplo requer variáveis de ambiente denominadas AZURE_OPENAI_API_KEY
, AZURE_OPENAI_ENDPOINT
, AZURE_OPENAI_CHAT_DEPLOYMENT
, SPEECH_KEY
e SPEECH_REGION
.
Seu aplicativo deve ser autenticado para acessar os recursos do Azure AI Foundry. Este artigo mostra como usar variáveis de ambiente para armazenar suas credenciais. Em seguida, você pode acessar as variáveis de ambiente do seu código para autenticar seu aplicativo. Para produção, use uma maneira mais segura de armazenar e acessar suas credenciais.
Importante
Recomendamos a autenticação do Microsoft Entra ID com identidades gerenciadas para recursos do Azure para evitar o armazenamento de credenciais com seus aplicativos executados na nuvem.
Use chaves de API com cuidado. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente. Se estiver usando chaves de API, armazene-as com segurança no Cofre de Chaves do Azure, gire as chaves regularmente e restrinja o acesso ao Cofre de Chaves do Azure usando controle de acesso baseado em função e restrições de acesso à rede. Para obter mais informações sobre como usar chaves de API com segurança em seus aplicativos, consulte Chaves de API com o Cofre de Chaves do Azure.
Para obter mais informações sobre segurança de serviços de IA, consulte Autenticar solicitações para serviços de IA do Azure.
Para definir as variáveis de ambiente, abra uma janela de console e siga as instruções para seu sistema operacional e ambiente de desenvolvimento.
- Para definir a
AZURE_OPENAI_API_KEY
variável de ambiente, substituayour-openai-key
por uma das chaves do seu recurso. - Para definir a
AZURE_OPENAI_ENDPOINT
variável de ambiente, substituayour-openai-endpoint
por uma das regiões do seu recurso. - Para definir a
AZURE_OPENAI_CHAT_DEPLOYMENT
variável de ambiente, substituayour-openai-deployment-name
por uma das regiões do seu recurso. - Para definir a
SPEECH_KEY
variável de ambiente, substituayour-speech-key
por uma das chaves do seu recurso. - Para definir a
SPEECH_REGION
variável de ambiente, substituayour-speech-region
por uma das regiões do seu recurso.
setx AZURE_OPENAI_API_KEY your-openai-key
setx AZURE_OPENAI_ENDPOINT your-openai-endpoint
setx AZURE_OPENAI_CHAT_DEPLOYMENT your-openai-deployment-name
setx SPEECH_KEY your-speech-key
setx SPEECH_REGION your-speech-region
Nota
Se você só precisar acessar a variável de ambiente no console em execução atual, defina a variável de ambiente com set
em vez de setx
.
Depois de adicionar as variáveis de ambiente, talvez seja necessário reiniciar todos os programas em execução que precisem ler a variável de ambiente, incluindo a janela do console. Por exemplo, se o Visual Studio for seu editor, reinicie o Visual Studio antes de executar o exemplo.
Reconhecer voz a partir de um microfone
Siga estas etapas para criar um novo aplicativo de console.
Abra uma janela de prompt de comando na pasta onde você deseja o novo projeto. Execute este comando para criar um aplicativo de console com a CLI do .NET.
dotnet new console
O comando cria um arquivo Program.cs no diretório do projeto.
Instale o SDK de fala em seu novo projeto com a CLI do .NET.
dotnet add package Microsoft.CognitiveServices.Speech
Instale o SDK do Azure OpenAI (pré-lançamento) em seu novo projeto com a CLI do .NET.
dotnet add package Azure.AI.OpenAI --prerelease
Substitua o conteúdo do pelo código a
Program.cs
seguir.using System.Text; using Microsoft.CognitiveServices.Speech; using Microsoft.CognitiveServices.Speech.Audio; using Azure; using Azure.AI.OpenAI; // This example requires environment variables named "AZURE_OPENAI_API_KEY", "AZURE_OPENAI_ENDPOINT" and "AZURE_OPENAI_CHAT_DEPLOYMENT" // Your endpoint should look like the following https://YOUR_OPEN_AI_RESOURCE_NAME.openai.azure.com/ string openAIKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? throw new ArgumentException("Missing AZURE_OPENAI_API_KEY"); string openAIEndpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new ArgumentException("Missing AZURE_OPENAI_ENDPOINT"); // Enter the deployment name you chose when you deployed the model. string engine = Environment.GetEnvironmentVariable("AZURE_OPENAI_CHAT_DEPLOYMENT") ?? throw new ArgumentException("Missing AZURE_OPENAI_CHAT_DEPLOYMENT"); // 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 ChatWithAzureOpenAI(); } catch (Exception ex) { Console.WriteLine(ex); } // Prompts Azure OpenAI with a request and synthesizes the response. async Task AskAzureOpenAI(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 ChatWithAzureOpenAI() { // 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 AskAzureOpenAI(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 ou diminuir o número de tokens retornados pelo Azure OpenAI, altere a
MaxTokens
propriedade na instância deChatCompletionsOptions
classe. Para obter mais informações sobre tokens e implicações de custo, consulte Tokens do Azure OpenAI e Preços do Azure OpenAI.Execute seu novo aplicativo de console para iniciar o reconhecimento de fala a partir de um microfone:
dotnet run
Importante
Certifique-se de definir as AZURE_OPENAI_API_KEY
variáveis , AZURE_OPENAI_ENDPOINT
, AZURE_OPENAI_CHAT_DEPLOYMENT
SPEECH_KEY
e SPEECH_REGION
de ambiente conforme descrito. Se você não definir essas variáveis, o exemplo falhará com uma mensagem de erro.
Fale ao microfone quando solicitado. A saída do console inclui o prompt para você começar a falar, em seguida, sua solicitação como texto e, em seguida, a resposta do Azure OpenAI como texto. A resposta do Azure OpenAI deve ser convertida de texto em fala e, em seguida, saída para o alto-falante padrão.
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>
Observações
Aqui estão mais algumas considerações:
- Para alterar o idioma de reconhecimento de fala, substitua
en-US
por outro idioma suportado. Por exemplo,es-ES
para o espanhol (Espanha). O idioma padrão éen-US
. Para obter detalhes sobre como identificar um dos vários idiomas que podem ser falados, consulte Identificação do idioma. - Para alterar a voz que ouve, substitua
en-US-JennyMultilingualNeural
por outra voz suportada. Se a voz não falar o idioma do texto retornado do Azure OpenAI, o serviço de Fala não produzirá áudio sintetizado. - Para reduzir a latência da saída de texto para fala, use o recurso de streaming de texto, que permite o processamento de texto em tempo real para geração rápida de áudio e minimiza a latência, melhorando a fluidez e a capacidade de resposta das saídas de áudio em tempo real. Consulte como usar o streaming de texto.
- Para habilitar o TTS Avatar como uma experiência visual de saída de fala, consulte a síntese em tempo real para avatar de texto para fala e código de exemplo para cenário de bate-papo com avatar.
- O Azure OpenAI também executa a moderação de conteúdo nas entradas de prompt e saídas geradas. As solicitações ou respostas podem ser filtradas se for detetado conteúdo nocivo. Para obter mais informações, consulte o artigo sobre filtragem de conteúdo.
Clean up resources (Limpar recursos)
Você pode usar o portal do Azure ou a CLI (Interface de Linha de Comando) do Azure para remover o recurso de Fala criado.
Pacote de documentação | de referência (PyPi) | Amostras adicionais no GitHub
Neste guia de instruções, você pode usar o Azure AI Speech para conversar com o Azure OpenAI no Azure AI Foundry Models. O texto reconhecido pelo serviço de Fala é enviado para o Azure OpenAI. O serviço de Fala sintetiza a fala a partir da resposta de texto do Azure OpenAI.
Fale ao microfone para iniciar uma conversa com o Azure OpenAI.
- O serviço de Fala reconhece sua fala e a converte em texto (fala para texto).
- Sua solicitação como texto é enviada para o Azure OpenAI.
- O recurso de conversão de texto em fala do serviço de fala sintetiza a resposta do Azure OpenAI para o alto-falante padrão.
Embora a experiência deste exemplo seja uma troca de idas e vindas, o Azure OpenAI não se lembra do contexto da sua conversa.
Pré-requisitos
- Subscrição do Azure - Criar uma gratuitamente
- Crie um recurso do Microsoft Azure OpenAI no Azure AI Foundry Models no portal do Azure.
- Implante um modelo em seu recurso do Azure OpenAI. Para obter mais informações sobre a implantação do modelo, consulte o guia de implantação de recursos do Azure OpenAI.
- Obtenha a chave de recurso e o ponto de extremidade do Azure OpenAI. Depois que seu recurso do Azure OpenAI for implantado, selecione Ir para o recurso para exibir e gerenciar chaves.
- Crie um recurso AI Foundry para Speech no portal do Azure.
- Obtenha a chave de recurso de Fala e a região. Depois que o recurso de Fala for implantado, selecione Ir para o recurso para exibir e gerenciar chaves.
Configurar o ambiente
O Speech SDK for Python está disponível como um módulo Python Package Index (PyPI). O Speech SDK for Python é compatível com Windows, Linux e macOS.
- Instale o Microsoft Visual C++ Redistributable para Visual Studio 2015, 2017, 2019 e 2022 para sua plataforma. A instalação deste pacote pela primeira vez pode exigir uma reinicialização.
- No Linux, você deve usar a arquitetura de destino x64.
Instale uma versão do Python a partir da versão 3.7 ou posterior. Primeiro, verifique o guia de instalação do SDK para obter mais requisitos.
Instale as seguintes bibliotecas Python: os
, requests
, json
.
Definir variáveis de ambiente
Este exemplo requer variáveis de ambiente denominadas AZURE_OPENAI_API_KEY
, AZURE_OPENAI_ENDPOINT
, AZURE_OPENAI_CHAT_DEPLOYMENT
, SPEECH_KEY
e SPEECH_REGION
.
Seu aplicativo deve ser autenticado para acessar os recursos do Azure AI Foundry. Este artigo mostra como usar variáveis de ambiente para armazenar suas credenciais. Em seguida, você pode acessar as variáveis de ambiente do seu código para autenticar seu aplicativo. Para produção, use uma maneira mais segura de armazenar e acessar suas credenciais.
Importante
Recomendamos a autenticação do Microsoft Entra ID com identidades gerenciadas para recursos do Azure para evitar o armazenamento de credenciais com seus aplicativos executados na nuvem.
Use chaves de API com cuidado. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente. Se estiver usando chaves de API, armazene-as com segurança no Cofre de Chaves do Azure, gire as chaves regularmente e restrinja o acesso ao Cofre de Chaves do Azure usando controle de acesso baseado em função e restrições de acesso à rede. Para obter mais informações sobre como usar chaves de API com segurança em seus aplicativos, consulte Chaves de API com o Cofre de Chaves do Azure.
Para obter mais informações sobre segurança de serviços de IA, consulte Autenticar solicitações para serviços de IA do Azure.
Para definir as variáveis de ambiente, abra uma janela de console e siga as instruções para seu sistema operacional e ambiente de desenvolvimento.
- Para definir a
AZURE_OPENAI_API_KEY
variável de ambiente, substituayour-openai-key
por uma das chaves do seu recurso. - Para definir a
AZURE_OPENAI_ENDPOINT
variável de ambiente, substituayour-openai-endpoint
por uma das regiões do seu recurso. - Para definir a
AZURE_OPENAI_CHAT_DEPLOYMENT
variável de ambiente, substituayour-openai-deployment-name
por uma das regiões do seu recurso. - Para definir a
SPEECH_KEY
variável de ambiente, substituayour-speech-key
por uma das chaves do seu recurso. - Para definir a
SPEECH_REGION
variável de ambiente, substituayour-speech-region
por uma das regiões do seu recurso.
setx AZURE_OPENAI_API_KEY your-openai-key
setx AZURE_OPENAI_ENDPOINT your-openai-endpoint
setx AZURE_OPENAI_CHAT_DEPLOYMENT your-openai-deployment-name
setx SPEECH_KEY your-speech-key
setx SPEECH_REGION your-speech-region
Nota
Se você só precisar acessar a variável de ambiente no console em execução atual, defina a variável de ambiente com set
em vez de setx
.
Depois de adicionar as variáveis de ambiente, talvez seja necessário reiniciar todos os programas em execução que precisem ler a variável de ambiente, incluindo a janela do console. Por exemplo, se o Visual Studio for seu editor, reinicie o Visual Studio antes de executar o exemplo.
Reconhecer voz a partir de um microfone
Siga estas etapas para criar um novo aplicativo de console.
Abra uma janela de prompt de comando na pasta onde você deseja o novo projeto. Abra um prompt de comando onde você deseja o novo projeto e crie um novo arquivo chamado
azure-openai-speech.py
.Execute este comando para instalar o SDK de fala:
pip install azure-cognitiveservices-speech
Execute este comando para instalar o OpenAI SDK:
pip install openai
Nota
Esta biblioteca é mantida pela OpenAI, não pelo Microsoft Azure. Consulte o histórico de lançamentos ou o histórico de confirmação de version.py para acompanhar as atualizações mais recentes da biblioteca.
Crie um arquivo chamado azure-openai-speech.py. Copie o seguinte código para esse arquivo:
import os import azure.cognitiveservices.speech as speechsdk from openai import AzureOpenAI # This example requires environment variables named "AZURE_OPENAI_API_KEY", "AZURE_OPENAI_ENDPOINT" and "AZURE_OPENAI_CHAT_DEPLOYMENT" # Your endpoint should look like the following https://YOUR_OPEN_AI_RESOURCE_NAME.openai.azure.com/ client = AzureOpenAI( azure_endpoint=os.environ.get('AZURE_OPENAI_ENDPOINT'), api_key=os.environ.get('AZURE_OPENAI_API_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('AZURE_OPENAI_CHAT_DEPLOYMENT') # 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_azure_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_azure_openai(): 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_azure_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_azure_openai() except Exception as err: print("Encountered exception. {}".format(err))
Para aumentar ou diminuir o número de tokens retornados pelo Azure OpenAI, altere o
max_tokens
parâmetro. Para obter mais informações sobre tokens e implicações de custo, consulte Tokens do Azure OpenAI e Preços do Azure OpenAI.Execute seu novo aplicativo de console para iniciar o reconhecimento de fala a partir de um microfone:
python azure-openai-speech.py
Importante
Certifique-se de definir as AZURE_OPENAI_API_KEY
variáveis , AZURE_OPENAI_ENDPOINT
, AZURE_OPENAI_CHAT_DEPLOYMENT
SPEECH_KEY
e SPEECH_REGION
ambiente conforme descrito anteriormente. Se você não definir essas variáveis, o exemplo falhará com uma mensagem de erro.
Fale ao microfone quando solicitado. A saída do console inclui o prompt para você começar a falar, em seguida, sua solicitação como texto e, em seguida, a resposta do Azure OpenAI como texto. A resposta do Azure OpenAI deve ser convertida de texto em fala e, em seguida, saída para o alto-falante padrão.
PS C:\dev\openai\python> python.exe .\azure-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>
Observações
Aqui estão mais algumas considerações:
- Para alterar o idioma de reconhecimento de fala, substitua
en-US
por outro idioma suportado. Por exemplo,es-ES
para o espanhol (Espanha). O idioma padrão éen-US
. Para obter detalhes sobre como identificar um dos vários idiomas que podem ser falados, consulte Identificação do idioma. - Para alterar a voz que ouve, substitua
en-US-JennyMultilingualNeural
por outra voz suportada. Se a voz não falar o idioma do texto retornado do Azure OpenAI, o serviço de Fala não produzirá áudio sintetizado. - Para reduzir a latência da saída de texto para fala, use o recurso de streaming de texto, que permite o processamento de texto em tempo real para geração rápida de áudio e minimiza a latência, melhorando a fluidez e a capacidade de resposta das saídas de áudio em tempo real. Consulte como usar o streaming de texto.
- Para habilitar o TTS Avatar como uma experiência visual de saída de fala, consulte a síntese em tempo real para avatar de texto para fala e código de exemplo para cenário de bate-papo com avatar.
- O Azure OpenAI também executa a moderação de conteúdo nas entradas de prompt e saídas geradas. As solicitações ou respostas podem ser filtradas se for detetado conteúdo nocivo. Para obter mais informações, consulte o artigo sobre filtragem de conteúdo.
Clean up resources (Limpar recursos)
Você pode usar o portal do Azure ou a CLI (Interface de Linha de Comando) do Azure para remover o recurso de Fala criado.