Guida introduttiva: Riconoscimento e traduzione vocale in testo

Pacchetto della documentazione di riferimento | (NuGet) | Esempi aggiuntivi in GitHub

In questa guida introduttiva si esegue un'applicazione per tradurre la voce da una lingua a testo in un'altra lingua.

Prerequisiti

Configurare l'ambiente

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

Impostare le variabili di ambiente

L'applicazione deve essere autenticata per accedere alle risorse dei servizi di intelligenza artificiale di Azure. Per l'ambiente di produzione, usare un modo sicuro per archiviare e accedere alle credenziali. Ad esempio, dopo aver ottenere 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 pubblicarla pubblicamente. Per altre opzioni di autenticazione, ad esempio Azure Key Vault, vedere Sicurezza dei servizi di intelligenza artificiale di Azure.

Per impostare la variabile di ambiente per la chiave della risorsa Voce, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.

  • Per impostare la SPEECH_KEY variabile di ambiente, sostituire your-key con una delle chiavi per la risorsa.
  • Per impostare la SPEECH_REGION variabile di ambiente, sostituire l'area con una delle aree per la risorsa.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Nota

Se è sufficiente accedere alle variabili di ambiente nella console corrente, è possibile impostare la variabile di setxambiente con set anziché .

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi che devono leggere la variabile di ambiente, inclusa la finestra della console. Ad esempio, se si usa Visual Studio come editor, riavviare Visual Studio prima di eseguire l'esempio.

Tradurre la voce da un microfono

Seguire questa procedura per creare una nuova applicazione console e installare Speech SDK.

  1. Aprire un prompt dei comandi in cui si vuole il nuovo progetto e creare un'applicazione console con l'interfaccia della riga di comando di .NET. Il Program.cs file deve essere creato nella directory del progetto.

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

    dotnet add package Microsoft.CognitiveServices.Speech
    
  3. Sostituire il contenuto di Program.cs con il codice seguente.

    using System;
    using System.IO;
    using System.Threading.Tasks;
    using Microsoft.CognitiveServices.Speech;
    using Microsoft.CognitiveServices.Speech.Audio;
    using Microsoft.CognitiveServices.Speech.Translation;
    
    class Program 
    {
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        static string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY");
        static string speechRegion = Environment.GetEnvironmentVariable("SPEECH_REGION");
    
        static void OutputSpeechRecognitionResult(TranslationRecognitionResult translationRecognitionResult)
        {
            switch (translationRecognitionResult.Reason)
            {
                case ResultReason.TranslatedSpeech:
                    Console.WriteLine($"RECOGNIZED: Text={translationRecognitionResult.Text}");
                    foreach (var element in translationRecognitionResult.Translations)
                    {
                        Console.WriteLine($"TRANSLATED into '{element.Key}': {element.Value}");
                    }
                    break;
                case ResultReason.NoMatch:
                    Console.WriteLine($"NOMATCH: Speech could not be recognized.");
                    break;
                case ResultReason.Canceled:
                    var cancellation = CancellationDetails.FromResult(translationRecognitionResult);
                    Console.WriteLine($"CANCELED: Reason={cancellation.Reason}");
    
                    if (cancellation.Reason == CancellationReason.Error)
                    {
                        Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}");
                        Console.WriteLine($"CANCELED: ErrorDetails={cancellation.ErrorDetails}");
                        Console.WriteLine($"CANCELED: Did you set the speech resource key and region values?");
                    }
                    break;
            }
        }
    
        async static Task Main(string[] args)
        {
            var speechTranslationConfig = SpeechTranslationConfig.FromSubscription(speechKey, speechRegion);        
            speechTranslationConfig.SpeechRecognitionLanguage = "en-US";
            speechTranslationConfig.AddTargetLanguage("it");
    
            using var audioConfig = AudioConfig.FromDefaultMicrophoneInput();
            using var translationRecognizer = new TranslationRecognizer(speechTranslationConfig, audioConfig);
    
            Console.WriteLine("Speak into your microphone.");
            var translationRecognitionResult = await translationRecognizer.RecognizeOnceAsync();
            OutputSpeechRecognitionResult(translationRecognitionResult);
        }
    }
    
  4. Per modificare la lingua di riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Specificare le impostazioni locali complete con un separatore trattino (-). Ad esempio, es-ES per spagnolo (Spagna). La lingua predefinita è en-US se non si specifica una lingua. Per informazioni dettagliate su come identificare una delle più lingue che potrebbero essere pronunciate, vedere Identificazione della lingua.

  5. Per modificare la lingua di destinazione della traduzione, sostituire it con un'altra lingua supportata. Con poche eccezioni si specifica solo il codice della lingua che precede il separatore del trattino delle impostazioni locali (-). Ad esempio, usare es per spagnolo (Spagna) anziché es-ES. La lingua predefinita è en se non si specifica una lingua.

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

dotnet run

Parla al microfono quando richiesto. Quello che si parla deve essere restituito come testo tradotto nella lingua di destinazione:

Speak into your microphone.
RECOGNIZED: Text=I'm excited to try speech translation.
TRANSLATED into 'it': Sono entusiasta di provare la traduzione vocale.

Osservazioni:

Dopo aver completato la guida introduttiva, ecco alcune considerazioni aggiuntive:

  • In questo esempio viene usata l'operazione RecognizeOnceAsync per trascrivere espressioni fino a 30 secondi o fino a quando non viene rilevato il silenzio. Per informazioni sul riconoscimento continuo per un audio più lungo, incluse le conversazioni multilingue, vedere Come tradurre la voce.
  • Per riconoscere la voce da un file audio, usare FromWavFileInput invece di FromDefaultMicrophoneInput:
    using var audioConfig = AudioConfig.FromWavFileInput("YourAudioFile.wav");
    
  • Per i file audio compressi, ad esempio MP4, installare GStreamer e usare PullAudioInputStream o PushAudioInputStream. Per altre informazioni, vedere Come usare l'audio di input compresso.

Pulire le risorse

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

Pacchetto della documentazione di riferimento | (NuGet) | Esempi aggiuntivi in GitHub

In questa guida introduttiva si esegue un'applicazione per tradurre la voce da una lingua a testo in un'altra lingua.

Prerequisiti

Configurare l'ambiente

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

Impostare le variabili di ambiente

L'applicazione deve essere autenticata per accedere alle risorse dei servizi di intelligenza artificiale di Azure. Per l'ambiente di produzione, usare un modo sicuro per archiviare e accedere alle credenziali. Ad esempio, dopo aver ottenere 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 pubblicarla pubblicamente. Per altre opzioni di autenticazione, ad esempio Azure Key Vault, vedere Sicurezza dei servizi di intelligenza artificiale di Azure.

Per impostare la variabile di ambiente per la chiave della risorsa Voce, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.

  • Per impostare la SPEECH_KEY variabile di ambiente, sostituire your-key con una delle chiavi per la risorsa.
  • Per impostare la SPEECH_REGION variabile di ambiente, sostituire l'area con una delle aree per la risorsa.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Nota

Se è sufficiente accedere alle variabili di ambiente nella console corrente, è possibile impostare la variabile di setxambiente con set anziché .

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi che devono leggere la variabile di ambiente, inclusa la finestra della console. Ad esempio, se si usa Visual Studio come editor, riavviare Visual Studio prima di eseguire l'esempio.

Tradurre la voce da un microfono

Seguire questa procedura per creare una nuova applicazione console e installare Speech SDK.

  1. Creare un nuovo progetto console C++ in Visual Studio Community 2022 denominato SpeechTranslation.

  2. Installare Speech SDK nel nuovo progetto con Gestione pacchetti NuGet.

    Install-Package Microsoft.CognitiveServices.Speech
    
  3. Sostituire il contenuto di SpeechTranslation.cpp con il codice seguente:

    #include <iostream> 
    #include <stdlib.h>
    #include <speechapi_cxx.h>
    
    using namespace Microsoft::CognitiveServices::Speech;
    using namespace Microsoft::CognitiveServices::Speech::Audio;
    using namespace Microsoft::CognitiveServices::Speech::Translation;
    
    std::string GetEnvironmentVariable(const char* name);
    
    int main()
    {
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        auto speechKey = GetEnvironmentVariable("SPEECH_KEY");
        auto speechRegion = GetEnvironmentVariable("SPEECH_REGION");
    
        auto speechTranslationConfig = SpeechTranslationConfig::FromSubscription(speechKey, speechRegion);
        speechTranslationConfig->SetSpeechRecognitionLanguage("en-US");
        speechTranslationConfig->AddTargetLanguage("it");
    
        auto audioConfig = AudioConfig::FromDefaultMicrophoneInput();
        auto translationRecognizer = TranslationRecognizer::FromConfig(speechTranslationConfig, audioConfig);
    
        std::cout << "Speak into your microphone.\n";
        auto result = translationRecognizer->RecognizeOnceAsync().get();
    
        if (result->Reason == ResultReason::TranslatedSpeech)
        {
            std::cout << "RECOGNIZED: Text=" << result->Text << std::endl;
            for (auto pair : result->Translations)
            {
                auto language = pair.first;
                auto translation = pair.second;
                std::cout << "Translated into '" << language << "': " << translation << std::endl;
            }
        }
        else if (result->Reason == ResultReason::NoMatch)
        {
            std::cout << "NOMATCH: Speech could not be recognized." << std::endl;
        }
        else if (result->Reason == ResultReason::Canceled)
        {
            auto cancellation = CancellationDetails::FromResult(result);
            std::cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl;
    
            if (cancellation->Reason == CancellationReason::Error)
            {
                std::cout << "CANCELED: ErrorCode=" << (int)cancellation->ErrorCode << std::endl;
                std::cout << "CANCELED: ErrorDetails=" << cancellation->ErrorDetails << std::endl;
                std::cout << "CANCELED: Did you set the speech resource key and region values?" << std::endl;
            }
        }
    }
    
    std::string GetEnvironmentVariable(const char* name)
    {
    #if defined(_MSC_VER)
        size_t requiredSize = 0;
        (void)getenv_s(&requiredSize, nullptr, 0, name);
        if (requiredSize == 0)
        {
            return "";
        }
        auto buffer = std::make_unique<char[]>(requiredSize);
        (void)getenv_s(&requiredSize, buffer.get(), requiredSize, name);
        return buffer.get();
    #else
        auto value = getenv(name);
        return value ? value : "";
    #endif
    }
    
  4. Per modificare la lingua di riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Specificare le impostazioni locali complete con un separatore trattino (-). Ad esempio, es-ES per spagnolo (Spagna). La lingua predefinita è en-US se non si specifica una lingua. Per informazioni dettagliate su come identificare una delle più lingue che potrebbero essere pronunciate, vedere Identificazione della lingua.

  5. Per modificare la lingua di destinazione della traduzione, sostituire it con un'altra lingua supportata. Con poche eccezioni si specifica solo il codice della lingua che precede il separatore del trattino delle impostazioni locali (-). Ad esempio, usare es per spagnolo (Spagna) anziché es-ES. La lingua predefinita è en se non si specifica una lingua.

Compilare ed eseguire la nuova applicazione console per avviare il riconoscimento vocale da un microfono.

Parla al microfono quando richiesto. Quello che si parla deve essere restituito come testo tradotto nella lingua di destinazione:

Speak into your microphone.
RECOGNIZED: Text=I'm excited to try speech translation.
Translated into 'it': Sono entusiasta di provare la traduzione vocale.

Osservazioni:

Dopo aver completato la guida introduttiva, ecco alcune considerazioni aggiuntive:

  • In questo esempio viene usata l'operazione RecognizeOnceAsync per trascrivere espressioni fino a 30 secondi o fino a quando non viene rilevato il silenzio. Per informazioni sul riconoscimento continuo per un audio più lungo, incluse le conversazioni multilingue, vedere Come tradurre la voce.
  • Per riconoscere la voce da un file audio, usare FromWavFileInput invece di FromDefaultMicrophoneInput:
    auto audioInput = AudioConfig::FromWavFileInput("YourAudioFile.wav");
    
  • Per i file audio compressi, ad esempio MP4, installare GStreamer e usare PullAudioInputStream o PushAudioInputStream. Per altre informazioni, vedere Come usare l'audio di input compresso.

Pulire le risorse

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

Pacchetto della documentazione di riferimento | (Go) | Esempi aggiuntivi in GitHub

Speech SDK per Go non supporta la traduzione vocale. Selezionare un altro linguaggio di programmazione o i riferimenti a Go e gli esempi collegati dall'inizio di questo articolo.

Documentazione di riferimento | Esempi aggiuntivi su GitHub

In questa guida introduttiva si esegue un'applicazione per tradurre la voce da una lingua a testo in un'altra lingua.

Prerequisiti

Configurare l'ambiente

Prima di poter eseguire qualsiasi operazione, è necessario installare Speech SDK. L'esempio in questa guida introduttiva funziona con Java Runtime.

  1. Installare Apache Maven. mvn -v Eseguire quindi per confermare l'installazione corretta.
  2. Creare un nuovo pom.xml file nella radice del progetto e copiarlo nel file seguente:
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.microsoft.cognitiveservices.speech.samples</groupId>
        <artifactId>quickstart-eclipse</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <build>
            <sourceDirectory>src</sourceDirectory>
            <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                <source>1.8</source>
                <target>1.8</target>
                </configuration>
            </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
            <groupId>com.microsoft.cognitiveservices.speech</groupId>
            <artifactId>client-sdk</artifactId>
            <version>1.37.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Installare Speech SDK e le dipendenze.
    mvn clean dependency:copy-dependencies
    

Impostare le variabili di ambiente

L'applicazione deve essere autenticata per accedere alle risorse dei servizi di intelligenza artificiale di Azure. Per l'ambiente di produzione, usare un modo sicuro per archiviare e accedere alle credenziali. Ad esempio, dopo aver ottenere 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 pubblicarla pubblicamente. Per altre opzioni di autenticazione, ad esempio Azure Key Vault, vedere Sicurezza dei servizi di intelligenza artificiale di Azure.

Per impostare la variabile di ambiente per la chiave della risorsa Voce, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.

  • Per impostare la SPEECH_KEY variabile di ambiente, sostituire your-key con una delle chiavi per la risorsa.
  • Per impostare la SPEECH_REGION variabile di ambiente, sostituire l'area con una delle aree per la risorsa.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Nota

Se è sufficiente accedere alle variabili di ambiente nella console corrente, è possibile impostare la variabile di setxambiente con set anziché .

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi che devono leggere la variabile di ambiente, inclusa la finestra della console. Ad esempio, se si usa Visual Studio come editor, riavviare Visual Studio prima di eseguire l'esempio.

Tradurre la voce da un microfono

Seguire questa procedura per creare una nuova applicazione console per il riconoscimento vocale.

  1. Creare un nuovo file denominato SpeechTranslation.java nella stessa directory radice del progetto.

  2. Copiare il codice seguente in SpeechTranslation.java:

    import com.microsoft.cognitiveservices.speech.*;
    import com.microsoft.cognitiveservices.speech.audio.AudioConfig;
    import com.microsoft.cognitiveservices.speech.translation.*;
    
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.Future;
    import java.util.Map;
    
    public class SpeechTranslation {
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        private static String speechKey = System.getenv("SPEECH_KEY");
        private static String speechRegion = System.getenv("SPEECH_REGION");
    
        public static void main(String[] args) throws InterruptedException, ExecutionException {
            SpeechTranslationConfig speechTranslationConfig = SpeechTranslationConfig.fromSubscription(speechKey, speechRegion);
            speechTranslationConfig.setSpeechRecognitionLanguage("en-US");
    
            String[] toLanguages = { "it" };
            for (String language : toLanguages) {
                speechTranslationConfig.addTargetLanguage(language);
            }
    
            recognizeFromMicrophone(speechTranslationConfig);
        }
    
        public static void recognizeFromMicrophone(SpeechTranslationConfig speechTranslationConfig) throws InterruptedException, ExecutionException {
            AudioConfig audioConfig = AudioConfig.fromDefaultMicrophoneInput();
            TranslationRecognizer translationRecognizer = new TranslationRecognizer(speechTranslationConfig, audioConfig);
    
            System.out.println("Speak into your microphone.");
            Future<TranslationRecognitionResult> task = translationRecognizer.recognizeOnceAsync();
            TranslationRecognitionResult translationRecognitionResult = task.get();
    
            if (translationRecognitionResult.getReason() == ResultReason.TranslatedSpeech) {
                System.out.println("RECOGNIZED: Text=" + translationRecognitionResult.getText());
                for (Map.Entry<String, String> pair : translationRecognitionResult.getTranslations().entrySet()) {
                    System.out.printf("Translated into '%s': %s\n", pair.getKey(), pair.getValue());
                }
            }
            else if (translationRecognitionResult.getReason() == ResultReason.NoMatch) {
                System.out.println("NOMATCH: Speech could not be recognized.");
            }
            else if (translationRecognitionResult.getReason() == ResultReason.Canceled) {
                CancellationDetails cancellation = CancellationDetails.fromResult(translationRecognitionResult);
                System.out.println("CANCELED: Reason=" + cancellation.getReason());
    
                if (cancellation.getReason() == CancellationReason.Error) {
                    System.out.println("CANCELED: ErrorCode=" + cancellation.getErrorCode());
                    System.out.println("CANCELED: ErrorDetails=" + cancellation.getErrorDetails());
                    System.out.println("CANCELED: Did you set the speech resource key and region values?");
                }
            }
    
            System.exit(0);
        }
    }
    
  3. Per modificare la lingua di riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Specificare le impostazioni locali complete con un separatore trattino (-). Ad esempio, es-ES per spagnolo (Spagna). La lingua predefinita è en-US se non si specifica una lingua. Per informazioni dettagliate su come identificare una delle più lingue che potrebbero essere pronunciate, vedere Identificazione della lingua.

  4. Per modificare la lingua di destinazione della traduzione, sostituire it con un'altra lingua supportata. Con poche eccezioni si specifica solo il codice della lingua che precede il separatore del trattino delle impostazioni locali (-). Ad esempio, usare es per spagnolo (Spagna) anziché es-ES. La lingua predefinita è en se non si specifica una lingua.

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

javac SpeechTranslation.java -cp ".;target\dependency\*"
java -cp ".;target\dependency\*" SpeechTranslation

Parla al microfono quando richiesto. Quello che si parla deve essere restituito come testo tradotto nella lingua di destinazione:

Speak into your microphone.
RECOGNIZED: Text=I'm excited to try speech translation.
Translated into 'it': Sono entusiasta di provare la traduzione vocale.

Osservazioni:

Dopo aver completato la guida introduttiva, ecco alcune considerazioni aggiuntive:

  • In questo esempio viene usata l'operazione RecognizeOnceAsync per trascrivere espressioni fino a 30 secondi o fino a quando non viene rilevato il silenzio. Per informazioni sul riconoscimento continuo per un audio più lungo, incluse le conversazioni multilingue, vedere Come tradurre la voce.
  • Per riconoscere la voce da un file audio, usare fromWavFileInput invece di fromDefaultMicrophoneInput:
    AudioConfig audioConfig = AudioConfig.fromWavFileInput("YourAudioFile.wav");
    
  • Per i file audio compressi, ad esempio MP4, installare GStreamer e usare PullAudioInputStream o PushAudioInputStream. Per altre informazioni, vedere Come usare l'audio di input compresso.

Pulire le risorse

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

Pacchetto della documentazione di riferimento | (npm) | Esempi aggiuntivi nel codice sorgente della libreria GitHub |

In questa guida introduttiva si esegue un'applicazione per tradurre la voce da una lingua a testo in un'altra lingua.

Prerequisiti

Configurare l'ambiente

Prima di poter eseguire qualsiasi operazione, è necessario installare Speech SDK per JavaScript. Se si vuole solo installare il nome del pacchetto, eseguire npm install microsoft-cognitiveservices-speech-sdk. Per istruzioni sull'installazione guidata, vedere la guida all'installazione dell'SDK.

Impostare le variabili di ambiente

L'applicazione deve essere autenticata per accedere alle risorse dei servizi di intelligenza artificiale di Azure. Per l'ambiente di produzione, usare un modo sicuro per archiviare e accedere alle credenziali. Ad esempio, dopo aver ottenere 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 pubblicarla pubblicamente. Per altre opzioni di autenticazione, ad esempio Azure Key Vault, vedere Sicurezza dei servizi di intelligenza artificiale di Azure.

Per impostare la variabile di ambiente per la chiave della risorsa Voce, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.

  • Per impostare la SPEECH_KEY variabile di ambiente, sostituire your-key con una delle chiavi per la risorsa.
  • Per impostare la SPEECH_REGION variabile di ambiente, sostituire l'area con una delle aree per la risorsa.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Nota

Se è sufficiente accedere alle variabili di ambiente nella console corrente, è possibile impostare la variabile di setxambiente con set anziché .

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi che devono leggere la variabile di ambiente, inclusa la finestra della console. Ad esempio, se si usa Visual Studio come editor, riavviare Visual Studio prima di eseguire l'esempio.

Tradurre la voce da un file

Seguire questa procedura per creare un'applicazione console Node.js per il riconoscimento vocale.

  1. Aprire un prompt dei comandi in cui si vuole il nuovo progetto e creare un nuovo file denominato SpeechTranslation.js.

  2. Installare Speech SDK per JavaScript:

    npm install microsoft-cognitiveservices-speech-sdk
    
  3. Copiare il codice seguente in SpeechTranslation.js:

    const fs = require("fs");
    const sdk = require("microsoft-cognitiveservices-speech-sdk");
    
    // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
    const speechTranslationConfig = sdk.SpeechTranslationConfig.fromSubscription(process.env.SPEECH_KEY, process.env.SPEECH_REGION);
    speechTranslationConfig.speechRecognitionLanguage = "en-US";
    
    var language = "it";
    speechTranslationConfig.addTargetLanguage(language);
    
    function fromFile() {
        let audioConfig = sdk.AudioConfig.fromWavFileInput(fs.readFileSync("YourAudioFile.wav"));
        let translationRecognizer = new sdk.TranslationRecognizer(speechTranslationConfig, audioConfig);
    
        translationRecognizer.recognizeOnceAsync(result => {
            switch (result.reason) {
                case sdk.ResultReason.TranslatedSpeech:
                    console.log(`RECOGNIZED: Text=${result.text}`);
                    console.log("Translated into [" + language + "]: " + result.translations.get(language));
    
                    break;
                case sdk.ResultReason.NoMatch:
                    console.log("NOMATCH: Speech could not be recognized.");
                    break;
                case sdk.ResultReason.Canceled:
                    const cancellation = sdk.CancellationDetails.fromResult(result);
                    console.log(`CANCELED: Reason=${cancellation.reason}`);
    
                    if (cancellation.reason == sdk.CancellationReason.Error) {
                        console.log(`CANCELED: ErrorCode=${cancellation.ErrorCode}`);
                        console.log(`CANCELED: ErrorDetails=${cancellation.errorDetails}`);
                        console.log("CANCELED: Did you set the speech resource key and region values?");
                    }
                    break;
            }
            translationRecognizer.close();
        });
    }
    fromFile();
    
  4. In SpeechTranslation.jssostituire YourAudioFile.wav con il proprio file WAV. Questo esempio riconosce solo il riconoscimento vocale da un file WAV. Per informazioni su altri formati audio, vedere Come usare l'audio di input compresso. Questo esempio supporta fino a 30 secondi di audio.

  5. Per modificare la lingua di riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Specificare le impostazioni locali complete con un separatore trattino (-). Ad esempio, es-ES per spagnolo (Spagna). La lingua predefinita è en-US se non si specifica una lingua. Per informazioni dettagliate su come identificare una delle più lingue che potrebbero essere pronunciate, vedere Identificazione della lingua.

  6. Per modificare la lingua di destinazione della traduzione, sostituire it con un'altra lingua supportata. Con poche eccezioni si specifica solo il codice della lingua che precede il separatore del trattino delle impostazioni locali (-). Ad esempio, usare es per spagnolo (Spagna) anziché es-ES. La lingua predefinita è en se non si specifica una lingua.

Eseguire la nuova applicazione console per avviare il riconoscimento vocale da un file:

node.exe SpeechTranslation.js

Il riconoscimento vocale del file audio deve essere restituito come testo tradotto nella lingua di destinazione:

RECOGNIZED: Text=I'm excited to try speech translation.
Translated into [it]: Sono entusiasta di provare la traduzione vocale.

Osservazioni:

Dopo aver completato la guida introduttiva, ecco alcune considerazioni aggiuntive:

In questo esempio viene usata l'operazione recognizeOnceAsync per trascrivere espressioni fino a 30 secondi o fino a quando non viene rilevato il silenzio. Per informazioni sul riconoscimento continuo per un audio più lungo, incluse le conversazioni multilingue, vedere Come tradurre la voce.

Nota

Il riconoscimento vocale da un microfono non è supportato in Node.js. È supportato solo in un ambiente JavaScript basato su browser.

Pulire le risorse

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

Pacchetto della documentazione di riferimento | (download) | Esempi aggiuntivi in GitHub

Speech SDK per Objective-C supporta la traduzione vocale, ma non è ancora stata inclusa una guida qui. Selezionare un altro linguaggio di programmazione per iniziare e apprendere i concetti oppure vedere le informazioni di riferimento e gli esempi di Objective-C collegati dall'inizio di questo articolo.

Pacchetto della documentazione di riferimento | (download) | Esempi aggiuntivi in GitHub

Speech SDK per Swift supporta la traduzione vocale, ma non è ancora stata inclusa una guida qui. Selezionare un altro linguaggio di programmazione per iniziare e ottenere informazioni sui concetti oppure vedere i riferimenti e gli esempi swift collegati dall'inizio di questo articolo.

Pacchetto della documentazione di riferimento | (PyPi) | Esempi aggiuntivi in GitHub

In questa guida introduttiva si esegue un'applicazione per tradurre la voce da una lingua a testo in un'altra lingua.

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 versione 3.7 o successiva. Controllare prima di tutto la guida all'installazione dell'SDK per altri requisiti

Impostare le variabili di ambiente

L'applicazione deve essere autenticata per accedere alle risorse dei servizi di intelligenza artificiale di Azure. Per l'ambiente di produzione, usare un modo sicuro per archiviare e accedere alle credenziali. Ad esempio, dopo aver ottenere 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 pubblicarla pubblicamente. Per altre opzioni di autenticazione, ad esempio Azure Key Vault, vedere Sicurezza dei servizi di intelligenza artificiale di Azure.

Per impostare la variabile di ambiente per la chiave della risorsa Voce, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.

  • Per impostare la SPEECH_KEY variabile di ambiente, sostituire your-key con una delle chiavi per la risorsa.
  • Per impostare la SPEECH_REGION variabile di ambiente, sostituire l'area con una delle aree per la risorsa.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Nota

Se è sufficiente accedere alle variabili di ambiente nella console corrente, è possibile impostare la variabile di setxambiente con set anziché .

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi che devono leggere la variabile di ambiente, inclusa la finestra della console. Ad esempio, se si usa Visual Studio come editor, riavviare Visual Studio prima di eseguire l'esempio.

Tradurre la voce da un microfono

Seguire questa procedura per creare una nuova applicazione console.

  1. Aprire un prompt dei comandi in cui si vuole il nuovo progetto e creare un nuovo file denominato speech_translation.py.

  2. Eseguire questo comando per installare Speech SDK:

    pip install azure-cognitiveservices-speech
    
  3. Copiare il codice seguente in speech_translation.py:

    import os
    import azure.cognitiveservices.speech as speechsdk
    
    def recognize_from_microphone():
        # This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        speech_translation_config = speechsdk.translation.SpeechTranslationConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION'))
        speech_translation_config.speech_recognition_language="en-US"
    
        target_language="it"
        speech_translation_config.add_target_language(target_language)
    
        audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True)
        translation_recognizer = speechsdk.translation.TranslationRecognizer(translation_config=speech_translation_config, audio_config=audio_config)
    
        print("Speak into your microphone.")
        translation_recognition_result = translation_recognizer.recognize_once_async().get()
    
        if translation_recognition_result.reason == speechsdk.ResultReason.TranslatedSpeech:
            print("Recognized: {}".format(translation_recognition_result.text))
            print("""Translated into '{}': {}""".format(
                target_language, 
                translation_recognition_result.translations[target_language]))
        elif translation_recognition_result.reason == speechsdk.ResultReason.NoMatch:
            print("No speech could be recognized: {}".format(translation_recognition_result.no_match_details))
        elif translation_recognition_result.reason == speechsdk.ResultReason.Canceled:
            cancellation_details = translation_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))
                print("Did you set the speech resource key and region values?")
    
    recognize_from_microphone()
    
  4. Per modificare la lingua di riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Specificare le impostazioni locali complete con un separatore trattino (-). Ad esempio, es-ES per spagnolo (Spagna). La lingua predefinita è en-US se non si specifica una lingua. Per informazioni dettagliate su come identificare una delle più lingue che potrebbero essere pronunciate, vedere Identificazione della lingua.

  5. Per modificare la lingua di destinazione della traduzione, sostituire it con un'altra lingua supportata. Con poche eccezioni si specifica solo il codice della lingua che precede il separatore del trattino delle impostazioni locali (-). Ad esempio, usare es per spagnolo (Spagna) anziché es-ES. La lingua predefinita è en se non si specifica una lingua.

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

python speech_translation.py

Parla al microfono quando richiesto. Quello che si parla deve essere restituito come testo tradotto nella lingua di destinazione:

Speak into your microphone.
Recognized: I'm excited to try speech translation.
Translated into 'it': Sono entusiasta di provare la traduzione vocale.

Osservazioni:

Dopo aver completato la guida introduttiva, ecco alcune considerazioni aggiuntive:

  • In questo esempio viene usata l'operazione recognize_once_async per trascrivere espressioni fino a 30 secondi o fino a quando non viene rilevato il silenzio. Per informazioni sul riconoscimento continuo per un audio più lungo, incluse le conversazioni multilingue, vedere Come tradurre la voce.
  • Per riconoscere la voce da un file audio, usare filename invece di use_default_microphone:
    audio_config = speechsdk.audio.AudioConfig(filename="YourAudioFile.wav")
    
  • Per i file audio compressi, ad esempio MP4, installare GStreamer e usare PullAudioInputStream o PushAudioInputStream. Per altre informazioni, vedere Come usare l'audio di input compresso.

Pulire le risorse

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

Informazioni di riferimento | sull'API REST Riconoscimento vocale in testo per brevi riferimenti | audio Esempi aggiuntivi in GitHub

L'API REST non supporta la traduzione vocale. Selezionare un altro linguaggio o strumento di programmazione nella parte superiore di questa pagina.

In questa guida introduttiva si esegue un'applicazione per tradurre la voce da una lingua a testo in un'altra lingua.

Prerequisiti

Configurare l'ambiente

Seguire questa procedura e vedere la guida introduttiva all'interfaccia della riga di comando di Voce per altri requisiti per la piattaforma.

  1. Eseguire il comando seguente dell'interfaccia della riga di comando di .NET per installare l'interfaccia della riga di comando di Voce:

    dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI
    
  2. Eseguire i comandi seguenti per configurare la chiave e l'area della risorsa Voce. Sostituire SUBSCRIPTION-KEY con la chiave della risorsa Voce e sostituire REGION con l'area della risorsa Voce.

    spx config @key --set SUBSCRIPTION-KEY
    spx config @region --set REGION
    

Tradurre la voce da un microfono

Eseguire il comando seguente per tradurre il parlato dal microfono dall'inglese all'italiano:

spx translate --source en-US --target it --microphone

Parla al microfono e vedi la trascrizione del tuo parlato tradotto in tempo reale. L'interfaccia della riga di comando di Voce si arresta dopo un periodo di silenzio, 30 secondi o quando si preme CTRL+C.

Connection CONNECTED...
TRANSLATING into 'it': Sono (from 'I'm')
TRANSLATING into 'it': Sono entusiasta (from 'I'm excited to')
TRANSLATING into 'it': Sono entusiasta di provare la parola (from 'I'm excited to try speech')
TRANSLATED into 'it': Sono entusiasta di provare la traduzione vocale. (from 'I'm excited to try speech translation.')

Osservazioni:

Dopo aver completato la guida introduttiva, ecco alcune considerazioni aggiuntive:

  • Per ottenere la voce da un file audio, usare --file invece di --microphone. Per i file audio compressi, ad esempio MP4, installare GStreamer e usare --format. Per altre informazioni, vedere Come usare l'audio di input compresso.
    spx translate --source en-US --target it --file YourAudioFile.wav
    spx translate --source en-US --target it --file YourAudioFile.mp4 --format any
    
  • Per migliorare l'accuratezza del riconoscimento di parole o espressioni specifiche, usare un elenco di frasi. È possibile includere un elenco di frasi in linea o con un file di testo:
    spx translate --source en-US --target it --microphone --phrases "Contoso;Jessie;Rehaan;"
    spx translate --source en-US --target it --microphone --phrases @phrases.txt
    
  • Per modificare la lingua di riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Specificare le impostazioni locali complete con un separatore trattino (-). Ad esempio, es-ES per spagnolo (Spagna). La lingua predefinita è en-US se non si specifica una lingua.
    spx translate --microphone --source es-ES
    
  • Per modificare la lingua di destinazione della traduzione, sostituire it con un'altra lingua supportata. Con poche eccezioni si specifica solo il codice della lingua che precede il separatore del trattino delle impostazioni locali (-). Ad esempio, usare es per spagnolo (Spagna) anziché es-ES. La lingua predefinita è en se non si specifica una lingua.
    spx translate --microphone --target es
    
  • Per il riconoscimento continuo dell'audio di più di 30 secondi, aggiungere --continuous:
    spx translate --source en-US --target it --microphone --continuous
    

Eseguire questo comando per informazioni sulle opzioni di traduzione vocale aggiuntive, ad esempio l'input e l'output dei file:

spx help translate

Pulire le risorse

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

Passaggi successivi