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
- Sottoscrizione di Azure: creare un account gratuito.
- Creare una risorsa Voce nel portale di Azure.
- Chiave e area della risorsa Voce. Dopo aver distribuito la risorsa Voce, selezionare Vai alla risorsa per visualizzare e gestire le chiavi. Per altre informazioni sulle risorse dei servizi di intelligenza artificiale di Azure, vedere Ottenere le chiavi per la risorsa.
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 setx
ambiente 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.
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
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 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.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, usarees
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 diFromDefaultMicrophoneInput
: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 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
- Sottoscrizione di Azure: creare un account gratuito.
- Creare una risorsa Voce nel portale di Azure.
- Chiave e area della risorsa Voce. Dopo aver distribuito la risorsa Voce, selezionare Vai alla risorsa per visualizzare e gestire le chiavi. Per altre informazioni sulle risorse dei servizi di intelligenza artificiale di Azure, vedere Ottenere le chiavi per la risorsa.
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 setx
ambiente 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.
Creare un nuovo progetto console C++ in Visual Studio Community 2022 denominato
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 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.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, usarees
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 diFromDefaultMicrophoneInput
: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 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
- Sottoscrizione di Azure: creare un account gratuito.
- Creare una risorsa Voce nel portale di Azure.
- Chiave e area della risorsa Voce. Dopo aver distribuito la risorsa Voce, selezionare Vai alla risorsa per visualizzare e gestire le chiavi. Per altre informazioni sulle risorse dei servizi di intelligenza artificiale di Azure, vedere Ottenere le chiavi per la risorsa.
Configurare l'ambiente
Prima di poter eseguire qualsiasi operazione, è necessario installare Speech SDK. L'esempio in questa guida introduttiva funziona con Java Runtime.
- Installare Apache Maven.
mvn -v
Eseguire quindi per confermare l'installazione corretta. - 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>
- 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 setx
ambiente 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.
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 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.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, usarees
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 difromDefaultMicrophoneInput
: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 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
- Sottoscrizione di Azure: creare un account gratuito.
- Creare una risorsa Voce nel portale di Azure.
- Chiave e area della risorsa Voce. Dopo aver distribuito la risorsa Voce, selezionare Vai alla risorsa per visualizzare e gestire le chiavi. Per altre informazioni sulle risorse dei servizi di intelligenza artificiale di Azure, vedere Ottenere le chiavi per la risorsa.
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 setx
ambiente 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.
Aprire un prompt dei comandi in cui si vuole 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 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.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.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, usarees
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
- Sottoscrizione di Azure: creare un account gratuito.
- Creare una risorsa Voce nel portale di Azure.
- Chiave e area della risorsa Voce. Dopo aver distribuito la risorsa Voce, selezionare Vai alla risorsa per visualizzare e gestire le chiavi. Per altre informazioni sulle risorse dei servizi di intelligenza artificiale di Azure, vedere Ottenere le chiavi per la risorsa.
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. L'installazione di questo pacchetto per la prima volta potrebbe richiedere un riavvio.
- In Linux è necessario usare l'architettura di destinazione x64.
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 setx
ambiente 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.
Aprire un prompt dei comandi in cui si vuole 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" 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()
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.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, usarees
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 diuse_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 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
- Sottoscrizione di Azure: creare un account gratuito.
- Creare una risorsa Voce nel portale di Azure.
- Chiave e area della risorsa Voce. Dopo aver distribuito la risorsa Voce, selezionare Vai alla risorsa per visualizzare e gestire le chiavi. Per altre informazioni sulle risorse dei servizi di intelligenza artificiale di Azure, vedere Ottenere le chiavi per la risorsa.
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.
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 e sostituireREGION
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, usarees
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.