Conversation vocale Azure OpenAI
Documentation de référence | Package (NuGet) | Exemples supplémentaires sur GitHub
Dans ce guide pratique, vous pouvez utiliser Azure AI Speech pour communiquer avec Azure OpenAI Service. Le texte reconnu par le service Speech est envoyé à Azure OpenAI. Le service Speech synthétise la parole à partir de la réponse textuelle d’Azure OpenAI.
Parlez dans le micro pour démarrer une conversation avec Azure OpenAI.
- Le service Speech reconnaît votre message et le convertit en texte (reconnaissance vocale).
- Votre requête sous forme de texte est envoyée à Azure OpenAI.
- La fonctionnalité de synthèse vocale du service Speech synthétise la réponse d’Azure OpenAI au locuteur par défaut.
Bien que l’expérience de cet exemple soit un échange aller-retour, Azure OpenAI ne se souvient pas du contexte de votre conversation.
Important
Pour suivre les étapes de ce guide, vous devez avoir accès au service Microsoft Azure OpenAI dans votre abonnement Azure. L’accès à ce service n’est accordé qu’à l’application. Demandez l’accès à Azure OpenAI en remplissant le formulaire à l’adresse https://aka.ms/oai/access.
Prérequis
- Abonnement Azure - En créer un gratuitement
- Créez une ressource Microsoft Azure OpenAI Service dans le portail Azure.
- Déployez un modèle dans votre ressource Azure OpenAI. Pour plus d’informations sur le modèle de déploiement, consultez le guide de déploiement des ressources.
- Obtenez la clé de ressource et le point de terminaison Azure OpenAI. Une fois votre ressource Azure OpenAI déployée, sélectionnez Accéder à la ressource pour afficher et gérer les clés. Si vous souhaitez en savoir plus sur les ressources Azure AI services, veuillez consulter la rubrique Obtenir les clés de votre ressource.
- Créer une ressource Speech dans le portail Azure.
- Obtenez la clé de ressource et la région Speech. Une fois votre ressource vocale déployée, sélectionnez Accéder à la ressource pour afficher et gérer les clés. Si vous souhaitez en savoir plus sur les ressources Azure AI services, veuillez consulter la rubrique Obtenir les clés de votre ressource.
Configurer l’environnement
Le kit de développement logiciel (SDK) Speech est disponible en tant que package NuGet et implémente .NET Standard 2.0. Ce guide vous invite à installer le SDK Speech plus tard. Consultez d’abord le guide d’installation du SDK pour connaître les éventuelles autres exigences.
Définir des variables d’environnement
Cet exemple nécessite des variables d’environnement nommées OPEN_AI_KEY
, OPEN_AI_ENDPOINT
, OPEN_AI_DEPLOYMENT_NAME
, SPEECH_KEY
et SPEECH_REGION
.
Votre application doit être authentifiée pour accéder aux ressources Azure AI services. Pour la production, utilisez une méthode de stockage et d’accès sécurisée pour vos informations d’identification. Par exemple, après avoir obtenu une clé pour votre ressource Speech, écrivez-la dans une nouvelle variable d'environnement sur la machine locale exécutant l'application.
Conseil
N’incluez pas la clé directement dans votre code et ne la publiez jamais publiquement. Consultez Sécurité des services Azure AI pour plus d’options d’authentification comme Azure Key Vault.
Pour définir les variables d’environnement, ouvrez une fenêtre de console et suivez les instructions relatives à votre système d’exploitation et à votre environnement de développement.
- Pour définir la variable d’environnement
OPEN_AI_KEY
, remplacezyour-openai-key
par l’une des clés de votre ressource. - Pour définir la variable d’environnement
OPEN_AI_ENDPOINT
, remplacezyour-openai-endpoint
par l’une des régions de votre ressource. - Pour définir la variable d’environnement
OPEN_AI_DEPLOYMENT_NAME
, remplacezyour-openai-deployment-name
par l’une des régions de votre ressource. - Pour définir la variable d’environnement
SPEECH_KEY
, remplacezyour-speech-key
par l’une des clés de votre ressource. - Pour définir la variable d’environnement
SPEECH_REGION
, remplacezyour-speech-region
par l’une des régions de votre ressource.
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
Remarque
Si vous avez uniquement besoin d'accéder à la variable d'environnement dans la console en cours d'exécution, définissez la variable d'environnement avec set
au lieu de setx
.
Après avoir ajouté les variables d'environnement, vous devrez peut-être redémarrer tous les programmes en cours d'exécution qui doivent lire la variable d'environnement, y compris la fenêtre de console. Par exemple, si Visual Studio est votre éditeur, redémarrez Visual Studio avant d'exécuter l'exemple.
Reconnaître la voix provenant d’un micro
Suivez ces étapes pour créer une nouvelle application console.
Ouvrez une fenêtre d’invite de commandes dans le dossier où vous souhaitez placer le nouveau projet. Exécutez cette commande pour créer une application console avec l’interface CLI .NET.
dotnet new console
La commande crée un fichier Program.cs dans le répertoire du projet.
Installez le kit de développement logiciel (SDK) Speech dans votre nouveau projet avec l’interface CLI .NET.
dotnet add package Microsoft.CognitiveServices.Speech
Installer le Kit de développement logiciel (SDK) Azure OpenAI (version préliminaire) dans votre nouveau projet avec l’interface de ligne de commande .NET.
dotnet add package Azure.AI.OpenAI --prerelease
Remplacez le contenu de
Program.cs
par le code suivant.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; } } }
Pour augmenter ou diminuer le nombre de jetons retournés par Azure OpenAI, modifiez la propriété
MaxTokens
dans l’instance de classeChatCompletionsOptions
. Pour plus d’informations sur les jetons et les implications sur les coûts, consultez les sections Jetons Azure OpenAI et Tarification Azure OpenAI.Exécutez votre nouvelle application console pour démarrer la reconnaissance vocale à partir d’un microphone :
dotnet run
Important
Assurez-vous de définir les OPEN_AI_KEY
variables d'environnementOPEN_AI_ENDPOINT
, OPEN_AI_DEPLOYMENT_NAME
, SPEECH_KEY
, SPEECH_REGION
, et comme décrit. Si vous ne définissez pas ces variables, l’exemple échoue avec un message d’erreur.
Parlez dans votre microphone lorsque vous y êtes invité. La sortie de la console inclut l’invite pour commencer à parler, puis votre requête sous forme de texte, puis la réponse d’Azure OpenAI sous forme de texte. La réponse d’Azure OpenAI doit être convertie en voix, puis sortir via le haut-parleur par défaut.
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>
Notes
Voici quelques considérations supplémentaires :
- Pour modifier la langue de la reconnaissance vocale, remplacez
en-US
par une autre langue prise en charge. Par exemple,es-ES
pour l’espagnol (Espagne). Le langage par défaut esten-US
, Pour plus d’informations sur l’identification de l’une des langues qui peuvent être parlées, consultez Identification de la langue. - Pour modifier la voix que vous entendez, remplacez
en-US-JennyMultilingualNeural
par une autre voix prise en charge. Si la voix ne s’exprime pas dans la langue correspondant au texte retourné par Azure OpenAI, le service Speech ne génère pas de données audio synthétisées. - Pour utiliser un autre modèle, remplacez
gpt-35-turbo-instruct
avec l’ID d’un autre déploiement. L'ID de déploiement n'est pas nécessairement le même que le nom du modèle. Vous avez nommé votre déploiement lorsque vous l’avez créé dans Azure OpenAI Studio. - Azure OpenAI effectue également une modération du contenu sur les entrées d’invite et les sorties générées. Les invites ou les réponses peuvent être filtrées si un contenu nuisible est détecté. Pour plus d’informations, consultez l’article sur le filtrage de contenu.
Nettoyer les ressources
Vous pouvez utiliser le portail Azure ou l’interface de ligne de commande (CLI) Azure pour supprimer la ressource Speech que vous avez créée.
Documentation de référence | Package (PyPi) | Exemples supplémentaires sur GitHub
Dans ce guide pratique, vous pouvez utiliser Azure AI Speech pour communiquer avec Azure OpenAI Service. Le texte reconnu par le service Speech est envoyé à Azure OpenAI. Le service Speech synthétise la parole à partir de la réponse textuelle d’Azure OpenAI.
Parlez dans le micro pour démarrer une conversation avec Azure OpenAI.
- Le service Speech reconnaît votre message et le convertit en texte (reconnaissance vocale).
- Votre requête sous forme de texte est envoyée à Azure OpenAI.
- La fonctionnalité de synthèse vocale du service Speech synthétise la réponse d’Azure OpenAI au locuteur par défaut.
Bien que l’expérience de cet exemple soit un échange aller-retour, Azure OpenAI ne se souvient pas du contexte de votre conversation.
Important
Pour suivre les étapes de ce guide, vous devez avoir accès au service Microsoft Azure OpenAI dans votre abonnement Azure. L’accès à ce service n’est accordé qu’à l’application. Demandez l’accès à Azure OpenAI en remplissant le formulaire à l’adresse https://aka.ms/oai/access.
Prérequis
- Abonnement Azure - En créer un gratuitement
- Créez une ressource Microsoft Azure OpenAI Service dans le portail Azure.
- Déployez un modèle dans votre ressource Azure OpenAI. Pour plus d’informations sur le modèle de déploiement, consultez le guide de déploiement des ressources.
- Obtenez la clé de ressource et le point de terminaison Azure OpenAI. Une fois votre ressource Azure OpenAI déployée, sélectionnez Accéder à la ressource pour afficher et gérer les clés. Si vous souhaitez en savoir plus sur les ressources Azure AI services, veuillez consulter la rubrique Obtenir les clés de votre ressource.
- Créer une ressource Speech dans le portail Azure.
- Obtenez la clé de ressource et la région Speech. Une fois votre ressource vocale déployée, sélectionnez Accéder à la ressource pour afficher et gérer les clés. Si vous souhaitez en savoir plus sur les ressources Azure AI services, veuillez consulter la rubrique Obtenir les clés de votre ressource.
Configurer l’environnement
Le kit SDK Speech pour Python est disponible sous forme de module Python Package Index (PyPI). Le Kit de développement logiciel (SDK) Speech pour Python est compatible avec Windows, Linux et macOS.
- Installez le Redistribuable Microsoft Visual C++ pour Visual Studio 2015, 2017, 2019 et 2022 pour votre plateforme. La toute première installation de ce package peut nécessiter un redémarrage.
- Sur Linux, vous devez utiliser l’architecture cible x64.
Installez Python 3.7 ou une version ultérieure. Vérifiez d’abord le guide d’installation SDK pour toute information complémentaire.
Installez les bibliothèques Python suivantes : os
, requests
, json
.
Définir des variables d’environnement
Cet exemple nécessite des variables d’environnement nommées OPEN_AI_KEY
, OPEN_AI_ENDPOINT
, OPEN_AI_DEPLOYMENT_NAME
, SPEECH_KEY
et SPEECH_REGION
.
Votre application doit être authentifiée pour accéder aux ressources Azure AI services. Pour la production, utilisez une méthode de stockage et d’accès sécurisée pour vos informations d’identification. Par exemple, après avoir obtenu une clé pour votre ressource Speech, écrivez-la dans une nouvelle variable d'environnement sur la machine locale exécutant l'application.
Conseil
N’incluez pas la clé directement dans votre code et ne la publiez jamais publiquement. Consultez Sécurité des services Azure AI pour plus d’options d’authentification comme Azure Key Vault.
Pour définir les variables d’environnement, ouvrez une fenêtre de console et suivez les instructions relatives à votre système d’exploitation et à votre environnement de développement.
- Pour définir la variable d’environnement
OPEN_AI_KEY
, remplacezyour-openai-key
par l’une des clés de votre ressource. - Pour définir la variable d’environnement
OPEN_AI_ENDPOINT
, remplacezyour-openai-endpoint
par l’une des régions de votre ressource. - Pour définir la variable d’environnement
OPEN_AI_DEPLOYMENT_NAME
, remplacezyour-openai-deployment-name
par l’une des régions de votre ressource. - Pour définir la variable d’environnement
SPEECH_KEY
, remplacezyour-speech-key
par l’une des clés de votre ressource. - Pour définir la variable d’environnement
SPEECH_REGION
, remplacezyour-speech-region
par l’une des régions de votre ressource.
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
Remarque
Si vous avez uniquement besoin d'accéder à la variable d'environnement dans la console en cours d'exécution, définissez la variable d'environnement avec set
au lieu de setx
.
Après avoir ajouté les variables d'environnement, vous devrez peut-être redémarrer tous les programmes en cours d'exécution qui doivent lire la variable d'environnement, y compris la fenêtre de console. Par exemple, si Visual Studio est votre éditeur, redémarrez Visual Studio avant d'exécuter l'exemple.
Reconnaître la voix provenant d’un micro
Suivez ces étapes pour créer une nouvelle application console.
Ouvrez une fenêtre d’invite de commandes dans le dossier où vous souhaitez placer le nouveau projet. Ouvrez une invite de commandes à l’emplacement où vous souhaitez placer le nouveau projet, puis créez un nouveau fichier nommé
openai-speech.py
.Exécutez cette commande pour installer le SDK Speech :
pip install azure-cognitiveservices-speech
Exécutez cette commande pour installer le kit de développement logiciel (SDK) OpenAI :
pip install openai
Remarque
Cette bibliothèque est gérée par OpenAI et non par Microsoft Azure. Reportez-vous à l’historique des mises en production ou à l’historique de validation version.py pour suivre les dernières mises à jour de la bibliothèque.
Créez un fichier nommé openai-speech.py. Copiez le code suivant dans ce fichier :
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))
Pour augmenter ou diminuer le nombre de jetons retournés par Azure OpenAI, modifiez le paramètre
max_tokens
. Pour plus d’informations sur les jetons et les implications sur les coûts, consultez les sections Jetons Azure OpenAI et Tarification Azure OpenAI.Exécutez votre nouvelle application console pour démarrer la reconnaissance vocale à partir d’un microphone :
python openai-speech.py
Important
Vérifiez que vous avez défini les OPEN_AI_KEY
, OPEN_AI_ENDPOINT
, OPEN_AI_DEPLOYMENT_NAME
, SPEECH_KEY
et SPEECH_REGION
les variables d’environnement comme décrit précédemment. Si vous ne définissez pas ces variables, l’exemple échoue avec un message d’erreur.
Parlez dans votre microphone lorsque vous y êtes invité. La sortie de la console inclut l’invite pour commencer à parler, puis votre requête sous forme de texte, puis la réponse d’Azure OpenAI sous forme de texte. La réponse d’Azure OpenAI doit être convertie en voix, puis sortir via le haut-parleur par défaut.
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>
Notes
Voici quelques considérations supplémentaires :
- Pour modifier la langue de la reconnaissance vocale, remplacez
en-US
par une autre langue prise en charge. Par exemple,es-ES
pour l’espagnol (Espagne). Le langage par défaut esten-US
, Pour plus d’informations sur l’identification de l’une des langues qui peuvent être parlées, consultez Identification de la langue. - Pour modifier la voix que vous entendez, remplacez
en-US-JennyMultilingualNeural
par une autre voix prise en charge. Si la voix ne s’exprime pas dans la langue correspondant au texte retourné par Azure OpenAI, le service Speech ne génère pas de données audio synthétisées. - Pour utiliser un autre modèle, remplacez
gpt-35-turbo-instruct
avec l’ID d’un autre déploiement. N’oubliez pas que l’ID de déploiement n’est pas nécessairement le même que le nom du modèle. Vous avez nommé votre déploiement lorsque vous l’avez créé dans Azure OpenAI Studio. - Azure OpenAI effectue également une modération du contenu sur les entrées d’invite et les sorties générées. Les invites ou les réponses peuvent être filtrées si un contenu nuisible est détecté. Pour plus d’informations, consultez l’article sur le filtrage de contenu.
Nettoyer les ressources
Vous pouvez utiliser le portail Azure ou l’interface de ligne de commande (CLI) Azure pour supprimer la ressource Speech que vous avez créée.