Condividi tramite


Avvio rapido: Riconoscimento e traduzione vocale in testo

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

Questo avvio rapido spiega come eseguire un'applicazione per la traduzione vocale di una lingua nel testo di un'altra.

Suggerimento

Provare Azure AI Speech Toolkit per compilare ed eseguire facilmente esempi in Visual Studio Code.

Prerequisiti

  • Una sottoscrizione di Azure. È possibile crearne uno gratuitamente.
  • Creare una risorsa Voce nel portale di Azure.
  • Ottenere la chiave e l'area della risorsa Voce. Dopo aver distribuito la risorsa Voce, selezionare Vai alla risorsa per visualizzare e gestire le chiavi.

Configurare l'ambiente

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

Impostare le variabili di ambiente

È necessario autenticare l'applicazione per accedere ai Servizi di Azure AI. Questo articolo illustra come usare le variabili di ambiente per archiviare le credenziali. È quindi possibile accedere alle variabili di ambiente dal codice per autenticare l'applicazione. Per l'ambiente di produzione, usare un modo più sicuro per archiviare e accedere alle credenziali.

Importante

Si consiglia l'autenticazione di Microsoft Entra ID insieme alle identità gestite per le risorse di Azure al fine di evitare di archiviare le credenziali con le applicazioni eseguite nel cloud.

Se si usa una chiave API, archiviarla in modo sicuro in un'altra posizione, ad esempio in Azure Key Vault. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente.

Per altre informazioni sulla sicurezza dei servizi di intelligenza artificiale, vedere Autenticare le richieste a Servizi di Azure AI.

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

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

Nota

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

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

Traduzione vocale da microfono

Seguire questi passaggi per creare una nuova applicazione console e installare Speech SDK.

  1. Aprire un prompt dei comandi dove si vuole creare il nuovo progetto e creare un'applicazione console con l'interfaccia della riga di comando di .NET. Il file Program.cs 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 del riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Specificare le impostazioni locali complete con un trattino separatore (-). 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 tante lingue da poter usare, vedere Identificazione della lingua.

  5. Per modificare la lingua di destinazione della traduzione, sostituire it con un'altra lingua supportata. Fatta eccezione per rari casi, è necessario specificare solo il codice della lingua che precede il trattino separatore delle impostazioni locali (-). Ad esempio, usare es per spagnolo (Spagna), anziché es-ES. Se non si specifica una lingua, la lingua predefinita è en.

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

dotnet run

Parlare al microfono quando richiesto. Il parlato 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:

A completamento di questo avvio rapido, ecco alcune considerazioni:

  • In questo esempio viene usata l'operazione RecognizeOnceAsync per trascrivere espressioni fino a 30 secondi o fino a quando non si arresta dopo un periodo di silenzio. Per informazioni sul riconoscimento continuo di un audio più lungo, incluse le conversazioni multilingue, vedere Come tradurre il parlato.
  • Per riconoscere il parlato da un file audio usare FromWavFileInput, anziché 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 audio di input compresso.

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 (NuGet) | Ulteriori esempi in GitHub

Questo avvio rapido spiega come eseguire un'applicazione per la traduzione vocale di una lingua nel testo di un'altra.

Suggerimento

Provare Azure AI Speech Toolkit per compilare ed eseguire facilmente esempi in Visual Studio Code.

Prerequisiti

  • Una sottoscrizione di Azure. È possibile crearne uno gratuitamente.
  • Creare una risorsa Voce nel portale di Azure.
  • Ottenere la chiave e l'area della risorsa Voce. Dopo aver distribuito la risorsa Voce, selezionare Vai alla risorsa per visualizzare e gestire le chiavi.

Configurare l'ambiente

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

Impostare le variabili di ambiente

È necessario autenticare l'applicazione per accedere ai Servizi di Azure AI. Questo articolo illustra come usare le variabili di ambiente per archiviare le credenziali. È quindi possibile accedere alle variabili di ambiente dal codice per autenticare l'applicazione. Per l'ambiente di produzione, usare un modo più sicuro per archiviare e accedere alle credenziali.

Importante

Si consiglia l'autenticazione di Microsoft Entra ID insieme alle identità gestite per le risorse di Azure al fine di evitare di archiviare le credenziali con le applicazioni eseguite nel cloud.

Se si usa una chiave API, archiviarla in modo sicuro in un'altra posizione, ad esempio in Azure Key Vault. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente.

Per altre informazioni sulla sicurezza dei servizi di intelligenza artificiale, vedere Autenticare le richieste a Servizi di Azure AI.

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

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

Nota

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

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

Traduzione vocale da microfono

Seguire questi passaggi per creare una nuova applicazione console e installare Speech SDK.

  1. Creare un nuovo progetto console C++ in Visual Studio Community 2022 con il nome 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 del riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Specificare le impostazioni locali complete con un trattino separatore (-). 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 tante lingue da poter usare, vedere Identificazione della lingua.

  5. Per modificare la lingua di destinazione della traduzione, sostituire it con un'altra lingua supportata. Fatta eccezione per rari casi, è necessario specificare solo il codice della lingua che precede il trattino separatore delle impostazioni locali (-). Ad esempio, usare es per spagnolo (Spagna), anziché es-ES. Se non si specifica una lingua, la lingua predefinita è en.

Compila ed esegui la nuova applicazione console per avviare il riconoscimento vocale da microfono.

Parlare al microfono quando richiesto. Il parlato 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:

A completamento di questo avvio rapido, ecco alcune considerazioni:

  • In questo esempio viene usata l'operazione RecognizeOnceAsync per trascrivere espressioni fino a 30 secondi o fino a quando non si arresta dopo un periodo di silenzio. Per informazioni sul riconoscimento continuo di un audio più lungo, incluse le conversazioni multilingue, vedere Come tradurre il parlato.
  • Per riconoscere il parlato da un file audio usare FromWavFileInput, anziché 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 audio di input compresso.

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 (Go) | Ulteriori esempi in GitHub

Il SDK del Servizio cognitivo di Azure per la voce per Go non supporta la traduzione vocale. Selezionare un altro linguaggio di programmazione oppure vedere le informazioni di riferimento e gli esempi collegati all'inizio dell'articolo.

Documentazione di riferimento | Ulteriori esempi in GitHub

Questo avvio rapido spiega come eseguire un'applicazione per la traduzione vocale di una lingua nel testo di un'altra.

Suggerimento

Provare Azure AI Speech Toolkit per compilare ed eseguire facilmente esempi in Visual Studio Code.

Prerequisiti

  • Una sottoscrizione di Azure. È possibile crearne uno gratuitamente.
  • Creare una risorsa Voce nel portale di Azure.
  • Ottenere la chiave e l'area della risorsa Voce. Dopo aver distribuito la risorsa Voce, selezionare Vai alla risorsa per visualizzare e gestire le chiavi.

Configurare l'ambiente

Prima di poter eseguire qualsiasi operazione, è necessario installare Speech SDK. L'esempio in questo avvio rapido funziona con Runtime Java.

  1. Installare Apache Maven. Quindi eseguire mvn -v per confermare l'installazione corretta.
  2. Creare un nuovo file pom.xml nella radice del progetto copiando quanto segue:
    <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.40.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Installare Speech SDK e le dipendenze.
    mvn clean dependency:copy-dependencies
    

Impostare le variabili di ambiente

È necessario autenticare l'applicazione per accedere ai Servizi di Azure AI. Questo articolo illustra come usare le variabili di ambiente per archiviare le credenziali. È quindi possibile accedere alle variabili di ambiente dal codice per autenticare l'applicazione. Per l'ambiente di produzione, usare un modo più sicuro per archiviare e accedere alle credenziali.

Importante

Si consiglia l'autenticazione di Microsoft Entra ID insieme alle identità gestite per le risorse di Azure al fine di evitare di archiviare le credenziali con le applicazioni eseguite nel cloud.

Se si usa una chiave API, archiviarla in modo sicuro in un'altra posizione, ad esempio in Azure Key Vault. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente.

Per altre informazioni sulla sicurezza dei servizi di intelligenza artificiale, vedere Autenticare le richieste a Servizi di Azure AI.

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

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

Nota

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

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

Traduzione vocale da microfono

Seguire questi passaggi 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 del riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Specificare le impostazioni locali complete con un trattino separatore (-). 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 tante lingue da poter usare, vedere Identificazione della lingua.

  4. Per modificare la lingua di destinazione della traduzione, sostituire it con un'altra lingua supportata. Fatta eccezione per rari casi, è necessario specificare solo il codice della lingua che precede il trattino separatore delle impostazioni locali (-). Ad esempio, usare es per spagnolo (Spagna), anziché es-ES. Se non si specifica una lingua, la lingua predefinita è en.

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

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

Parlare al microfono quando richiesto. Il parlato 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:

A completamento di questo avvio rapido, ecco alcune considerazioni:

  • In questo esempio viene usata l'operazione RecognizeOnceAsync per trascrivere espressioni fino a 30 secondi o fino a quando non si arresta dopo un periodo di silenzio. Per informazioni sul riconoscimento continuo di un audio più lungo, incluse le conversazioni multilingue, vedere Come tradurre il parlato.
  • Per riconoscere il parlato da un file audio usare fromWavFileInput, anziché 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 audio di input compresso.

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 (npm) | Ulteriori esempi in GitHub | Codice sorgente della libreria

Questo avvio rapido spiega come eseguire un'applicazione per la traduzione vocale di una lingua nel testo di un'altra.

Suggerimento

Provare Azure AI Speech Toolkit per compilare ed eseguire facilmente esempi in Visual Studio Code.

Prerequisiti

  • Una sottoscrizione di Azure. È possibile crearne uno gratuitamente.
  • Creare una risorsa Voce nel portale di Azure.
  • Ottenere la chiave e l'area della risorsa Voce. Dopo aver distribuito la risorsa Voce, selezionare Vai alla risorsa per visualizzare e gestire le chiavi.

Configurare l'ambiente

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

Impostare le variabili di ambiente

È necessario autenticare l'applicazione per accedere ai Servizi di Azure AI. Questo articolo illustra come usare le variabili di ambiente per archiviare le credenziali. È quindi possibile accedere alle variabili di ambiente dal codice per autenticare l'applicazione. Per l'ambiente di produzione, usare un modo più sicuro per archiviare e accedere alle credenziali.

Importante

Si consiglia l'autenticazione di Microsoft Entra ID insieme alle identità gestite per le risorse di Azure al fine di evitare di archiviare le credenziali con le applicazioni eseguite nel cloud.

Se si usa una chiave API, archiviarla in modo sicuro in un'altra posizione, ad esempio in Azure Key Vault. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente.

Per altre informazioni sulla sicurezza dei servizi di intelligenza artificiale, vedere Autenticare le richieste a Servizi di Azure AI.

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

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

Nota

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

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

Traduzione vocale da microfono

Seguire questi passaggi per creare un'applicazione console Node.js per il riconoscimento vocale.

  1. Aprire un prompt dei comandi dove si vuole creare 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.js, sostituire YourAudioFile.wav con il file WAV desiderato. Questo esempio supporta solo il riconoscimento vocale da file WAV. Per informazioni su altri formati audio vedere Come usare audio di input compresso. Questo esempio supporta fino a 30 secondi di audio.

  5. Per modificare la lingua del riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Specificare le impostazioni locali complete con un trattino separatore (-). 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 tante lingue da poter usare, vedere Identificazione della lingua.

  6. Per modificare la lingua di destinazione della traduzione, sostituire it con un'altra lingua supportata. Fatta eccezione per rari casi, è necessario specificare solo il codice della lingua che precede il trattino separatore delle impostazioni locali (-). Ad esempio, usare es per spagnolo (Spagna), anziché es-ES. Se non si specifica una lingua, la lingua predefinita è en.

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

node.exe SpeechTranslation.js

Il parlato 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:

A completamento di questo avvio rapido, ecco alcune considerazioni:

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

Nota

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

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 (download) | Ulteriori esempi in GitHub

Speech SDK per Objective-C supporta la traduzione vocale, ma in questa documentazione non è stata ancora inclusa la relativa guida. Selezionare un altro linguaggio di programmazione per iniziare ad apprendere i relativi concetti oppure vedere le informazioni di riferimento e gli esempi di Objective-C collegati all'inizio dell'articolo.

Documentazione di riferimento | Pacchetto (download) | Ulteriori esempi in GitHub

Speech SDK per Swift supporta la traduzione vocale, ma in questa documentazione non è stata ancora inclusa la relativa guida. Seleziona un altro linguaggio di programmazione per iniziare ad apprendere i relativi sui concetti oppure vedere le informazioni di riferimento e gli esempi di Swift collegati all'inizio dell'articolo.

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

Questo avvio rapido spiega come eseguire un'applicazione per la traduzione vocale di una lingua nel testo di un'altra.

Suggerimento

Provare Azure AI Speech Toolkit per compilare ed eseguire facilmente esempi in Visual Studio Code.

Prerequisiti

  • Una sottoscrizione di Azure. È possibile crearne uno gratuitamente.
  • Creare una risorsa Voce nel portale di Azure.
  • Ottenere la chiave e l'area della risorsa Voce. Dopo aver distribuito la risorsa Voce, selezionare Vai alla risorsa per visualizzare e gestire le chiavi.

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 Python 3.7 o una versione successiva. Innanzitutto controllare la guida all'installazione dell'SDK per eventuali altri requisiti

Impostare le variabili di ambiente

È necessario autenticare l'applicazione per accedere ai Servizi di Azure AI. Questo articolo illustra come usare le variabili di ambiente per archiviare le credenziali. È quindi possibile accedere alle variabili di ambiente dal codice per autenticare l'applicazione. Per l'ambiente di produzione, usare un modo più sicuro per archiviare e accedere alle credenziali.

Importante

Si consiglia l'autenticazione di Microsoft Entra ID insieme alle identità gestite per le risorse di Azure al fine di evitare di archiviare le credenziali con le applicazioni eseguite nel cloud.

Se si usa una chiave API, archiviarla in modo sicuro in un'altra posizione, ad esempio in Azure Key Vault. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente.

Per altre informazioni sulla sicurezza dei servizi di intelligenza artificiale, vedere Autenticare le richieste a Servizi di Azure AI.

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

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

Nota

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

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

Traduzione vocale da microfono

Seguire questi passaggi per creare una nuova applicazione console.

  1. Aprire un prompt dei comandi dove si vuole creare 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"
    
        to_language ="it"
        speech_translation_config.add_target_language(to_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(
                to_language, 
                translation_recognition_result.translations[to_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 del riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Specificare le impostazioni locali complete con un trattino separatore (-). 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 tante lingue da poter usare, vedere Identificazione della lingua.

  5. Per modificare la lingua di destinazione della traduzione, sostituire it con un'altra lingua supportata. Fatta eccezione per rari casi, è necessario specificare solo il codice della lingua che precede il trattino separatore delle impostazioni locali (-). Ad esempio, usare es per spagnolo (Spagna), anziché es-ES. Se non si specifica una lingua, la lingua predefinita è en.

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

python speech_translation.py

Parlare al microfono quando richiesto. Il parlato 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:

A completamento di questo avvio rapido, ecco alcune considerazioni:

  • In questo esempio viene usata l'operazione recognize_once_async per trascrivere espressioni fino a 30 secondi o fino a quando non si arresta dopo un periodo di silenzio. Per informazioni sul riconoscimento continuo di un audio più lungo, incluse le conversazioni multilingue, vedere Come tradurre il parlato.
  • Per riconoscere il parlato da un file audio usare filename, anziché 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 audio di input compresso.

Pulire le risorse

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

Informazioni di riferimento sull'API REST di riconoscimento vocale | Informazioni di riferimento sull'API REST di riconoscimento vocale per audio brevi | Ulteriori esempi in GitHub

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

Questo avvio rapido spiega come eseguire un'applicazione per la traduzione vocale di una lingua nel testo di un'altra.

Suggerimento

Provare Azure AI Speech Toolkit per compilare ed eseguire facilmente esempi in Visual Studio Code.

Prerequisiti

  • Una sottoscrizione di Azure. È possibile crearne uno gratuitamente.
  • Creare una risorsa Voce nel portale di Azure.
  • Ottenere la chiave e l'area della risorsa Voce. Dopo aver distribuito la risorsa Voce, selezionare Vai alla risorsa per visualizzare e gestire le chiavi.

Configurare l'ambiente

Seguire questi passaggi e vedere la guida di Avvio rapido sull'interfaccia della riga di comando di Voce per altri requisiti della 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 REGION con l'area della risorsa Voce.

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

Traduzione vocale da microfono

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

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

Parlare al microfono e vedere la trascrizione del parlato tradotto in tempo reale. L'interfaccia della riga di comando di Voce si arresta dopo un periodo di silenzio di 30 secondi o premendo 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:

A completamento di questo avvio rapido, ecco alcune considerazioni:

  • Per riconoscere il parlato da un file audio usare --file , anziché --microphone. Per i file audio compressi, ad esempio MP4, installare GStreamer e usare --format. Per altre informazioni vedere Come usare 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 inline 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 del riconoscimento vocale, sostituire en-US con un'altra lingua supportata. Specificare le impostazioni locali complete con un trattino separatore (-). 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. Fatta eccezione per rari casi, è necessario specificare solo il codice della lingua che precede il trattino separatore delle impostazioni locali (-). Ad esempio, usare es per spagnolo (Spagna), anziché es-ES. Se non si specifica una lingua, la lingua predefinita è en.
    spx translate --microphone --target es
    
  • Per il riconoscimento continuo di un audio più lungo 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 del file:

spx help translate

Pulire le risorse

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

Passaggi successivi