Rychlý start: Vytvoření diarizace v reálném čase
Referenční dokumentace | – balíček (NuGet) | Další ukázky na GitHubu
V tomto rychlém startu spustíte aplikaci pro přepis řeči na text s diarizací v reálném čase. Diarizace rozlišuje mezi různými mluvčími, kteří se účastní konverzace. Služba Speech poskytuje informace o tom, který mluvčí mluvil o konkrétní části přepisované řeči.
Informace o mluvčím jsou součástí výsledku v poli ID mluvčího. ID mluvčího je obecný identifikátor přiřazený jednotlivým účastníkům konverzace službou během rozpoznávání, protože z poskytnutého zvukového obsahu jsou identifikováni různí mluvčí.
Tip
Převod řeči v reálném čase na text v sadě Speech Studio můžete vyzkoušet bez registrace nebo psaní jakéhokoli kódu. Speech Studio ale zatím nepodporuje diarizaci.
Požadavky
- Předplatné Azure – Vytvořte si ho zdarma.
- Na webu Azure Portal vytvořte prostředek služby Speech.
- Váš klíč prostředku služby Speech a oblast. Po nasazení prostředku služby Speech vyberte Přejít k prostředku a zobrazte a spravujte klíče. Další informace o prostředcích služeb Azure AI najdete v tématu Získání klíčů pro váš prostředek.
Nastavení prostředí
Sada Speech SDK je k dispozici jako balíček NuGet a implementuje .NET Standard 2.0. Sadu Speech SDK nainstalujete později v této příručce, ale nejprve si projděte průvodce instalací sady SDK, kde najdete další požadavky.
Nastavení proměnných prostředí
Aby vaše aplikace získala přístup k prostředkům služeb Azure AI, musí být ověřená. V produkčním prostředí použijte bezpečný způsob ukládání a přístupu k vašim přihlašovacím údajům. Když například získáte klíč pro prostředek služby Speech, zapište ho do nové proměnné prostředí na místním počítači, na kterém běží aplikace.
Tip
Nezahrňte klíč přímo do kódu a nikdy ho nesdělujte veřejně. Další možnosti ověřování, jako je Azure Key Vault, najdete v tématu Zabezpečení služeb Azure AI.
Pokud chcete nastavit proměnnou prostředí pro váš klíč prostředku služby Speech, otevřete okno konzoly a postupujte podle pokynů pro váš operační systém a vývojové prostředí.
- Pokud chcete nastavit proměnnou
SPEECH_KEY
prostředí, nahraďte klíč jedním z klíčů vašeho prostředku. - Pokud chcete nastavit proměnnou
SPEECH_REGION
prostředí, nahraďte oblast jednou z oblastí vašeho prostředku.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Poznámka:
Pokud potřebujete přístup pouze k proměnným prostředí v aktuální konzole, můžete nastavit proměnnou prostředí namísto set
setx
.
Po přidání proměnných prostředí možná budete muset restartovat všechny programy, které potřebují přečíst proměnnou prostředí, včetně okna konzoly. Pokud například jako editor používáte Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.
Implementace diarizace ze souboru s přepisem konverzace
Pomocí těchto kroků vytvořte konzolovou aplikaci a nainstalujte sadu Speech SDK.
Ve složce, ve které chcete nový projekt, otevřete okno příkazového řádku. Spuštěním tohoto příkazu vytvořte konzolovou aplikaci pomocí rozhraní příkazového řádku .NET CLI.
dotnet new console
Tento příkaz vytvoří soubor Program.cs v adresáři projektu.
Nainstalujte sadu Speech SDK do nového projektu pomocí rozhraní příkazového řádku .NET.
dotnet add package Microsoft.CognitiveServices.Speech
Nahraďte obsah
Program.cs
následujícím kódem.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(); } } } }
Získejte ukázkový zvukový soubor nebo použijte vlastní
.wav
soubor. Nahraďtekatiesteve.wav
cestu a název.wav
souboru.Aplikace rozpozná řeč od více účastníků konverzace. Zvukový soubor by měl obsahovat více reproduktorů.
Pokud chcete změnit jazyk rozpoznávání řeči, nahraďte
en-US
jiným podporovaným jazykem. Napříklades-ES
pro španělštinu (Španělsko). Výchozí jazyk jeen-US
, pokud nezadáte jazyk. Podrobnosti o tom, jak identifikovat jeden z více jazyků, které by mohly být mluvené, najdete v tématu identifikace jazyka.Spusťte konzolovou aplikaci a spusťte přepis konverzace:
dotnet run
Důležité
Ujistěte se, že jste nastavili SPEECH_KEY
proměnné prostředí a SPEECH_REGION
proměnné prostředí. Pokud tyto proměnné nenastavíte, ukázka selže s chybovou zprávou.
Přepisovaná konverzace by měla být výstupem jako text:
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
Mluvčí se označují jako Host-1, Guest-2 atd. v závislosti na počtu mluvčích v konverzaci.
Vyčištění prostředků
Prostředek služby Speech, který jste vytvořili, můžete odebrat pomocí webu Azure Portal nebo rozhraní příkazového řádku Azure (CLI ).
Referenční dokumentace | – balíček (NuGet) | Další ukázky na GitHubu
V tomto rychlém startu spustíte aplikaci pro přepis řeči na text s diarizací v reálném čase. Diarizace rozlišuje mezi různými mluvčími, kteří se účastní konverzace. Služba Speech poskytuje informace o tom, který mluvčí mluvil o konkrétní části přepisované řeči.
Informace o mluvčím jsou součástí výsledku v poli ID mluvčího. ID mluvčího je obecný identifikátor přiřazený jednotlivým účastníkům konverzace službou během rozpoznávání, protože z poskytnutého zvukového obsahu jsou identifikováni různí mluvčí.
Tip
Převod řeči v reálném čase na text v sadě Speech Studio můžete vyzkoušet bez registrace nebo psaní jakéhokoli kódu. Speech Studio ale zatím nepodporuje diarizaci.
Požadavky
- Předplatné Azure – Vytvořte si ho zdarma.
- Na webu Azure Portal vytvořte prostředek služby Speech.
- Váš klíč prostředku služby Speech a oblast. Po nasazení prostředku služby Speech vyberte Přejít k prostředku a zobrazte a spravujte klíče. Další informace o prostředcích služeb Azure AI najdete v tématu Získání klíčů pro váš prostředek.
Nastavení prostředí
Sada Speech SDK je k dispozici jako balíček NuGet a implementuje .NET Standard 2.0. Sadu Speech SDK nainstalujete později v této příručce, ale nejprve si projděte průvodce instalací sady SDK, kde najdete další požadavky.
Nastavení proměnných prostředí
Aby vaše aplikace získala přístup k prostředkům služeb Azure AI, musí být ověřená. V produkčním prostředí použijte bezpečný způsob ukládání a přístupu k vašim přihlašovacím údajům. Když například získáte klíč pro prostředek služby Speech, zapište ho do nové proměnné prostředí na místním počítači, na kterém běží aplikace.
Tip
Nezahrňte klíč přímo do kódu a nikdy ho nesdělujte veřejně. Další možnosti ověřování, jako je Azure Key Vault, najdete v tématu Zabezpečení služeb Azure AI.
Pokud chcete nastavit proměnnou prostředí pro váš klíč prostředku služby Speech, otevřete okno konzoly a postupujte podle pokynů pro váš operační systém a vývojové prostředí.
- Pokud chcete nastavit proměnnou
SPEECH_KEY
prostředí, nahraďte klíč jedním z klíčů vašeho prostředku. - Pokud chcete nastavit proměnnou
SPEECH_REGION
prostředí, nahraďte oblast jednou z oblastí vašeho prostředku.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Poznámka:
Pokud potřebujete přístup pouze k proměnným prostředí v aktuální konzole, můžete nastavit proměnnou prostředí namísto set
setx
.
Po přidání proměnných prostředí možná budete muset restartovat všechny programy, které potřebují přečíst proměnnou prostředí, včetně okna konzoly. Pokud například jako editor používáte Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.
Implementace diarizace ze souboru s přepisem konverzace
Pomocí těchto kroků vytvořte konzolovou aplikaci a nainstalujte sadu Speech SDK.
Vytvořte nový projekt konzoly C++ v sadě Visual Studio Community 2022 s názvem
ConversationTranscription
.Vyberte nástroje>NuGet Správce balíčků> Správce balíčků konzole. V konzole Správce balíčků spusťte tento příkaz:
Install-Package Microsoft.CognitiveServices.Speech
Nahraďte obsah
ConversationTranscription.cpp
následujícím kódem.#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 }
Získejte ukázkový zvukový soubor nebo použijte vlastní
.wav
soubor. Nahraďtekatiesteve.wav
cestu a název.wav
souboru.Aplikace rozpozná řeč od více účastníků konverzace. Zvukový soubor by měl obsahovat více reproduktorů.
Pokud chcete změnit jazyk rozpoznávání řeči, nahraďte
en-US
jiným podporovaným jazykem. Napříklades-ES
pro španělštinu (Španělsko). Výchozí jazyk jeen-US
, pokud nezadáte jazyk. Podrobnosti o tom, jak identifikovat jeden z více jazyků, které by mohly být mluvené, najdete v tématu identifikace jazyka.Sestavte a spusťte aplikaci pro zahájení přepisu konverzace:
Důležité
Ujistěte se, že jste nastavili
SPEECH_KEY
proměnné prostředí aSPEECH_REGION
proměnné prostředí. Pokud tyto proměnné nenastavíte, ukázka selže s chybovou zprávou.
Přepisovaná konverzace by měla být výstupem jako text:
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
Mluvčí se označují jako Host-1, Guest-2 atd. v závislosti na počtu mluvčích v konverzaci.
Vyčištění prostředků
Prostředek služby Speech, který jste vytvořili, můžete odebrat pomocí webu Azure Portal nebo rozhraní příkazového řádku Azure (CLI ).
Referenční dokumentace | – balíček (Go) | Další ukázky na GitHubu
Sada Speech SDK pro Go nepodporuje přepis konverzace. Vyberte jiný programovací jazyk nebo referenční informace k Jazyku Go a ukázky propojené od začátku tohoto článku.
Referenční dokumentace | Další ukázky na GitHubu
V tomto rychlém startu spustíte aplikaci pro přepis řeči na text s diarizací v reálném čase. Diarizace rozlišuje mezi různými mluvčími, kteří se účastní konverzace. Služba Speech poskytuje informace o tom, který mluvčí mluvil o konkrétní části přepisované řeči.
Informace o mluvčím jsou součástí výsledku v poli ID mluvčího. ID mluvčího je obecný identifikátor přiřazený jednotlivým účastníkům konverzace službou během rozpoznávání, protože z poskytnutého zvukového obsahu jsou identifikováni různí mluvčí.
Tip
Převod řeči v reálném čase na text v sadě Speech Studio můžete vyzkoušet bez registrace nebo psaní jakéhokoli kódu. Speech Studio ale zatím nepodporuje diarizaci.
Požadavky
- Předplatné Azure – Vytvořte si ho zdarma.
- Na webu Azure Portal vytvořte prostředek služby Speech.
- Váš klíč prostředku služby Speech a oblast. Po nasazení prostředku služby Speech vyberte Přejít k prostředku a zobrazte a spravujte klíče. Další informace o prostředcích služeb Azure AI najdete v tématu Získání klíčů pro váš prostředek.
Nastavení prostředí
Pokud chcete nastavit prostředí, nainstalujte sadu Speech SDK. Ukázka v tomto rychlém startu funguje s modulem Runtime Java.
Nainstalujte Apache Maven. Pak spusťte a potvrďte
mvn -v
úspěšnou instalaci.V kořenovém adresáři projektu vytvořte nový
pom.xml
soubor a zkopírujte do něj následující:<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.38.0</version> </dependency> </dependencies> </project>
Nainstalujte sadu Speech SDK a závislosti.
mvn clean dependency:copy-dependencies
Nastavení proměnných prostředí
Aby vaše aplikace získala přístup k prostředkům služeb Azure AI, musí být ověřená. V produkčním prostředí použijte bezpečný způsob ukládání a přístupu k vašim přihlašovacím údajům. Když například získáte klíč pro prostředek služby Speech, zapište ho do nové proměnné prostředí na místním počítači, na kterém běží aplikace.
Tip
Nezahrňte klíč přímo do kódu a nikdy ho nesdělujte veřejně. Další možnosti ověřování, jako je Azure Key Vault, najdete v tématu Zabezpečení služeb Azure AI.
Pokud chcete nastavit proměnnou prostředí pro váš klíč prostředku služby Speech, otevřete okno konzoly a postupujte podle pokynů pro váš operační systém a vývojové prostředí.
- Pokud chcete nastavit proměnnou
SPEECH_KEY
prostředí, nahraďte klíč jedním z klíčů vašeho prostředku. - Pokud chcete nastavit proměnnou
SPEECH_REGION
prostředí, nahraďte oblast jednou z oblastí vašeho prostředku.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Poznámka:
Pokud potřebujete přístup pouze k proměnným prostředí v aktuální konzole, můžete nastavit proměnnou prostředí namísto set
setx
.
Po přidání proměnných prostředí možná budete muset restartovat všechny programy, které potřebují přečíst proměnnou prostředí, včetně okna konzoly. Pokud například jako editor používáte Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.
Implementace diarizace ze souboru s přepisem konverzace
Pokud chcete vytvořit konzolovou aplikaci pro přepis konverzace, postupujte podle těchto kroků.
Vytvořte nový soubor s názvem
ConversationTranscription.java
ve stejném kořenovém adresáři projektu.Zkopírujte následující kód do
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); } }
Získejte ukázkový zvukový soubor nebo použijte vlastní
.wav
soubor. Nahraďtekatiesteve.wav
cestu a název.wav
souboru.Aplikace rozpozná řeč od více účastníků konverzace. Zvukový soubor by měl obsahovat více reproduktorů.
Pokud chcete změnit jazyk rozpoznávání řeči, nahraďte
en-US
jiným podporovaným jazykem. Napříklades-ES
pro španělštinu (Španělsko). Výchozí jazyk jeen-US
, pokud nezadáte jazyk. Podrobnosti o tom, jak identifikovat jeden z více jazyků, které by mohly být mluvené, najdete v tématu identifikace jazyka.Spusťte novou konzolovou aplikaci a spusťte přepis konverzace:
javac ConversationTranscription.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" ConversationTranscription
Důležité
Ujistěte se, že jste nastavili SPEECH_KEY
proměnné prostředí a SPEECH_REGION
proměnné prostředí. Pokud tyto proměnné nenastavíte, ukázka selže s chybovou zprávou.
Přepisovaná konverzace by měla být výstupem jako text:
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
Mluvčí se označují jako Host-1, Guest-2 atd. v závislosti na počtu mluvčích v konverzaci.
Vyčištění prostředků
Prostředek služby Speech, který jste vytvořili, můžete odebrat pomocí webu Azure Portal nebo rozhraní příkazového řádku Azure (CLI ).
Referenční dokumentace | Balíček (npm) | Další ukázky zdrojového kódu knihovny GitHub |
V tomto rychlém startu spustíte aplikaci pro přepis řeči na text s diarizací v reálném čase. Diarizace rozlišuje mezi různými mluvčími, kteří se účastní konverzace. Služba Speech poskytuje informace o tom, který mluvčí mluvil o konkrétní části přepisované řeči.
Informace o mluvčím jsou součástí výsledku v poli ID mluvčího. ID mluvčího je obecný identifikátor přiřazený jednotlivým účastníkům konverzace službou během rozpoznávání, protože z poskytnutého zvukového obsahu jsou identifikováni různí mluvčí.
Tip
Převod řeči v reálném čase na text v sadě Speech Studio můžete vyzkoušet bez registrace nebo psaní jakéhokoli kódu. Speech Studio ale zatím nepodporuje diarizaci.
Požadavky
- Předplatné Azure – Vytvořte si ho zdarma.
- Na webu Azure Portal vytvořte prostředek služby Speech.
- Váš klíč prostředku služby Speech a oblast. Po nasazení prostředku služby Speech vyberte Přejít k prostředku a zobrazte a spravujte klíče. Další informace o prostředcích služeb Azure AI najdete v tématu Získání klíčů pro váš prostředek.
Nastavení prostředí
Pokud chcete nastavit prostředí, nainstalujte sadu Speech SDK pro JavaScript. Pokud chcete, aby se název balíčku nainstaloval, spusťte npm install microsoft-cognitiveservices-speech-sdk
příkaz . Pokyny k instalaci s asistencí najdete v průvodci instalací sady SDK.
Nastavení proměnných prostředí
Aby vaše aplikace získala přístup k prostředkům služeb Azure AI, musí být ověřená. V produkčním prostředí použijte bezpečný způsob ukládání a přístupu k vašim přihlašovacím údajům. Když například získáte klíč pro prostředek služby Speech, zapište ho do nové proměnné prostředí na místním počítači, na kterém běží aplikace.
Tip
Nezahrňte klíč přímo do kódu a nikdy ho nesdělujte veřejně. Další možnosti ověřování, jako je Azure Key Vault, najdete v tématu Zabezpečení služeb Azure AI.
Pokud chcete nastavit proměnnou prostředí pro váš klíč prostředku služby Speech, otevřete okno konzoly a postupujte podle pokynů pro váš operační systém a vývojové prostředí.
- Pokud chcete nastavit proměnnou
SPEECH_KEY
prostředí, nahraďte klíč jedním z klíčů vašeho prostředku. - Pokud chcete nastavit proměnnou
SPEECH_REGION
prostředí, nahraďte oblast jednou z oblastí vašeho prostředku.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Poznámka:
Pokud potřebujete přístup pouze k proměnným prostředí v aktuální konzole, můžete nastavit proměnnou prostředí namísto set
setx
.
Po přidání proměnných prostředí možná budete muset restartovat všechny programy, které potřebují přečíst proměnnou prostředí, včetně okna konzoly. Pokud například jako editor používáte Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.
Implementace diarizace ze souboru s přepisem konverzace
Pomocí těchto kroků vytvořte novou konzolovou aplikaci pro přepis konverzace.
Otevřete okno příkazového řádku, ve kterém chcete nový projekt, a vytvořte nový soubor s názvem
ConversationTranscription.js
.Nainstalujte sadu Speech SDK pro JavaScript:
npm install microsoft-cognitiveservices-speech-sdk
Zkopírujte následující kód do
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();
Získejte ukázkový zvukový soubor nebo použijte vlastní
.wav
soubor. Nahraďtekatiesteve.wav
cestu a název.wav
souboru.Aplikace rozpozná řeč od více účastníků konverzace. Zvukový soubor by měl obsahovat více reproduktorů.
Pokud chcete změnit jazyk rozpoznávání řeči, nahraďte
en-US
jiným podporovaným jazykem. Napříklades-ES
pro španělštinu (Španělsko). Výchozí jazyk jeen-US
, pokud nezadáte jazyk. Podrobnosti o tom, jak identifikovat jeden z více jazyků, které by mohly být mluvené, najdete v tématu identifikace jazyka.Spuštěním nové konzolové aplikace spusťte rozpoznávání řeči ze souboru:
node.exe ConversationTranscription.js
Důležité
Ujistěte se, že jste nastavili SPEECH_KEY
proměnné prostředí a SPEECH_REGION
proměnné prostředí. Pokud tyto proměnné nenastavíte, ukázka selže s chybovou zprávou.
Přepisovaná konverzace by měla být výstupem jako text:
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
Mluvčí se označují jako Host-1, Guest-2 atd. v závislosti na počtu mluvčích v konverzaci.
Vyčištění prostředků
Prostředek služby Speech, který jste vytvořili, můžete odebrat pomocí webu Azure Portal nebo rozhraní příkazového řádku Azure (CLI ).
Referenční dokumentace | Balíček (stáhnout) | Další ukázky na GitHubu
Sada Speech SDK pro Objective-C podporuje přepis konverzace, ale zatím jsme do ní nezahrnuli průvodce. Začněte výběrem jiného programovacího jazyka a seznamte se s koncepty nebo si projděte referenční informace k Objective-C a ukázky propojené od začátku tohoto článku.
Referenční dokumentace | Balíček (stáhnout) | Další ukázky na GitHubu
Sada Speech SDK pro Swift podporuje přepis konverzací, ale zatím jsme do ní nezahrnuli průvodce. Začněte výběrem jiného programovacího jazyka a seznamte se s koncepty nebo si prohlédněte referenční informace a ukázky Swiftu, které jsou propojené od začátku tohoto článku.
Referenční dokumentace | – balíček (PyPi) | Další ukázky na GitHubu
V tomto rychlém startu spustíte aplikaci pro přepis řeči na text s diarizací v reálném čase. Diarizace rozlišuje mezi různými mluvčími, kteří se účastní konverzace. Služba Speech poskytuje informace o tom, který mluvčí mluvil o konkrétní části přepisované řeči.
Informace o mluvčím jsou součástí výsledku v poli ID mluvčího. ID mluvčího je obecný identifikátor přiřazený jednotlivým účastníkům konverzace službou během rozpoznávání, protože z poskytnutého zvukového obsahu jsou identifikováni různí mluvčí.
Tip
Převod řeči v reálném čase na text v sadě Speech Studio můžete vyzkoušet bez registrace nebo psaní jakéhokoli kódu. Speech Studio ale zatím nepodporuje diarizaci.
Požadavky
- Předplatné Azure – Vytvořte si ho zdarma.
- Na webu Azure Portal vytvořte prostředek služby Speech.
- Váš klíč prostředku služby Speech a oblast. Po nasazení prostředku služby Speech vyberte Přejít k prostředku a zobrazte a spravujte klíče. Další informace o prostředcích služeb Azure AI najdete v tématu Získání klíčů pro váš prostředek.
Nastavení prostředí
Sada Speech SDK pro Python je k dispozici jako modul PyPI (Python Package Index). Sada Speech SDK pro Python je kompatibilní s Windows, Linuxem a macOS.
- Musíte nainstalovat Microsoft Distribuovatelné součásti Visual C++ pro Visual Studio 2015, 2017, 2019 a 2022 pro vaši platformu. První instalace tohoto balíčku může vyžadovat restartování.
- V Linuxu musíte použít cílovou architekturu x64.
Nainstalujte verzi Pythonu z verze 3.7 nebo novější. Nejprve si projděte průvodce instalací sady SDK, kde najdete další požadavky.
Nastavení proměnných prostředí
Aby vaše aplikace získala přístup k prostředkům služeb Azure AI, musí být ověřená. V produkčním prostředí použijte bezpečný způsob ukládání a přístupu k vašim přihlašovacím údajům. Když například získáte klíč pro prostředek služby Speech, zapište ho do nové proměnné prostředí na místním počítači, na kterém běží aplikace.
Tip
Nezahrňte klíč přímo do kódu a nikdy ho nesdělujte veřejně. Další možnosti ověřování, jako je Azure Key Vault, najdete v tématu Zabezpečení služeb Azure AI.
Pokud chcete nastavit proměnnou prostředí pro váš klíč prostředku služby Speech, otevřete okno konzoly a postupujte podle pokynů pro váš operační systém a vývojové prostředí.
- Pokud chcete nastavit proměnnou
SPEECH_KEY
prostředí, nahraďte klíč jedním z klíčů vašeho prostředku. - Pokud chcete nastavit proměnnou
SPEECH_REGION
prostředí, nahraďte oblast jednou z oblastí vašeho prostředku.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Poznámka:
Pokud potřebujete přístup pouze k proměnným prostředí v aktuální konzole, můžete nastavit proměnnou prostředí namísto set
setx
.
Po přidání proměnných prostředí možná budete muset restartovat všechny programy, které potřebují přečíst proměnnou prostředí, včetně okna konzoly. Pokud například jako editor používáte Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.
Implementace diarizace ze souboru s přepisem konverzace
Pomocí těchto kroků vytvořte novou konzolovou aplikaci.
Otevřete okno příkazového řádku, ve kterém chcete nový projekt, a vytvořte nový soubor s názvem
conversation_transcription.py
.Spuštěním tohoto příkazu nainstalujte sadu Speech SDK:
pip install azure-cognitiveservices-speech
Zkopírujte následující kód do
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))
Získejte ukázkový zvukový soubor nebo použijte vlastní
.wav
soubor. Nahraďtekatiesteve.wav
cestu a název.wav
souboru.Aplikace rozpozná řeč od více účastníků konverzace. Zvukový soubor by měl obsahovat více reproduktorů.
Pokud chcete změnit jazyk rozpoznávání řeči, nahraďte
en-US
jiným podporovaným jazykem. Napříklades-ES
pro španělštinu (Španělsko). Výchozí jazyk jeen-US
, pokud nezadáte jazyk. Podrobnosti o tom, jak identifikovat jeden z více jazyků, které by mohly být mluvené, najdete v tématu identifikace jazyka.Spusťte novou konzolovou aplikaci a spusťte přepis konverzace:
python conversation_transcription.py
Důležité
Ujistěte se, že jste nastavili SPEECH_KEY
proměnné prostředí a SPEECH_REGION
proměnné prostředí. Pokud tyto proměnné nenastavíte, ukázka selže s chybovou zprávou.
Přepisovaná konverzace by měla být výstupem jako text:
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)
Mluvčí se označují jako Host-1, Guest-2 atd. v závislosti na počtu mluvčích v konverzaci.
Vyčištění prostředků
Prostředek služby Speech, který jste vytvořili, můžete odebrat pomocí webu Azure Portal nebo rozhraní příkazového řádku Azure (CLI ).
Speech to text REST API reference | Speech to text REST API for short audio reference | Additional Samples on GitHub
Rozhraní REST API nepodporuje přepis konverzace. V horní části této stránky vyberte jiný programovací jazyk nebo nástroj.
Rozhraní příkazového řádku služby Speech nepodporuje přepis konverzace. V horní části této stránky vyberte jiný programovací jazyk nebo nástroj.
Další krok
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro