Chat con riconoscimento vocale di OpenAI di Azure

Documentazione di riferimento | Pacchetto (NuGet) | Altri esempi in GitHub

In questa guida pratica è possibile usare il Voce di Azure AI per conversare con il Servizio OpenAI di Azure. Il testo riconosciuto dal servizio Voce viene inviato a OpenAI di Azure. Il servizio Voce sintetizza la voce dalla risposta testuale di Azure OpenAI.

Parlare al microfono per avviare una conversazione con OpenAI di Azure.

  • Il servizio Voce riconosce il parlato e lo converte in testo (riconoscimento vocale).
  • La richiesta in formato testo viene inviata a OpenAI di Azure.
  • La funzionalità di sintesi vocale (TTS) del servizio Voce sintetizza la risposta ricevuta da OpenAI di Azure e la riproduce con l'altoparlante predefinito.

Anche se l'esperienza in questo esempio è uno scambio di tipo botta e risposta, OpenAI di Azure non ricorda il contesto della conversazione.

Importante

Per completare i passaggi descritti in questa guida, è necessario avere accesso al servizio OpenAI di Microsoft Azure nella sottoscrizione di Azure. Attualmente, l'accesso a questo servizio viene concesso solo dall'applicazione. Richiedere l'accesso ad Azure OpenAI completando il modulo all'indirizzo https://aka.ms/oai/access.

Prerequisiti

Configurare l'ambiente

Speech SDK per C# è disponibile come pacchetto NuGet e implementa .NET Standard 2.0. Speech SDK verrà installato più avanti in questa guida, ma prima di tutto controllare la guida all'installazione dell'SDK per altri requisiti.

Impostare le variabili di ambiente

Questo esempio richiede variabili di ambiente denominate OPEN_AI_KEY, OPEN_AI_ENDPOINTOPEN_AI_DEPLOYMENT_NAME, SPEECH_KEY e SPEECH_REGION.

L'applicazione deve essere autenticata per accedere alle risorse di Servizi di Azure AI. Per la produzione, usare un modo sicuro per archiviare e accedere alle credenziali. Ad esempio, dopo aver ottenuto una chiave per la risorsa Voce, scriverla in una nuova variabile di ambiente nel computer locale che esegue l'applicazione.

Suggerimento

Non includere la chiave direttamente nel codice e non renderla mai pubblica. Vedere sicurezza dei servizi di Azure AI per altre opzioni di autenticazione, ad esempio Azure Key Vault.

Per impostare le variabili di ambiente, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.

  • Per impostare la variabile di ambiente OPEN_AI_KEY, sostituire your-openai-key con una delle chiavi per la risorsa.
  • Per impostare la variabile di ambiente OPEN_AI_ENDPOINT, sostituire your-openai-endpoint con una delle aree per la risorsa.
  • Per impostare la variabile di ambiente OPEN_AI_DEPLOYMENT_NAME, sostituire your-openai-deployment-name con una delle aree per la risorsa.
  • Per impostare la variabile di ambiente SPEECH_KEY, sostituire your-speech-key con una delle chiavi per la risorsa.
  • Per impostare la variabile di ambiente SPEECH_REGION, sostituire your-speech-region con una delle aree per la risorsa.
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

Se è sufficiente accedere alla variabile di ambiente nella console in esecuzione corrente, impostare la variabile di ambiente con set anziché setx.

Dopo l'aggiunta delle variabili di ambiente potrebbe essere necessario riavviare eventuali programmi in esecuzione che devono leggere la variabile di ambiente, inclusa la finestra della console. Se ad esempio l’editor è Visual Studio, riavviare Visual Studio prima di eseguire l'esempio.

Riconoscimento vocale da un microfono

Seguire questa procedura per creare una nuova applicazione console.

  1. Aprire una finestra del prompt dei comandi nella cartella in cui si desidera il nuovo progetto. Eseguire questo comando per creare un'applicazione console con l'interfaccia della riga di comando di .NET.

    dotnet new console
    

    Il comando crea un file Program.cs nella directory del progetto.

  2. Installare Speech SDK nel nuovo progetto con l'interfaccia della riga di comando di .NET.

    dotnet add package Microsoft.CognitiveServices.Speech
    
  3. Installare Azure OpenAI SDK (versione preliminare) nel nuovo progetto con l'interfaccia della riga di comando di .NET.

    dotnet add package Azure.AI.OpenAI --prerelease 
    
  4. Sostituire il contenuto di Program.cs con il codice seguente.

    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;
            }
        }
    }
    
  5. Per aumentare o ridurre il numero di token restituiti da OpenAI di Azure, modificare la proprietà MaxTokens nell'istanza della classe ChatCompletionsOptions. Per altre informazioni sui token e sulle implicazioni sui costi, vedere Token di OpenAI di Azure e Prezzi di OpenAI di Azure.

  6. Eseguire la nuova applicazione console per avviare il riconoscimento vocale da un microfono:

    dotnet run
    

Importante

Assicurarsi di impostare le variabili di ambienteOPEN_AI_KEY, OPEN_AI_ENDPOINT, OPEN_AI_DEPLOYMENT_NAME, SPEECH_KEY e SPEECH_REGION, come descritto in precedenza. Se queste variabili non vengono impostate, l'esempio avrà esito negativo con un messaggio di errore.

Parlare al microfono quando richiesto. L'output della console include la richiesta di iniziare a parlare, quindi la richiesta come testo e quindi la risposta di OpenAI di Azure come testo. La risposta di OpenAI di Azure deve essere convertita sintesi vocale e quindi restituita dall'altoparlante predefinito.

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>

Osservazioni:

Ecco alcune altre considerazioni:

  • Per modificare la lingua del riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Ad esempio, es-ES per spagnolo (Spagna). Il linguaggio predefinito è en-US. Per informazioni dettagliate su come identificare una tra più lingue che potrebbero essere usate, vedere Identificazione della lingua.
  • Per modificare la voce che viene usata, sostituire en-US-JennyMultilingualNeural con un'altra voce supportata. Se la voce non parla la lingua del testo restituito da OpenAI di Azure, il servizio Voce non restituisce l'audio sintetizzato.
  • Per usare un modello diverso, sostituire gpt-35-turbo-instruct con l'ID di un'altra distribuzione. L’ID distribuzione non corrisponde necessariamente al nome del modello. Si è assegnato il nome alla distribuzione nel momento in cui è stata creata nello studio del Servizio OpenAI di Azure.
  • OpenAI di Azure esegue anche la moderazione del contenuto sugli input delle richieste e sugli output generati. Le richieste o le risposte possono essere filtrate se viene rilevato contenuto dannoso. Per altre informazioni, vedere l'articolo sul filtro del contenuto.

Pulire le risorse

Per rimuovere la risorsa Voce creata è possibile usare il portale di Azure o l'interfaccia della riga di comando di Azure.

Documentazione di riferimento | Pacchetto (PyPi) | Altri esempi in GitHub

In questa guida pratica è possibile usare il Voce di Azure AI per conversare con il Servizio OpenAI di Azure. Il testo riconosciuto dal servizio Voce viene inviato a OpenAI di Azure. Il servizio Voce sintetizza la voce dalla risposta testuale di Azure OpenAI.

Parlare al microfono per avviare una conversazione con OpenAI di Azure.

  • Il servizio Voce riconosce il parlato e lo converte in testo (riconoscimento vocale).
  • La richiesta in formato testo viene inviata a OpenAI di Azure.
  • La funzionalità di sintesi vocale (TTS) del servizio Voce sintetizza la risposta ricevuta da OpenAI di Azure e la riproduce con l'altoparlante predefinito.

Anche se l'esperienza in questo esempio è uno scambio di tipo botta e risposta, OpenAI di Azure non ricorda il contesto della conversazione.

Importante

Per completare i passaggi descritti in questa guida, è necessario avere accesso al servizio OpenAI di Microsoft Azure nella sottoscrizione di Azure. Attualmente, l'accesso a questo servizio viene concesso solo dall'applicazione. Richiedere l'accesso ad Azure OpenAI completando il modulo all'indirizzo https://aka.ms/oai/access.

Prerequisiti

Configurare l'ambiente

Speech SDK per Python è disponibile come modulo Python Package Index (PyPI). Speech SDK per Python è compatibile con Windows, Linux e macOS.

Installare una versione di Python dalla 3.7 o successiva. Controllare prima di tutto la guida all'installazione dell'SDK per verificare eventuali altri requisiti.

Installare le librerie Python seguenti: os, requests, json.

Impostare le variabili di ambiente

Questo esempio richiede variabili di ambiente denominate OPEN_AI_KEY, OPEN_AI_ENDPOINTOPEN_AI_DEPLOYMENT_NAME, SPEECH_KEY e SPEECH_REGION.

L'applicazione deve essere autenticata per accedere alle risorse di Servizi di Azure AI. Per la produzione, usare un modo sicuro per archiviare e accedere alle credenziali. Ad esempio, dopo aver ottenuto una chiave per la risorsa Voce, scriverla in una nuova variabile di ambiente nel computer locale che esegue l'applicazione.

Suggerimento

Non includere la chiave direttamente nel codice e non renderla mai pubblica. Vedere sicurezza dei servizi di Azure AI per altre opzioni di autenticazione, ad esempio Azure Key Vault.

Per impostare le variabili di ambiente, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.

  • Per impostare la variabile di ambiente OPEN_AI_KEY, sostituire your-openai-key con una delle chiavi per la risorsa.
  • Per impostare la variabile di ambiente OPEN_AI_ENDPOINT, sostituire your-openai-endpoint con una delle aree per la risorsa.
  • Per impostare la variabile di ambiente OPEN_AI_DEPLOYMENT_NAME, sostituire your-openai-deployment-name con una delle aree per la risorsa.
  • Per impostare la variabile di ambiente SPEECH_KEY, sostituire your-speech-key con una delle chiavi per la risorsa.
  • Per impostare la variabile di ambiente SPEECH_REGION, sostituire your-speech-region con una delle aree per la risorsa.
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

Se è sufficiente accedere alla variabile di ambiente nella console in esecuzione corrente, impostare la variabile di ambiente con set anziché setx.

Dopo l'aggiunta delle variabili di ambiente potrebbe essere necessario riavviare eventuali programmi in esecuzione che devono leggere la variabile di ambiente, inclusa la finestra della console. Se ad esempio l’editor è Visual Studio, riavviare Visual Studio prima di eseguire l'esempio.

Riconoscimento vocale da un microfono

Seguire questa procedura per creare una nuova applicazione console.

  1. Aprire una finestra del prompt dei comandi nella cartella in cui si desidera il nuovo progetto. Aprire un prompt dei comandi nella posizione in cui si vuole il nuovo progetto e creare un nuovo file denominato openai-speech.py.

  2. Eseguire questo comando per installare Speech SDK:

    pip install azure-cognitiveservices-speech
    
  3. Eseguire questo comando per installare OpenAI SDK:

    pip install openai
    

    Nota

    Questa libreria viene gestita da OpenAI (non da Microsoft Azure). Fare riferimento alla cronologia delle versioni o alla cronologia di commit di version.py per tenere traccia degli ultimi aggiornamenti apportati alla libreria.

  4. Creare un file denominato openai-speech.py. Copiare il seguente codice nel file:

    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))
    
  5. Per aumentare o ridurre il numero di token restituiti da OpenAI di Azure, modificare il parametro max_tokens. Per altre informazioni sui token e sulle implicazioni sui costi, vedere Token di OpenAI di Azure e Prezzi di OpenAI di Azure.

  6. Eseguire la nuova applicazione console per avviare il riconoscimento vocale da un microfono:

    python openai-speech.py
    

Importante

Assicurarsi di impostare le variabili di ambiente OPEN_AI_KEY, OPEN_AI_ENDPOINT, OPEN_AI_DEPLOYMENT_NAME, SPEECH_KEY e SPEECH_REGION come descritto precedentemente. Se queste variabili non vengono impostate, l'esempio avrà esito negativo con un messaggio di errore.

Parlare al microfono quando richiesto. L'output della console include la richiesta di iniziare a parlare, quindi la richiesta come testo e quindi la risposta di OpenAI di Azure come testo. La risposta di OpenAI di Azure deve essere convertita sintesi vocale e quindi restituita dall'altoparlante predefinito.

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> 

Osservazioni:

Ecco alcune altre considerazioni:

  • Per modificare la lingua del riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Ad esempio, es-ES per spagnolo (Spagna). Il linguaggio predefinito è en-US. Per informazioni dettagliate su come identificare una tra più lingue che potrebbero essere usate, vedere Identificazione della lingua.
  • Per modificare la voce che viene usata, sostituire en-US-JennyMultilingualNeural con un'altra voce supportata. Se la voce non parla la lingua del testo restituito da OpenAI di Azure, il servizio Voce non restituisce l'audio sintetizzato.
  • Per usare un modello diverso, sostituire gpt-35-turbo-instruct con l'ID di un'altra distribuzione. Tenere presente che l'ID distribuzione non corrisponde necessariamente al nome del modello. Si è assegnato il nome alla distribuzione nel momento in cui è stata creata nello studio del Servizio OpenAI di Azure.
  • OpenAI di Azure esegue anche la moderazione del contenuto sugli input delle richieste e sugli output generati. Le richieste o le risposte possono essere filtrate se viene rilevato contenuto dannoso. Per altre informazioni, vedere l'articolo sul filtro del contenuto.

Pulire le risorse

Per rimuovere la risorsa Voce creata è possibile usare il portale di Azure o l'interfaccia della riga di comando di Azure.