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.
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
Installare Speech SDK nel nuovo progetto con l'interfaccia della riga di comando di .NET.
dotnet add package Microsoft.CognitiveServices.Speech
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); } }
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.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, usarees
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
oPushAudioInputStream
. 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.
Creare un nuovo progetto console C++ in Visual Studio Community 2022 con il nome
SpeechTranslation
.Installare Speech SDK nel nuovo progetto con gestione pacchetti NuGet.
Install-Package Microsoft.CognitiveServices.Speech
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 }
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.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, usarees
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
oPushAudioInputStream
. 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.
- Installare Apache Maven. Quindi eseguire
mvn -v
per confermare l'installazione corretta. - 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>
- 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.
Creare un nuovo file denominato
SpeechTranslation.java
nella stessa directory radice del progetto.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); } }
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.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, usarees
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
oPushAudioInputStream
. 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.
Aprire un prompt dei comandi dove si vuole creare il nuovo progetto e creare un nuovo file denominato
SpeechTranslation.js
.Installare Speech SDK per JavaScript:
npm install microsoft-cognitiveservices-speech-sdk
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();
In
SpeechTranslation.js
, sostituireYourAudioFile.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.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.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, usarees
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.
- È necessario installare Microsoft Visual C++ Redistributable per Visual Studio 2015, 2017, 2019 e 2022 per la piattaforma. La prima installazione di questo pacchetto potrebbe richiedere un riavvio.
- In Linux è necessario usare l'architettura di destinazione x64.
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.
Aprire un prompt dei comandi dove si vuole creare il nuovo progetto e creare un nuovo file denominato
speech_translation.py
.Eseguire questo comando per installare Speech SDK:
pip install azure-cognitiveservices-speech
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()
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.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, usarees
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
oPushAudioInputStream
. 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.
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
Eseguire i comandi seguenti per configurare la chiave e l'area della risorsa Voce. Sostituire
SUBSCRIPTION-KEY
con la chiave della risorsa Voce eREGION
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, usarees
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.