Guida introduttiva: Creare una diarizzazione in tempo reale
Pacchetto della documentazione di riferimento | (NuGet) | Esempi aggiuntivi in GitHub
In questo argomento di avvio rapido si esegue un'applicazione per la trascrizione del riconoscimento vocale con la diarizzazione in tempo reale. La diarizzazione distingue tra i diversi relatori che partecipano alla conversazione. Il servizio Voce fornisce informazioni sull'altoparlante che parlava una particolare parte del discorso trascritto.
Le informazioni sull'altoparlante sono incluse nel risultato nel campo ID voce. L'ID voce è un identificatore generico assegnato a ogni partecipante della conversazione dal servizio durante il riconoscimento, poiché vengono identificati parlanti diversi dal contenuto audio fornito.
Suggerimento
È possibile provare il riconoscimento vocale in tempo reale in Speech Studio senza iscriversi o scrivere codice. Tuttavia, Speech Studio non supporta ancora la diarizzazione.
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.
Implementare la diarizzazione dal file con la trascrizione della conversazione
Seguire questa procedura per creare un'applicazione console e installare Speech SDK.
Aprire una finestra del prompt dei comandi nella cartella in cui si desidera il nuovo progetto. Eseguire questo comando per creare un'applicazione console con l'interfaccia della riga di comando di .NET.
dotnet new console
Questo comando crea il file Program.cs nella directory del progetto.
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 Microsoft.CognitiveServices.Speech; using Microsoft.CognitiveServices.Speech.Audio; using Microsoft.CognitiveServices.Speech.Transcription; 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"); async static Task Main(string[] args) { var filepath = "katiesteve.wav"; var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion); speechConfig.SpeechRecognitionLanguage = "en-US"; var stopRecognition = new TaskCompletionSource<int>(TaskCreationOptions.RunContinuationsAsynchronously); // Create an audio stream from a wav file or from the default microphone using (var audioConfig = AudioConfig.FromWavFileInput(filepath)) { // Create a conversation transcriber using audio stream input using (var conversationTranscriber = new ConversationTranscriber(speechConfig, audioConfig)) { conversationTranscriber.Transcribing += (s, e) => { Console.WriteLine($"TRANSCRIBING: Text={e.Result.Text}"); }; conversationTranscriber.Transcribed += (s, e) => { if (e.Result.Reason == ResultReason.RecognizedSpeech) { Console.WriteLine($"TRANSCRIBED: Text={e.Result.Text} Speaker ID={e.Result.SpeakerId}"); } else if (e.Result.Reason == ResultReason.NoMatch) { Console.WriteLine($"NOMATCH: Speech could not be transcribed."); } }; conversationTranscriber.Canceled += (s, e) => { Console.WriteLine($"CANCELED: Reason={e.Reason}"); if (e.Reason == CancellationReason.Error) { Console.WriteLine($"CANCELED: ErrorCode={e.ErrorCode}"); Console.WriteLine($"CANCELED: ErrorDetails={e.ErrorDetails}"); Console.WriteLine($"CANCELED: Did you set the speech resource key and region values?"); stopRecognition.TrySetResult(0); } stopRecognition.TrySetResult(0); }; conversationTranscriber.SessionStopped += (s, e) => { Console.WriteLine("\n Session stopped event."); stopRecognition.TrySetResult(0); }; await conversationTranscriber.StartTranscribingAsync(); // Waits for completion. Use Task.WaitAny to keep the task rooted. Task.WaitAny(new[] { stopRecognition.Task }); await conversationTranscriber.StopTranscribingAsync(); } } } }
Ottenere il file audio di esempio o usare il proprio
.wav
file. Sostituirekatiesteve.wav
con il percorso e il nome del.wav
file.L'applicazione riconosce il riconoscimento vocale da più partecipanti alla conversazione. Il file audio deve contenere più altoparlanti.
Per modificare la lingua di riconoscimento vocale, sostituire
en-US
con un'altra lingua supportata. 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.Eseguire l'applicazione console per avviare la trascrizione della conversazione:
dotnet run
Importante
Assicurarsi di impostare le SPEECH_KEY
variabili di ambiente e SPEECH_REGION
. Se queste variabili non vengono impostate, l'esempio ha esito negativo e viene visualizzato un messaggio di errore.
La conversazione trascritta deve essere restituita come testo:
TRANSCRIBED: Text=Good morning, Steve. Speaker ID=Unknown
TRANSCRIBED: Text=Good morning. Katie. Speaker ID=Unknown
TRANSCRIBED: Text=Have you tried the latest real time diarization in Microsoft Speech Service which can tell you who said what in real time? Speaker ID=Guest-1
TRANSCRIBED: Text=Not yet. I've been using the batch transcription with diarization functionality, but it produces diarization result until whole audio get processed. Speaker ID=Guest-2
TRANSRIBED: Text=Is the new feature can diarize in real time? Speaker ID=Guest-2
TRANSCRIBED: Text=Absolutely. Speaker ID=GUEST-1
TRANSCRIBED: Text=That's exciting. Let me try it right now. Speaker ID=GUEST-2
CANCELED: Reason=EndOfStream
I relatori vengono identificati come Guest-1, Guest-2 e così via, a seconda del numero di relatori nella conversazione.
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 questo argomento di avvio rapido si esegue un'applicazione per la trascrizione del riconoscimento vocale con la diarizzazione in tempo reale. La diarizzazione distingue tra i diversi relatori che partecipano alla conversazione. Il servizio Voce fornisce informazioni sull'altoparlante che parlava una particolare parte del discorso trascritto.
Le informazioni sull'altoparlante sono incluse nel risultato nel campo ID voce. L'ID voce è un identificatore generico assegnato a ogni partecipante della conversazione dal servizio durante il riconoscimento, poiché vengono identificati parlanti diversi dal contenuto audio fornito.
Suggerimento
È possibile provare il riconoscimento vocale in tempo reale in Speech Studio senza iscriversi o scrivere codice. Tuttavia, Speech Studio non supporta ancora la diarizzazione.
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.
Implementare la diarizzazione dal file con la trascrizione della conversazione
Seguire questa procedura per creare un'applicazione console e installare Speech SDK.
Creare un nuovo progetto console C++ in Visual Studio Community 2022 denominato
ConversationTranscription
.Selezionare Strumenti>nuget Gestione pacchetti> Gestione pacchetti Console. Nella console di Gestione pacchetti eseguire questo comando:
Install-Package Microsoft.CognitiveServices.Speech
Sostituire il contenuto di
ConversationTranscription.cpp
con il codice seguente.#include <iostream> #include <stdlib.h> #include <speechapi_cxx.h> #include <future> using namespace Microsoft::CognitiveServices::Speech; using namespace Microsoft::CognitiveServices::Speech::Audio; using namespace Microsoft::CognitiveServices::Speech::Transcription; 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"); if ((size(speechKey) == 0) || (size(speechRegion) == 0)) { std::cout << "Please set both SPEECH_KEY and SPEECH_REGION environment variables." << std::endl; return -1; } auto speechConfig = SpeechConfig::FromSubscription(speechKey, speechRegion); speechConfig->SetSpeechRecognitionLanguage("en-US"); auto audioConfig = AudioConfig::FromWavFileInput("katiesteve.wav"); auto conversationTranscriber = ConversationTranscriber::FromConfig(speechConfig, audioConfig); // promise for synchronization of recognition end. std::promise<void> recognitionEnd; // Subscribes to events. conversationTranscriber->Transcribing.Connect([](const ConversationTranscriptionEventArgs& e) { std::cout << "TRANSCRIBING:" << e.Result->Text << std::endl; }); conversationTranscriber->Transcribed.Connect([](const ConversationTranscriptionEventArgs& e) { if (e.Result->Reason == ResultReason::RecognizedSpeech) { std::cout << "TRANSCRIBED: Text=" << e.Result->Text << std::endl; std::cout << "Speaker ID=" << e.Result->SpeakerId << std::endl; } else if (e.Result->Reason == ResultReason::NoMatch) { std::cout << "NOMATCH: Speech could not be transcribed." << std::endl; } }); conversationTranscriber->Canceled.Connect([&recognitionEnd](const ConversationTranscriptionCanceledEventArgs& e) { auto cancellation = CancellationDetails::FromResult(e.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; } else if (cancellation->Reason == CancellationReason::EndOfStream) { std::cout << "CANCELED: Reach the end of the file." << std::endl; } }); conversationTranscriber->SessionStopped.Connect([&recognitionEnd](const SessionEventArgs& e) { std::cout << "Session stopped."; recognitionEnd.set_value(); // Notify to stop recognition. }); conversationTranscriber->StartTranscribingAsync().wait(); // Waits for recognition end. recognitionEnd.get_future().wait(); conversationTranscriber->StopTranscribingAsync().wait(); } 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 }
Ottenere il file audio di esempio o usare il proprio
.wav
file. Sostituirekatiesteve.wav
con il percorso e il nome del.wav
file.L'applicazione riconosce il riconoscimento vocale da più partecipanti alla conversazione. Il file audio deve contenere più altoparlanti.
Per modificare la lingua di riconoscimento vocale, sostituire
en-US
con un'altra lingua supportata. 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.Compilare ed eseguire l'applicazione per avviare la trascrizione della conversazione:
Importante
Assicurarsi di impostare le
SPEECH_KEY
variabili di ambiente eSPEECH_REGION
. Se queste variabili non vengono impostate, l'esempio ha esito negativo e viene visualizzato un messaggio di errore.
La conversazione trascritta deve essere restituita come testo:
TRANSCRIBED: Text=Good morning, Steve. Speaker ID=Unknown
TRANSCRIBED: Text=Good morning. Katie. Speaker ID=Unknown
TRANSCRIBED: Text=Have you tried the latest real time diarization in Microsoft Speech Service which can tell you who said what in real time? Speaker ID=Guest-1
TRANSCRIBED: Text=Not yet. I've been using the batch transcription with diarization functionality, but it produces diarization result until whole audio get processed. Speaker ID=Guest-2
TRANSRIBED: Text=Is the new feature can diarize in real time? Speaker ID=Guest-2
TRANSCRIBED: Text=Absolutely. Speaker ID=GUEST-1
TRANSCRIBED: Text=That's exciting. Let me try it right now. Speaker ID=GUEST-2
CANCELED: Reason=EndOfStream
I relatori vengono identificati come Guest-1, Guest-2 e così via, a seconda del numero di relatori nella conversazione.
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 trascrizione della conversazione. 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 questo argomento di avvio rapido si esegue un'applicazione per la trascrizione del riconoscimento vocale con la diarizzazione in tempo reale. La diarizzazione distingue tra i diversi relatori che partecipano alla conversazione. Il servizio Voce fornisce informazioni sull'altoparlante che parlava una particolare parte del discorso trascritto.
Le informazioni sull'altoparlante sono incluse nel risultato nel campo ID voce. L'ID voce è un identificatore generico assegnato a ogni partecipante della conversazione dal servizio durante il riconoscimento, poiché vengono identificati parlanti diversi dal contenuto audio fornito.
Suggerimento
È possibile provare il riconoscimento vocale in tempo reale in Speech Studio senza iscriversi o scrivere codice. Tuttavia, Speech Studio non supporta ancora la diarizzazione.
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
Per configurare l'ambiente, 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.
Implementare la diarizzazione dal file con la trascrizione della conversazione
Seguire questa procedura per creare un'applicazione console per la trascrizione della conversazione.
Creare un nuovo file denominato
ConversationTranscription.java
nella stessa directory radice del progetto.Copiare il codice seguente in
ConversationTranscription.java
:import com.microsoft.cognitiveservices.speech.*; import com.microsoft.cognitiveservices.speech.audio.AudioConfig; import com.microsoft.cognitiveservices.speech.transcription.*; import java.util.concurrent.Semaphore; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; public class ConversationTranscription { // 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 { SpeechConfig speechConfig = SpeechConfig.fromSubscription(speechKey, speechRegion); speechConfig.setSpeechRecognitionLanguage("en-US"); AudioConfig audioInput = AudioConfig.fromWavFileInput("katiesteve.wav"); Semaphore stopRecognitionSemaphore = new Semaphore(0); ConversationTranscriber conversationTranscriber = new ConversationTranscriber(speechConfig, audioInput); { // Subscribes to events. conversationTranscriber.transcribing.addEventListener((s, e) -> { System.out.println("TRANSCRIBING: Text=" + e.getResult().getText()); }); conversationTranscriber.transcribed.addEventListener((s, e) -> { if (e.getResult().getReason() == ResultReason.RecognizedSpeech) { System.out.println("TRANSCRIBED: Text=" + e.getResult().getText() + " Speaker ID=" + e.getResult().getSpeakerId() ); } else if (e.getResult().getReason() == ResultReason.NoMatch) { System.out.println("NOMATCH: Speech could not be transcribed."); } }); conversationTranscriber.canceled.addEventListener((s, e) -> { System.out.println("CANCELED: Reason=" + e.getReason()); if (e.getReason() == CancellationReason.Error) { System.out.println("CANCELED: ErrorCode=" + e.getErrorCode()); System.out.println("CANCELED: ErrorDetails=" + e.getErrorDetails()); System.out.println("CANCELED: Did you update the subscription info?"); } stopRecognitionSemaphore.release(); }); conversationTranscriber.sessionStarted.addEventListener((s, e) -> { System.out.println("\n Session started event."); }); conversationTranscriber.sessionStopped.addEventListener((s, e) -> { System.out.println("\n Session stopped event."); }); conversationTranscriber.startTranscribingAsync().get(); // Waits for completion. stopRecognitionSemaphore.acquire(); conversationTranscriber.stopTranscribingAsync().get(); } speechConfig.close(); audioInput.close(); conversationTranscriber.close(); System.exit(0); } }
Ottenere il file audio di esempio o usare il proprio
.wav
file. Sostituirekatiesteve.wav
con il percorso e il nome del.wav
file.L'applicazione riconosce il riconoscimento vocale da più partecipanti alla conversazione. Il file audio deve contenere più altoparlanti.
Per modificare la lingua di riconoscimento vocale, sostituire
en-US
con un'altra lingua supportata. 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.Eseguire la nuova applicazione console per avviare la trascrizione della conversazione:
javac ConversationTranscription.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" ConversationTranscription
Importante
Assicurarsi di impostare le SPEECH_KEY
variabili di ambiente e SPEECH_REGION
. Se queste variabili non vengono impostate, l'esempio ha esito negativo e viene visualizzato un messaggio di errore.
La conversazione trascritta deve essere restituita come testo:
TRANSCRIBED: Text=Good morning, Steve. Speaker ID=Unknown
TRANSCRIBED: Text=Good morning. Katie. Speaker ID=Unknown
TRANSCRIBED: Text=Have you tried the latest real time diarization in Microsoft Speech Service which can tell you who said what in real time? Speaker ID=Guest-1
TRANSCRIBED: Text=Not yet. I've been using the batch transcription with diarization functionality, but it produces diarization result until whole audio get processed. Speaker ID=Guest-2
TRANSRIBED: Text=Is the new feature can diarize in real time? Speaker ID=Guest-2
TRANSCRIBED: Text=Absolutely. Speaker ID=GUEST-1
TRANSCRIBED: Text=That's exciting. Let me try it right now. Speaker ID=GUEST-2
CANCELED: Reason=EndOfStream
I relatori vengono identificati come Guest-1, Guest-2 e così via, a seconda del numero di relatori nella conversazione.
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 questo argomento di avvio rapido si esegue un'applicazione per la trascrizione del riconoscimento vocale con la diarizzazione in tempo reale. La diarizzazione distingue tra i diversi relatori che partecipano alla conversazione. Il servizio Voce fornisce informazioni sull'altoparlante che parlava una particolare parte del discorso trascritto.
Le informazioni sull'altoparlante sono incluse nel risultato nel campo ID voce. L'ID voce è un identificatore generico assegnato a ogni partecipante della conversazione dal servizio durante il riconoscimento, poiché vengono identificati parlanti diversi dal contenuto audio fornito.
Suggerimento
È possibile provare il riconoscimento vocale in tempo reale in Speech Studio senza iscriversi o scrivere codice. Tuttavia, Speech Studio non supporta ancora la diarizzazione.
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
Per configurare l'ambiente, 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.
Implementare la diarizzazione dal file con la trascrizione della conversazione
Seguire questa procedura per creare una nuova applicazione console per la trascrizione della conversazione.
Aprire una finestra del prompt dei comandi in cui si vuole il nuovo progetto e creare un nuovo file denominato
ConversationTranscription.js
.Installare Speech SDK per JavaScript:
npm install microsoft-cognitiveservices-speech-sdk
Copiare il codice seguente in
ConversationTranscription.js
:const fs = require("fs"); const sdk = require("microsoft-cognitiveservices-speech-sdk"); // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" const speechConfig = sdk.SpeechConfig.fromSubscription(process.env.SPEECH_KEY, process.env.SPEECH_REGION); function fromFile() { const filename = "katiesteve.wav"; let audioConfig = sdk.AudioConfig.fromWavFileInput(fs.readFileSync(filename)); let conversationTranscriber = new sdk.ConversationTranscriber(speechConfig, audioConfig); var pushStream = sdk.AudioInputStream.createPushStream(); fs.createReadStream(filename).on('data', function(arrayBuffer) { pushStream.write(arrayBuffer.slice()); }).on('end', function() { pushStream.close(); }); console.log("Transcribing from: " + filename); conversationTranscriber.sessionStarted = function(s, e) { console.log("SessionStarted event"); console.log("SessionId:" + e.sessionId); }; conversationTranscriber.sessionStopped = function(s, e) { console.log("SessionStopped event"); console.log("SessionId:" + e.sessionId); conversationTranscriber.stopTranscribingAsync(); }; conversationTranscriber.canceled = function(s, e) { console.log("Canceled event"); console.log(e.errorDetails); conversationTranscriber.stopTranscribingAsync(); }; conversationTranscriber.transcribed = function(s, e) { console.log("TRANSCRIBED: Text=" + e.result.text + " Speaker ID=" + e.result.speakerId); }; // Start conversation transcription conversationTranscriber.startTranscribingAsync( function () {}, function (err) { console.trace("err - starting transcription: " + err); } ); } fromFile();
Ottenere il file audio di esempio o usare il proprio
.wav
file. Sostituirekatiesteve.wav
con il percorso e il nome del.wav
file.L'applicazione riconosce il riconoscimento vocale da più partecipanti alla conversazione. Il file audio deve contenere più altoparlanti.
Per modificare la lingua di riconoscimento vocale, sostituire
en-US
con un'altra lingua supportata. 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.Eseguire la nuova applicazione console per avviare il riconoscimento vocale da un file:
node.exe ConversationTranscription.js
Importante
Assicurarsi di impostare le SPEECH_KEY
variabili di ambiente e SPEECH_REGION
. Se queste variabili non vengono impostate, l'esempio ha esito negativo e viene visualizzato un messaggio di errore.
La conversazione trascritta deve essere restituita come testo:
SessionStarted event
SessionId:E87AFBA483C2481985F6C9AF719F616B
TRANSCRIBED: Text=Good morning, Steve. Speaker ID=Unknown
TRANSCRIBED: Text=Good morning, Katie. Speaker ID=Unknown
TRANSCRIBED: Text=Have you tried the latest real time diarization in Microsoft Speech Service which can tell you who said what in real time? Speaker ID=Guest-1
TRANSCRIBED: Text=Not yet. I've been using the batch transcription with diarization functionality, but it produces diarization result until whole audio get processed. Speaker ID=Guest-2
TRANSCRIBED: Text=Is the new feature can diarize in real time? Speaker ID=Guest-2
TRANSCRIBED: Text=Absolutely. Speaker ID=Guest-1
TRANSCRIBED: Text=That's exciting. Let me try it right now. Speaker ID=Guest-2
Canceled event
undefined
SessionStopped event
SessionId:E87AFBA483C2481985F6C9AF719F616B
I relatori vengono identificati come Guest-1, Guest-2 e così via, a seconda del numero di relatori nella conversazione.
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 trascrizione della conversazione, 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 trascrizione della conversazione, 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 questo argomento di avvio rapido si esegue un'applicazione per la trascrizione del riconoscimento vocale con la diarizzazione in tempo reale. La diarizzazione distingue tra i diversi relatori che partecipano alla conversazione. Il servizio Voce fornisce informazioni sull'altoparlante che parlava una particolare parte del discorso trascritto.
Le informazioni sull'altoparlante sono incluse nel risultato nel campo ID voce. L'ID voce è un identificatore generico assegnato a ogni partecipante della conversazione dal servizio durante il riconoscimento, poiché vengono identificati parlanti diversi dal contenuto audio fornito.
Suggerimento
È possibile provare il riconoscimento vocale in tempo reale in Speech Studio senza iscriversi o scrivere codice. Tuttavia, Speech Studio non supporta ancora la diarizzazione.
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 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.
Implementare la diarizzazione dal file con la trascrizione della conversazione
Seguire questa procedura per creare una nuova applicazione console.
Aprire una finestra del prompt dei comandi in cui si vuole il nuovo progetto e creare un nuovo file denominato
conversation_transcription.py
.Eseguire questo comando per installare Speech SDK:
pip install azure-cognitiveservices-speech
Copiare il codice seguente in
conversation_transcription.py
:import os import time import azure.cognitiveservices.speech as speechsdk def conversation_transcriber_recognition_canceled_cb(evt: speechsdk.SessionEventArgs): print('Canceled event') def conversation_transcriber_session_stopped_cb(evt: speechsdk.SessionEventArgs): print('SessionStopped event') def conversation_transcriber_transcribed_cb(evt: speechsdk.SpeechRecognitionEventArgs): print('TRANSCRIBED:') if evt.result.reason == speechsdk.ResultReason.RecognizedSpeech: print('\tText={}'.format(evt.result.text)) print('\tSpeaker ID={}'.format(evt.result.speaker_id)) elif evt.result.reason == speechsdk.ResultReason.NoMatch: print('\tNOMATCH: Speech could not be TRANSCRIBED: {}'.format(evt.result.no_match_details)) def conversation_transcriber_session_started_cb(evt: speechsdk.SessionEventArgs): print('SessionStarted event') def recognize_from_file(): # This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION')) speech_config.speech_recognition_language="en-US" audio_config = speechsdk.audio.AudioConfig(filename="katiesteve.wav") conversation_transcriber = speechsdk.transcription.ConversationTranscriber(speech_config=speech_config, audio_config=audio_config) transcribing_stop = False def stop_cb(evt: speechsdk.SessionEventArgs): #"""callback that signals to stop continuous recognition upon receiving an event `evt`""" print('CLOSING on {}'.format(evt)) nonlocal transcribing_stop transcribing_stop = True # Connect callbacks to the events fired by the conversation transcriber conversation_transcriber.transcribed.connect(conversation_transcriber_transcribed_cb) conversation_transcriber.session_started.connect(conversation_transcriber_session_started_cb) conversation_transcriber.session_stopped.connect(conversation_transcriber_session_stopped_cb) conversation_transcriber.canceled.connect(conversation_transcriber_recognition_canceled_cb) # stop transcribing on either session stopped or canceled events conversation_transcriber.session_stopped.connect(stop_cb) conversation_transcriber.canceled.connect(stop_cb) conversation_transcriber.start_transcribing_async() # Waits for completion. while not transcribing_stop: time.sleep(.5) conversation_transcriber.stop_transcribing_async() # Main try: recognize_from_file() except Exception as err: print("Encountered exception. {}".format(err))
Ottenere il file audio di esempio o usare il proprio
.wav
file. Sostituirekatiesteve.wav
con il percorso e il nome del.wav
file.L'applicazione riconosce il riconoscimento vocale da più partecipanti alla conversazione. Il file audio deve contenere più altoparlanti.
Per modificare la lingua di riconoscimento vocale, sostituire
en-US
con un'altra lingua supportata. 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.Eseguire la nuova applicazione console per avviare la trascrizione della conversazione:
python conversation_transcription.py
Importante
Assicurarsi di impostare le SPEECH_KEY
variabili di ambiente e SPEECH_REGION
. Se queste variabili non vengono impostate, l'esempio ha esito negativo e viene visualizzato un messaggio di errore.
La conversazione trascritta deve essere restituita come testo:
SessionStarted event
TRANSCRIBED:
Text=Good morning, Steve.
Speaker ID=Unknown
TRANSCRIBED:
Text=Good morning, Katie.
Speaker ID=Unknown
TRANSCRIBED:
Text=Have you tried the latest real time diarization in Microsoft Speech Service which can tell you who said what in real time?
Speaker ID=Guest-1
TRANSCRIBED:
Text=Not yet. I've been using the batch transcription with diarization functionality, but it produces diarization result until whole audio get processed.
Speaker ID=Guest-2
TRANSCRIBED:
Text=Is the new feature can diarize in real time?
Speaker ID=Guest-2
TRANSCRIBED:
Text=Absolutely.
Speaker ID=Guest-1
TRANSCRIBED:
Text=That's exciting. Let me try it right now.
Speaker ID=Guest-2
Canceled event
CLOSING on ConversationTranscriptionCanceledEventArgs(session_id=92a0abb68636471dac07041b335d9be3, result=ConversationTranscriptionResult(result_id=ad1b1d83b5c742fcacca0692baa8df74, speaker_id=, text=, reason=ResultReason.Canceled))
SessionStopped event
CLOSING on SessionEventArgs(session_id=92a0abb68636471dac07041b335d9be3)
I relatori vengono identificati come Guest-1, Guest-2 e così via, a seconda del numero di relatori nella conversazione.
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 trascrizione della conversazione. Selezionare un altro linguaggio o strumento di programmazione nella parte superiore di questa pagina.
L'interfaccia della riga di comando di Voce non supporta la trascrizione della conversazione. Selezionare un altro linguaggio o strumento di programmazione nella parte superiore di questa pagina.