Delen via


Quickstart: Realtime-diarisatie maken

Referentiedocumentatiepakket (NuGet) | Aanvullende voorbeelden op GitHub |

In deze quickstart voert u een toepassing uit voor spraak-naar-teksttranscriptie met realtime-diarisatie. Diarization maakt onderscheid tussen de verschillende sprekers die deelnemen aan het gesprek. De Speech-service biedt informatie over welke spreker een bepaald deel van getranscribeerde spraak sprak.

De sprekergegevens worden opgenomen in het resultaat in het veld Spreker-id. De spreker-id is een algemene id die is toegewezen aan elke gespreksdeelnemer door de service tijdens de herkenning, omdat verschillende sprekers worden geïdentificeerd op basis van de opgegeven audio-inhoud.

Tip

U kunt realtime spraak naar tekst proberen in Speech Studio zonder code te registreren of te schrijven. Speech Studio biedt echter nog geen ondersteuning voor diarization.

Vereisten

  • Een Azure-abonnement. U kunt er gratis een maken.
  • Maak een spraakresource in Azure Portal.
  • Haal de spraakresourcesleutel en -regio op. Nadat uw Spraak-resource is geïmplementeerd, selecteert u Ga naar de resource om sleutels weer te geven en te beheren.

De omgeving instellen

De Speech SDK is beschikbaar als een NuGet-pakket en implementeert .NET Standard 2.0. U installeert de Speech SDK verderop in deze handleiding, maar controleer eerst de SDK-installatiehandleiding voor meer vereisten.

Omgevingsvariabelen instellen

U moet uw toepassing verifiëren voor toegang tot Azure AI-services. In dit artikel leest u hoe u omgevingsvariabelen gebruikt om uw referenties op te slaan. Vervolgens hebt u vanuit uw code toegang tot de omgevingsvariabelen om uw toepassing te verifiëren. Gebruik voor productie een veiligere manier om uw referenties op te slaan en te openen.

Belangrijk

We raden Microsoft Entra ID-verificatie aan met beheerde identiteiten voor Azure-resources om te voorkomen dat referenties worden opgeslagen met uw toepassingen die in de cloud worden uitgevoerd.

Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.

Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.

Als u de omgevingsvariabelen voor uw Spraak-resourcesleutel en -regio wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  • Als u de SPEECH_KEY omgevingsvariabele wilt instellen, vervangt u uw sleutel door een van de sleutels voor uw resource.
  • Als u de SPEECH_REGION omgevingsvariabele wilt instellen, vervangt u uw regio door een van de regio's voor uw resource.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Notitie

Als u alleen toegang nodig hebt tot de omgevingsvariabelen in de huidige console, kunt u de omgevingsvariabele instellen in set plaats van setx.

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle programma's opnieuw opstarten die de omgevingsvariabelen moeten lezen, inclusief het consolevenster. Als u Bijvoorbeeld Visual Studio als editor gebruikt, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.

Diarisatie implementeren vanuit bestand met gesprektranscriptie

Volg deze stappen om een consoletoepassing te maken en de Speech SDK te installeren.

  1. Open een opdrachtpromptvenster in de map waarin u het nieuwe project wilt opnemen. Voer deze opdracht uit om een consoletoepassing te maken met de .NET CLI.

    dotnet new console
    

    Met deze opdracht maakt u het Program.cs-bestand in de projectmap.

  2. Installeer de Speech SDK in uw nieuwe project met de .NET CLI.

    dotnet add package Microsoft.CognitiveServices.Speech
    
  3. Vervang de inhoud door Program.cs de volgende code.

    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";
            speechConfig.SetProperty(PropertyId.SpeechServiceResponse_DiarizeIntermediateResults, "true"); 
    
            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} Speaker ID={e.Result.SpeakerId}");
                    };
    
                    conversationTranscriber.Transcribed += (s, e) =>
                    {
                        if (e.Result.Reason == ResultReason.RecognizedSpeech)
                        {
                            Console.WriteLine();
                            Console.WriteLine($"TRANSCRIBED: Text={e.Result.Text} Speaker ID={e.Result.SpeakerId}");
                            Console.WriteLine();
                        }
                        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();
                }
            }
        }
    }
    
  4. Haal het voorbeeldaudiobestand op of gebruik uw eigen .wav bestand. Vervang katiesteve.wav door het pad en de naam van het .wav bestand.

    De toepassing herkent spraak van meerdere deelnemers in het gesprek. Uw audiobestand moet meerdere luidsprekers bevatten.

  5. Als u de taal voor spraakherkenning wilt wijzigen, vervangt u deze door en-US een andere ondersteunde taal. Bijvoorbeeld voor es-ES Spaans (Spanje). De standaardtaal is en-US als u geen taal opgeeft. Zie taalidentificatie voor meer informatie over het identificeren van een van meerdere talen die kunnen worden gesproken.

  6. Voer uw consoletoepassing uit om gesprektranscriptie te starten:

    dotnet run
    

Belangrijk

Zorg ervoor dat u de SPEECH_KEY en SPEECH_REGION omgevingsvariabelen instelt. Als u deze variabelen niet instelt, mislukt het voorbeeld met een foutbericht.

Het getranscribeerde gesprek moet als tekst worden uitgevoerd:

TRANSCRIBING: Text=good morning steve Speaker ID=Unknown
TRANSCRIBING: Text=good morning steve how are Speaker ID=Guest-1
TRANSCRIBING: Text=good morning steve how are you doing today Speaker ID=Guest-1

TRANSCRIBED: Text=Good morning, Steve. How are you doing today? Speaker ID=Guest-1

TRANSCRIBING: Text=good morning katie Speaker ID=Unknown
TRANSCRIBING: Text=good morning katie i hope Speaker ID=Guest-2
TRANSCRIBING: Text=good morning katie i hope you're having a great Speaker ID=Guest-2
TRANSCRIBING: Text=good morning katie i hope you're having a great start to Speaker ID=Guest-2
TRANSCRIBING: Text=good morning katie i hope you're having a great start to your day Speaker ID=Guest-2

TRANSCRIBED: Text=Good morning, Katie. I hope you're having a great start to your day. Speaker ID=Guest-2

TRANSCRIBING: Text=have you tried Speaker ID=Unknown
TRANSCRIBING: Text=have you tried the latest Speaker ID=Unknown
TRANSCRIBING: Text=have you tried the latest real time Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service which Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service which can Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service which can tell you Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service which can tell you who said Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service which can tell you who said what Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service which can tell you who said what in Speaker ID=Guest-1
TRANSCRIBING: 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=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

TRANSCRIBING: Text=not yet Speaker ID=Unknown
TRANSCRIBING: Text=not yet i Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch trans Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization Speaker ID=Guest-2  
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization function Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produc Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces di Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature Speaker ID=Guest-2  
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to di Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to diarize Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to diarize in real Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to diarize in real time Speaker ID=Guest-2

TRANSCRIBED: Text=Not yet. I've been using the batch transcription with diarization functionality, but it produces diarization results after the whole audio is processed. Is the new feature able to diarize in real time? Speaker ID=Guest-2

TRANSCRIBING: Text=absolutely Speaker ID=Unknown
TRANSCRIBING: Text=absolutely i Speaker ID=Unknown
TRANSCRIBING: Text=absolutely i recom Speaker ID=Guest-1
TRANSCRIBING: Text=absolutely i recommend Speaker ID=Guest-1
TRANSCRIBING: Text=absolutely i recommend you give it a try Speaker ID=Guest-1

TRANSCRIBED: Text=Absolutely, I recommend you give it a try. Speaker ID=Guest-1

TRANSCRIBING: Text=that's exc Speaker ID=Unknown
TRANSCRIBING: Text=that's exciting Speaker ID=Unknown
TRANSCRIBING: Text=that's exciting let me try Speaker ID=Guest-2
TRANSCRIBING: Text=that's exciting let me try it right now Speaker ID=Guest-2

TRANSCRIBED: Text=That's exciting. Let me try it right now. Speaker ID=Guest-2

Sprekers worden aangeduid als gast-1, gast-2, enzovoort, afhankelijk van het aantal sprekers in het gesprek.

Notitie

Mogelijk ziet Speaker ID=Unknown u in enkele van de vroege tussenliggende resultaten wanneer de spreker nog niet is geïdentificeerd. Zonder tussenliggende diarisatieresultaten (als u de PropertyId.SpeechServiceResponse_DiarizeIntermediateResults eigenschap niet instelt op 'true'), is de spreker-id altijd 'Onbekend'.

Resources opschonen

U kunt de Azure-portal of Azure CLI (Opdrachtregelinterface) gebruiken om de spraakresource te verwijderen die u hebt gemaakt.

Referentiedocumentatiepakket (NuGet) | Aanvullende voorbeelden op GitHub |

In deze quickstart voert u een toepassing uit voor spraak-naar-teksttranscriptie met realtime-diarisatie. Diarization maakt onderscheid tussen de verschillende sprekers die deelnemen aan het gesprek. De Speech-service biedt informatie over welke spreker een bepaald deel van getranscribeerde spraak sprak.

De sprekergegevens worden opgenomen in het resultaat in het veld Spreker-id. De spreker-id is een algemene id die is toegewezen aan elke gespreksdeelnemer door de service tijdens de herkenning, omdat verschillende sprekers worden geïdentificeerd op basis van de opgegeven audio-inhoud.

Tip

U kunt realtime spraak naar tekst proberen in Speech Studio zonder code te registreren of te schrijven. Speech Studio biedt echter nog geen ondersteuning voor diarization.

Vereisten

  • Een Azure-abonnement. U kunt er gratis een maken.
  • Maak een spraakresource in Azure Portal.
  • Haal de spraakresourcesleutel en -regio op. Nadat uw Spraak-resource is geïmplementeerd, selecteert u Ga naar de resource om sleutels weer te geven en te beheren.

De omgeving instellen

De Speech SDK is beschikbaar als een NuGet-pakket en implementeert .NET Standard 2.0. U installeert de Speech SDK verderop in deze handleiding, maar controleer eerst de SDK-installatiehandleiding voor meer vereisten.

Omgevingsvariabelen instellen

U moet uw toepassing verifiëren voor toegang tot Azure AI-services. In dit artikel leest u hoe u omgevingsvariabelen gebruikt om uw referenties op te slaan. Vervolgens hebt u vanuit uw code toegang tot de omgevingsvariabelen om uw toepassing te verifiëren. Gebruik voor productie een veiligere manier om uw referenties op te slaan en te openen.

Belangrijk

We raden Microsoft Entra ID-verificatie aan met beheerde identiteiten voor Azure-resources om te voorkomen dat referenties worden opgeslagen met uw toepassingen die in de cloud worden uitgevoerd.

Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.

Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.

Als u de omgevingsvariabelen voor uw Spraak-resourcesleutel en -regio wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  • Als u de SPEECH_KEY omgevingsvariabele wilt instellen, vervangt u uw sleutel door een van de sleutels voor uw resource.
  • Als u de SPEECH_REGION omgevingsvariabele wilt instellen, vervangt u uw regio door een van de regio's voor uw resource.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Notitie

Als u alleen toegang nodig hebt tot de omgevingsvariabelen in de huidige console, kunt u de omgevingsvariabele instellen in set plaats van setx.

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle programma's opnieuw opstarten die de omgevingsvariabelen moeten lezen, inclusief het consolevenster. Als u Bijvoorbeeld Visual Studio als editor gebruikt, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.

Diarisatie implementeren vanuit bestand met gesprektranscriptie

Volg deze stappen om een consoletoepassing te maken en de Speech SDK te installeren.

  1. Maak een nieuw C++-consoleproject in Visual Studio Community 2022 met de naam ConversationTranscription.

  2. Selecteer Tools>Nuget Pakketbeheer> Pakketbeheer Console. Voer in de Pakketbeheer Console deze opdracht uit:

    Install-Package Microsoft.CognitiveServices.Speech
    
  3. Vervang de inhoud door ConversationTranscription.cpp de volgende code.

    #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->SetProperty(PropertyId::SpeechServiceResponse_DiarizeIntermediateResults, "true"); 
    
        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;
                std::cout << "Speaker ID=" << e.Result->SpeakerId << std::endl;
            });
    
        conversationTranscriber->Transcribed.Connect([](const ConversationTranscriptionEventArgs& e)
            {
                if (e.Result->Reason == ResultReason::RecognizedSpeech)
                {
                    std::cout << "\n" << "TRANSCRIBED: Text=" << e.Result->Text << std::endl;
                    std::cout << "Speaker ID=" << e.Result->SpeakerId << "\n" << 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
    }
    
  4. Haal het voorbeeldaudiobestand op of gebruik uw eigen .wav bestand. Vervang katiesteve.wav door het pad en de naam van het .wav bestand.

    De toepassing herkent spraak van meerdere deelnemers in het gesprek. Uw audiobestand moet meerdere luidsprekers bevatten.

  5. Als u de taal voor spraakherkenning wilt wijzigen, vervangt u deze door en-US een andere ondersteunde taal. Bijvoorbeeld voor es-ES Spaans (Spanje). De standaardtaal is en-US als u geen taal opgeeft. Zie taalidentificatie voor meer informatie over het identificeren van een van meerdere talen die kunnen worden gesproken.

  6. Bouw en voer uw toepassing uit om gesprektranscriptie te starten:

    Belangrijk

    Zorg ervoor dat u de SPEECH_KEY en SPEECH_REGION omgevingsvariabelen instelt. Als u deze variabelen niet instelt, mislukt het voorbeeld met een foutbericht.

Het getranscribeerde gesprek moet als tekst worden uitgevoerd:

TRANSCRIBING:good morning
Speaker ID=Unknown
TRANSCRIBING:good morning steve
Speaker ID=Unknown
TRANSCRIBING:good morning steve how are you doing
Speaker ID=Guest-1
TRANSCRIBING:good morning steve how are you doing today
Speaker ID=Guest-1

TRANSCRIBED: Text=Good morning, Steve. How are you doing today?
Speaker ID=Guest-1

TRANSCRIBING:good
Speaker ID=Unknown
TRANSCRIBING:good morning
Speaker ID=Unknown
TRANSCRIBING:good morning kat
Speaker ID=Unknown
TRANSCRIBING:good morning katie i hope you're having a
Speaker ID=Guest-2
TRANSCRIBING:good morning katie i hope you're having a great start to your day
Speaker ID=Guest-2

TRANSCRIBED: Text=Good morning, Katie. I hope you're having a great start to your day.
Speaker ID=Guest-2

TRANSCRIBING:have you
Speaker ID=Unknown
TRANSCRIBING:have you tried
Speaker ID=Unknown
TRANSCRIBING:have you tried the latest
Speaker ID=Unknown
TRANSCRIBING:have you tried the latest real
Speaker ID=Guest-1
TRANSCRIBING:have you tried the latest real time
Speaker ID=Guest-1
TRANSCRIBING:have you tried the latest real time diarization
Speaker ID=Guest-1
TRANSCRIBING:have you tried the latest real time diarization in
Speaker ID=Guest-1
TRANSCRIBING:have you tried the latest real time diarization in microsoft
Speaker ID=Guest-1
TRANSCRIBING:have you tried the latest real time diarization in microsoft speech
Speaker ID=Guest-1
TRANSCRIBING:have you tried the latest real time diarization in microsoft speech service
Speaker ID=Guest-1
TRANSCRIBING:have you tried the latest real time diarization in microsoft speech service which
Speaker ID=Guest-1
TRANSCRIBING:have you tried the latest real time diarization in microsoft speech service which can
Speaker ID=Guest-1
TRANSCRIBING:have you tried the latest real time diarization in microsoft speech service which can tell you
Speaker ID=Guest-1
TRANSCRIBING:have you tried the latest real time diarization in microsoft speech service which can tell you who said
Speaker ID=Guest-1
TRANSCRIBING:have you tried the latest real time diarization in microsoft speech service which can tell you who said what
Speaker ID=Guest-1
TRANSCRIBING:have you tried the latest real time diarization in microsoft speech service which can tell you who said what in
Speaker ID=Guest-1
TRANSCRIBING: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=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

TRANSCRIBING:not yet
Speaker ID=Unknown
TRANSCRIBING:not yet i
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch trans
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization function
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces di
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to di
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to diarize
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to diarize in real
Speaker ID=Guest-2
TRANSCRIBING:not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to diarize in real time
Speaker ID=Guest-2

TRANSCRIBED: Text=Not yet. I've been using the batch transcription with diarization functionality, but it produces diarization results after the whole audio is processed. Is the new feature able to diarize in real time?
Speaker ID=Guest-2

TRANSCRIBING:absolutely
Speaker ID=Unknown
TRANSCRIBING:absolutely i
Speaker ID=Unknown
TRANSCRIBING:absolutely i recom
Speaker ID=Guest-1
TRANSCRIBING:absolutely i recommend
Speaker ID=Guest-1
TRANSCRIBING:absolutely i recommend you
Speaker ID=Guest-1
TRANSCRIBING:absolutely i recommend you give it a try
Speaker ID=Guest-1

TRANSCRIBED: Text=Absolutely, I recommend you give it a try.
Speaker ID=Guest-1

TRANSCRIBING:that's exc
Speaker ID=Unknown
TRANSCRIBING:that's exciting
Speaker ID=Unknown
TRANSCRIBING:that's exciting let me
Speaker ID=Guest-2
TRANSCRIBING:that's exciting let me try
Speaker ID=Guest-2
TRANSCRIBING:that's exciting let me try it right now
Speaker ID=Guest-2

TRANSCRIBED: Text=That's exciting. Let me try it right now.
Speaker ID=Guest-2

Sprekers worden aangeduid als gast-1, gast-2, enzovoort, afhankelijk van het aantal sprekers in het gesprek.

Notitie

Mogelijk ziet Speaker ID=Unknown u in enkele van de vroege tussenliggende resultaten wanneer de spreker nog niet is geïdentificeerd. Zonder tussenliggende diarisatieresultaten (als u de PropertyId::SpeechServiceResponse_DiarizeIntermediateResults eigenschap niet instelt op 'true'), is de spreker-id altijd 'Onbekend'.

Resources opschonen

U kunt de Azure-portal of Azure CLI (Opdrachtregelinterface) gebruiken om de spraakresource te verwijderen die u hebt gemaakt.

Referentiedocumentatiepakket (Go) | Aanvullende voorbeelden op GitHub |

De Speech SDK voor de Programmeertaal Go biedt geen ondersteuning voor transcriptie van gesprekken. Selecteer een andere programmeertaal of de Go-verwijzing en voorbeelden die zijn gekoppeld aan het begin van dit artikel.

Referentiedocumentatie | Aanvullende voorbeelden op GitHub

In deze quickstart voert u een toepassing uit voor spraak-naar-teksttranscriptie met realtime-diarisatie. Diarization maakt onderscheid tussen de verschillende sprekers die deelnemen aan het gesprek. De Speech-service biedt informatie over welke spreker een bepaald deel van getranscribeerde spraak sprak.

De sprekergegevens worden opgenomen in het resultaat in het veld Spreker-id. De spreker-id is een algemene id die is toegewezen aan elke gespreksdeelnemer door de service tijdens de herkenning, omdat verschillende sprekers worden geïdentificeerd op basis van de opgegeven audio-inhoud.

Tip

U kunt realtime spraak naar tekst proberen in Speech Studio zonder code te registreren of te schrijven. Speech Studio biedt echter nog geen ondersteuning voor diarization.

Vereisten

  • Een Azure-abonnement. U kunt er gratis een maken.
  • Maak een spraakresource in Azure Portal.
  • Haal de spraakresourcesleutel en -regio op. Nadat uw Spraak-resource is geïmplementeerd, selecteert u Ga naar de resource om sleutels weer te geven en te beheren.

De omgeving instellen

Installeer de Speech SDK om uw omgeving in te stellen. Het voorbeeld in deze quickstart werkt met de Java Runtime.

  1. Installeer Apache Maven. Voer vervolgens uit mvn -v om de installatie te bevestigen.

  2. Maak een nieuw pom.xml bestand in de hoofdmap van uw project en kopieer het volgende erin:

    <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.42.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Installeer de Speech SDK en afhankelijkheden.

    mvn clean dependency:copy-dependencies
    

Omgevingsvariabelen instellen

U moet uw toepassing verifiëren voor toegang tot Azure AI-services. In dit artikel leest u hoe u omgevingsvariabelen gebruikt om uw referenties op te slaan. Vervolgens hebt u vanuit uw code toegang tot de omgevingsvariabelen om uw toepassing te verifiëren. Gebruik voor productie een veiligere manier om uw referenties op te slaan en te openen.

Belangrijk

We raden Microsoft Entra ID-verificatie aan met beheerde identiteiten voor Azure-resources om te voorkomen dat referenties worden opgeslagen met uw toepassingen die in de cloud worden uitgevoerd.

Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.

Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.

Als u de omgevingsvariabelen voor uw Spraak-resourcesleutel en -regio wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  • Als u de SPEECH_KEY omgevingsvariabele wilt instellen, vervangt u uw sleutel door een van de sleutels voor uw resource.
  • Als u de SPEECH_REGION omgevingsvariabele wilt instellen, vervangt u uw regio door een van de regio's voor uw resource.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Notitie

Als u alleen toegang nodig hebt tot de omgevingsvariabelen in de huidige console, kunt u de omgevingsvariabele instellen in set plaats van setx.

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle programma's opnieuw opstarten die de omgevingsvariabelen moeten lezen, inclusief het consolevenster. Als u Bijvoorbeeld Visual Studio als editor gebruikt, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.

Diarisatie implementeren vanuit bestand met gesprektranscriptie

Volg deze stappen om een consoletoepassing te maken voor gesprektranscriptie.

  1. Maak een nieuw bestand met de naam ConversationTranscription.java in dezelfde hoofdmap van het project.

  2. Kopieer de volgende code naar 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");
            speechConfig.setProperty(PropertyId.SpeechServiceResponse_DiarizeIntermediateResults, "true");
    
            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() + " Speaker ID=" + e.getResult().getSpeakerId() );
                });
    
                conversationTranscriber.transcribed.addEventListener((s, e) -> {
                    if (e.getResult().getReason() == ResultReason.RecognizedSpeech) {
                        System.out.println();
                        System.out.println("TRANSCRIBED: Text=" + e.getResult().getText() + " Speaker ID=" + e.getResult().getSpeakerId() );
                        System.out.println();
                    }
                    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);
        }
    }
    
  3. Haal het voorbeeldaudiobestand op of gebruik uw eigen .wav bestand. Vervang katiesteve.wav door het pad en de naam van het .wav bestand.

    De toepassing herkent spraak van meerdere deelnemers in het gesprek. Uw audiobestand moet meerdere luidsprekers bevatten.

  4. Als u de taal voor spraakherkenning wilt wijzigen, vervangt u deze door en-US een andere ondersteunde taal. Bijvoorbeeld voor es-ES Spaans (Spanje). De standaardtaal is en-US als u geen taal opgeeft. Zie taalidentificatie voor meer informatie over het identificeren van een van meerdere talen die kunnen worden gesproken.

  5. Voer de nieuwe consoletoepassing uit om gesprektranscriptie te starten:

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

Belangrijk

Zorg ervoor dat u de SPEECH_KEY en SPEECH_REGION omgevingsvariabelen instelt. Als u deze variabelen niet instelt, mislukt het voorbeeld met een foutbericht.

Het getranscribeerde gesprek moet als tekst worden uitgevoerd:

TRANSCRIBING: Text=good morning Speaker ID=Unknown
TRANSCRIBING: Text=good morning steve Speaker ID=Unknown
TRANSCRIBING: Text=good morning steve how Speaker ID=Guest-1
TRANSCRIBING: Text=good morning steve how are you doing Speaker ID=Guest-1
TRANSCRIBING: Text=good morning steve how are you doing today Speaker ID=Guest-1

TRANSCRIBED: Text=Good morning, Steve. How are you doing today? Speaker ID=Guest-1

TRANSCRIBING: Text=good morning katie i hope Speaker ID=Guest-2
TRANSCRIBING: Text=good morning katie i hope you're having a Speaker ID=Guest-2
TRANSCRIBING: Text=good morning katie i hope you're having a great Speaker ID=Guest-2
TRANSCRIBING: Text=good morning katie i hope you're having a great start to Speaker ID=Guest-2
TRANSCRIBING: Text=good morning katie i hope you're having a great start to your day Speaker ID=Guest-2

TRANSCRIBED: Text=Good morning, Katie. I hope you're having a great start to your day. Speaker ID=Guest-2

TRANSCRIBING: Text=have you tried Speaker ID=Unknown
TRANSCRIBING: Text=have you tried the latest Speaker ID=Unknown
TRANSCRIBING: Text=have you tried the latest real Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service which Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service which can Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service which can tell you Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service which can tell you who said Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service which can tell you who said what Speaker ID=Guest-1
TRANSCRIBING: Text=have you tried the latest real time diarization in microsoft speech service which can tell you who said what in Speaker ID=Guest-1
TRANSCRIBING: 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=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

TRANSCRIBING: Text=not yet Speaker ID=Unknown
TRANSCRIBING: Text=not yet i Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch trans Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization function Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces di Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to di Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to diarize in real Speaker ID=Guest-2
TRANSCRIBING: Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to diarize in real time Speaker ID=Guest-2

TRANSCRIBED: Text=Not yet. I've been using the batch transcription with diarization functionality, but it produces diarization results after the whole audio is processed. Is the new feature able to diarize in real time? Speaker ID=Guest-2

TRANSCRIBING: Text=absolutely Speaker ID=Unknown
TRANSCRIBING: Text=absolutely i recom Speaker ID=Guest-1
TRANSCRIBING: Text=absolutely i recommend Speaker ID=Guest-1
TRANSCRIBING: Text=absolutely i recommend you Speaker ID=Guest-1
TRANSCRIBING: Text=absolutely i recommend you give it a try Speaker ID=Guest-1

TRANSCRIBED: Text=Absolutely, I recommend you give it a try. Speaker ID=Guest-1

TRANSCRIBING: Text=that's exc Speaker ID=Unknown
TRANSCRIBING: Text=that's exciting Speaker ID=Unknown
TRANSCRIBING: Text=that's exciting let me try Speaker ID=Guest-2
TRANSCRIBING: Text=that's exciting let me try it right now Speaker ID=Guest-2

TRANSCRIBED: Text=That's exciting. Let me try it right now. Speaker ID=Guest-2

Sprekers worden aangeduid als gast-1, gast-2, enzovoort, afhankelijk van het aantal sprekers in het gesprek.

Notitie

Mogelijk ziet Speaker ID=Unknown u in enkele van de vroege tussenliggende resultaten wanneer de spreker nog niet is geïdentificeerd. Zonder tussenliggende diarisatieresultaten (als u de PropertyId.SpeechServiceResponse_DiarizeIntermediateResults eigenschap niet instelt op 'true'), is de spreker-id altijd 'Onbekend'.

Resources opschonen

U kunt de Azure-portal of Azure CLI (Opdrachtregelinterface) gebruiken om de spraakresource te verwijderen die u hebt gemaakt.

Referentiedocumentatiepakket (npm) | Aanvullende voorbeelden in broncode van GitHub Library | |

In deze quickstart voert u een toepassing uit voor spraak-naar-teksttranscriptie met realtime-diarisatie. Diarization maakt onderscheid tussen de verschillende sprekers die deelnemen aan het gesprek. De Speech-service biedt informatie over welke spreker een bepaald deel van getranscribeerde spraak sprak.

De sprekergegevens worden opgenomen in het resultaat in het veld Spreker-id. De spreker-id is een algemene id die is toegewezen aan elke gespreksdeelnemer door de service tijdens de herkenning, omdat verschillende sprekers worden geïdentificeerd op basis van de opgegeven audio-inhoud.

Tip

U kunt realtime spraak naar tekst proberen in Speech Studio zonder code te registreren of te schrijven. Speech Studio biedt echter nog geen ondersteuning voor diarization.

Vereisten

  • Een Azure-abonnement. U kunt er gratis een maken.
  • Maak een spraakresource in Azure Portal.
  • Haal de spraakresourcesleutel en -regio op. Nadat uw Spraak-resource is geïmplementeerd, selecteert u Ga naar de resource om sleutels weer te geven en te beheren.

De omgeving instellen

Installeer de Speech SDK voor JavaScript om uw omgeving in te stellen. Als u alleen de pakketnaam wilt installeren, voert u het volgende uit npm install microsoft-cognitiveservices-speech-sdk. Zie de SDK-installatiehandleiding voor begeleide installatie-instructies.

Omgevingsvariabelen instellen

U moet uw toepassing verifiëren voor toegang tot Azure AI-services. In dit artikel leest u hoe u omgevingsvariabelen gebruikt om uw referenties op te slaan. Vervolgens hebt u vanuit uw code toegang tot de omgevingsvariabelen om uw toepassing te verifiëren. Gebruik voor productie een veiligere manier om uw referenties op te slaan en te openen.

Belangrijk

We raden Microsoft Entra ID-verificatie aan met beheerde identiteiten voor Azure-resources om te voorkomen dat referenties worden opgeslagen met uw toepassingen die in de cloud worden uitgevoerd.

Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.

Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.

Als u de omgevingsvariabelen voor uw Spraak-resourcesleutel en -regio wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  • Als u de SPEECH_KEY omgevingsvariabele wilt instellen, vervangt u uw sleutel door een van de sleutels voor uw resource.
  • Als u de SPEECH_REGION omgevingsvariabele wilt instellen, vervangt u uw regio door een van de regio's voor uw resource.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Notitie

Als u alleen toegang nodig hebt tot de omgevingsvariabelen in de huidige console, kunt u de omgevingsvariabele instellen in set plaats van setx.

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle programma's opnieuw opstarten die de omgevingsvariabelen moeten lezen, inclusief het consolevenster. Als u Bijvoorbeeld Visual Studio als editor gebruikt, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.

Diarisatie implementeren vanuit bestand met gesprektranscriptie

Volg deze stappen om een nieuwe consoletoepassing te maken voor gesprektranscriptie.

  1. Open een opdrachtpromptvenster waarin u het nieuwe project wilt opnemen en maak een nieuw bestand met de naam ConversationTranscription.js.

  2. Installeer de Speech SDK voor JavaScript:

    npm install microsoft-cognitiveservices-speech-sdk
    
  3. Kopieer de volgende code naar 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();
    
  4. Haal het voorbeeldaudiobestand op of gebruik uw eigen .wav bestand. Vervang katiesteve.wav door het pad en de naam van het .wav bestand.

    De toepassing herkent spraak van meerdere deelnemers in het gesprek. Uw audiobestand moet meerdere luidsprekers bevatten.

  5. Als u de taal voor spraakherkenning wilt wijzigen, vervangt u deze door en-US een andere ondersteunde taal. Bijvoorbeeld voor es-ES Spaans (Spanje). De standaardtaal is en-US als u geen taal opgeeft. Zie taalidentificatie voor meer informatie over het identificeren van een van meerdere talen die kunnen worden gesproken.

  6. Voer de nieuwe consoletoepassing uit om spraakherkenning vanuit een bestand te starten:

    node.exe ConversationTranscription.js
    

Belangrijk

Zorg ervoor dat u de SPEECH_KEY en SPEECH_REGION omgevingsvariabelen instelt. Als u deze variabelen niet instelt, mislukt het voorbeeld met een foutbericht.

Het getranscribeerde gesprek moet als tekst worden uitgevoerd:

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

Sprekers worden aangeduid als gast-1, gast-2, enzovoort, afhankelijk van het aantal sprekers in het gesprek.

Resources opschonen

U kunt de Azure-portal of Azure CLI (Opdrachtregelinterface) gebruiken om de spraakresource te verwijderen die u hebt gemaakt.

Referentiedocumentatiepakket (download) | Aanvullende voorbeelden op GitHub |

De Speech SDK voor Objective-C biedt ondersteuning voor gesprektranscriptie, maar we hebben hier nog geen handleiding opgenomen. Selecteer een andere programmeertaal om aan de slag te gaan en meer te weten te komen over de concepten, of bekijk de Objective-C-verwijzing en voorbeelden die zijn gekoppeld aan het begin van dit artikel.

Referentiedocumentatiepakket (download) | Aanvullende voorbeelden op GitHub |

De Speech SDK voor Swift biedt ondersteuning voor gesprektranscriptie, maar we hebben hier nog geen handleiding opgenomen. Selecteer een andere programmeertaal om aan de slag te gaan en meer te weten te komen over de concepten, of bekijk de Swift-verwijzing en voorbeelden die zijn gekoppeld aan het begin van dit artikel.

Referentiedocumentatiepakket (PyPi) | Aanvullende voorbeelden op GitHub |

In deze quickstart voert u een toepassing uit voor spraak-naar-teksttranscriptie met realtime-diarisatie. Diarization maakt onderscheid tussen de verschillende sprekers die deelnemen aan het gesprek. De Speech-service biedt informatie over welke spreker een bepaald deel van getranscribeerde spraak sprak.

De sprekergegevens worden opgenomen in het resultaat in het veld Spreker-id. De spreker-id is een algemene id die is toegewezen aan elke gespreksdeelnemer door de service tijdens de herkenning, omdat verschillende sprekers worden geïdentificeerd op basis van de opgegeven audio-inhoud.

Tip

U kunt realtime spraak naar tekst proberen in Speech Studio zonder code te registreren of te schrijven. Speech Studio biedt echter nog geen ondersteuning voor diarization.

Vereisten

  • Een Azure-abonnement. U kunt er gratis een maken.
  • Maak een spraakresource in Azure Portal.
  • Haal de spraakresourcesleutel en -regio op. Nadat uw Spraak-resource is geïmplementeerd, selecteert u Ga naar de resource om sleutels weer te geven en te beheren.

De omgeving instellen

De Speech SDK voor Python is beschikbaar als een PyPI-module (Python Package Index). De Speech SDK voor Python is compatibel met Windows, Linux en macOS.

Installeer een versie van Python vanaf 3.7 of hoger. Controleer eerst de SDK-installatiehandleiding voor meer vereisten.

Omgevingsvariabelen instellen

U moet uw toepassing verifiëren voor toegang tot Azure AI-services. In dit artikel leest u hoe u omgevingsvariabelen gebruikt om uw referenties op te slaan. Vervolgens hebt u vanuit uw code toegang tot de omgevingsvariabelen om uw toepassing te verifiëren. Gebruik voor productie een veiligere manier om uw referenties op te slaan en te openen.

Belangrijk

We raden Microsoft Entra ID-verificatie aan met beheerde identiteiten voor Azure-resources om te voorkomen dat referenties worden opgeslagen met uw toepassingen die in de cloud worden uitgevoerd.

Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.

Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.

Als u de omgevingsvariabelen voor uw Spraak-resourcesleutel en -regio wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  • Als u de SPEECH_KEY omgevingsvariabele wilt instellen, vervangt u uw sleutel door een van de sleutels voor uw resource.
  • Als u de SPEECH_REGION omgevingsvariabele wilt instellen, vervangt u uw regio door een van de regio's voor uw resource.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Notitie

Als u alleen toegang nodig hebt tot de omgevingsvariabelen in de huidige console, kunt u de omgevingsvariabele instellen in set plaats van setx.

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle programma's opnieuw opstarten die de omgevingsvariabelen moeten lezen, inclusief het consolevenster. Als u Bijvoorbeeld Visual Studio als editor gebruikt, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.

Diarisatie implementeren vanuit bestand met gesprektranscriptie

Volg deze stappen om een nieuwe consoletoepassing te maken.

  1. Open een opdrachtpromptvenster waarin u het nieuwe project wilt opnemen en maak een nieuw bestand met de naam conversation_transcription.py.

  2. Voer deze opdracht uit om de Speech SDK te installeren:

    pip install azure-cognitiveservices-speech
    
  3. Kopieer de volgende code naar 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('\nTRANSCRIBED:')
        if evt.result.reason == speechsdk.ResultReason.RecognizedSpeech:
            print('\tText={}'.format(evt.result.text))
            print('\tSpeaker ID={}\n'.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_transcribing_cb(evt: speechsdk.SpeechRecognitionEventArgs):
        print('TRANSCRIBING:')
        print('\tText={}'.format(evt.result.text))
        print('\tSpeaker ID={}'.format(evt.result.speaker_id))
    
    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"
        speech_config.set_property(property_id=speechsdk.PropertyId.SpeechServiceResponse_DiarizeIntermediateResults, value='true')
    
        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.transcribing.connect(conversation_transcriber_transcribing_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))
    
  4. Haal het voorbeeldaudiobestand op of gebruik uw eigen .wav bestand. Vervang katiesteve.wav door het pad en de naam van het .wav bestand.

    De toepassing herkent spraak van meerdere deelnemers in het gesprek. Uw audiobestand moet meerdere luidsprekers bevatten.

  5. Als u de taal voor spraakherkenning wilt wijzigen, vervangt u deze door en-US een andere ondersteunde taal. Bijvoorbeeld voor es-ES Spaans (Spanje). De standaardtaal is en-US als u geen taal opgeeft. Zie taalidentificatie voor meer informatie over het identificeren van een van meerdere talen die kunnen worden gesproken.

  6. Voer de nieuwe consoletoepassing uit om gesprektranscriptie te starten:

    python conversation_transcription.py
    

Belangrijk

Zorg ervoor dat u de SPEECH_KEY en SPEECH_REGION omgevingsvariabelen instelt. Als u deze variabelen niet instelt, mislukt het voorbeeld met een foutbericht.

Het getranscribeerde gesprek moet als tekst worden uitgevoerd:

TRANSCRIBING:
        Text=good morning
        Speaker ID=Unknown
TRANSCRIBING:
        Text=good morning steve
        Speaker ID=Unknown
TRANSCRIBING:
        Text=good morning steve how are
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=good morning steve how are you doing today
        Speaker ID=Guest-1

TRANSCRIBED:
        Text=Good morning, Steve. How are you doing today?
        Speaker ID=Guest-1

TRANSCRIBING:
        Text=good morning katie
        Speaker ID=Unknown
TRANSCRIBING:
        Text=good morning katie i hope you're having a
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=good morning katie i hope you're having a great start to
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=good morning katie i hope you're having a great start to your day
        Speaker ID=Guest-2

TRANSCRIBED:
        Text=Good morning, Katie. I hope you're having a great start to your day.
        Speaker ID=Guest-2

TRANSCRIBING:
        Text=have you
        Speaker ID=Unknown
TRANSCRIBING:
        Text=have you tried
        Speaker ID=Unknown
TRANSCRIBING:
        Text=have you tried the latest
        Speaker ID=Unknown
TRANSCRIBING:
        Text=have you tried the latest real
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=have you tried the latest real time
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=have you tried the latest real time diarization
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=have you tried the latest real time diarization in
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=have you tried the latest real time diarization in microsoft
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=have you tried the latest real time diarization in microsoft speech
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=have you tried the latest real time diarization in microsoft speech service
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=have you tried the latest real time diarization in microsoft speech service which
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=have you tried the latest real time diarization in microsoft speech service which can
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=have you tried the latest real time diarization in microsoft speech service which can tell you
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=have you tried the latest real time diarization in microsoft speech service which can tell you who said        
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=have you tried the latest real time diarization in microsoft speech service which can tell you who said what   
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=have you tried the latest real time diarization in microsoft speech service which can tell you who said what in
        Speaker ID=Guest-1
TRANSCRIBING:
        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=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

TRANSCRIBING:
        Text=not yet
        Speaker ID=Unknown
TRANSCRIBING:
        Text=not yet i
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch trans
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization function
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces di
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization     
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to di
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to diarize in real
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=not yet i've been using the batch transcription with diarization functionality but it produces diarization results after the whole audio is processed is the new feature able to diarize in real time
        Speaker ID=Guest-2

TRANSCRIBED:
        Text=Not yet. I've been using the batch transcription with diarization functionality, but it produces diarization results after the whole audio is processed. Is the new feature able to diarize in real time?
        Speaker ID=Guest-2

TRANSCRIBING:
        Text=absolutely
        Speaker ID=Unknown
TRANSCRIBING:
        Text=absolutely i
        Speaker ID=Unknown
TRANSCRIBING:
        Text=absolutely i recom
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=absolutely i recommend
        Speaker ID=Guest-1
TRANSCRIBING:
        Text=absolutely i recommend you give it a try
        Speaker ID=Guest-1

TRANSCRIBED:
        Text=Absolutely, I recommend you give it a try.
        Speaker ID=Guest-1

TRANSCRIBING:
        Text=that's exc
        Speaker ID=Unknown
TRANSCRIBING:
        Text=that's exciting
        Speaker ID=Unknown
TRANSCRIBING:
        Text=that's exciting let me
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=that's exciting let me try
        Speaker ID=Guest-2
TRANSCRIBING:
        Text=that's exciting let me try it right now
        Speaker ID=Guest-2

TRANSCRIBED:
        Text=That's exciting. Let me try it right now.
        Speaker ID=Guest-2

Sprekers worden aangeduid als gast-1, gast-2, enzovoort, afhankelijk van het aantal sprekers in het gesprek.

Notitie

Mogelijk ziet Speaker ID=Unknown u in enkele van de vroege tussenliggende resultaten wanneer de spreker nog niet is geïdentificeerd. Zonder tussenliggende diarisatieresultaten (als u de PropertyId.SpeechServiceResponse_DiarizeIntermediateResults eigenschap niet instelt op 'true'), is de spreker-id altijd 'Onbekend'.

Resources opschonen

U kunt de Azure-portal of Azure CLI (Opdrachtregelinterface) gebruiken om de spraakresource te verwijderen die u hebt gemaakt.

Spraak-naar-tekst-REST API-verwijzing Speech to text REST API voor korte audioverwijzing | Aanvullende voorbeelden op GitHub |

De REST API biedt geen ondersteuning voor gesprektranscriptie. Selecteer een andere programmeertaal of hulpprogramma bovenaan deze pagina.

De Speech CLI biedt geen ondersteuning voor gesprektranscriptie. Selecteer een andere programmeertaal of hulpprogramma bovenaan deze pagina.

Volgende stap