Share via


SourceLanguageRecognizer.RecognizeOnceAsync Methode

Definition

Startet die Quellspracherkennung als asynchronen Vorgang.

public System.Threading.Tasks.Task<Microsoft.CognitiveServices.Speech.SpeechRecognitionResult> RecognizeOnceAsync ();
member this.RecognizeOnceAsync : unit -> System.Threading.Tasks.Task<Microsoft.CognitiveServices.Speech.SpeechRecognitionResult>
Public Function RecognizeOnceAsync () As Task(Of SpeechRecognitionResult)

Gibt zurück

Eine Aufgabe, die den Erkennungsvorgang darstellt. Der Task gibt den Wert von zurück. SpeechRecognitionResult

Beispiele

Im folgenden Beispiel wird eine Quellspracherkennung erstellt und anschließend das Erkennungsergebnis abgerufen und ausgegeben.

public async Task SingleLanguageIdRecognitionAsync()
{
    // Creates an instance of a speech config with specified subscription key and region.
    // Replace with your own subscription key and service region (e.g., "westus").
    var config = SpeechConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion");
    config.SetProperty(PropertyId.SpeechServiceConnection_SingleLanguageIdPriority, "Latency");

    // Creates a speech recognizer using microphone as audio input. Default language: en-us
    using (var sourceLanguageRecognizer = new SourceLanguageRecognizer(config))
    {
        Console.WriteLine("Say something...");

        // Starts source language recognition, and returns after a single utterance is recognized. 
        // The end of a single utterance is determined by listening for silence at the end 
        // or until a timeout period has elapsed.  The task returns the
        // recognition text as result.
        //
        // Note: Since RecognizeOnceAsync() returns only a single utterance, 
        // it is suitable only for single shot recognition like command or query.
        // For long-running multi-utterance recognition, 
        // use StartContinuousRecognitionAsync() instead.

        var result = await sourceLanguageRecognizer.RecognizeOnceAsync();

        // Checks result.
        if (result.Reason == ResultReason.RecognizedSpeech)
        {
            var lidResult = AutoDetectSourceLanguageResult.FromResult(e.Result);
            Console.WriteLine($"RECOGNIZED: Language={lidResult.Language}");
        }
        else if (result.Reason == ResultReason.NoMatch)
        {
            Console.WriteLine($"NOMATCH: Speech could not be recognized.");
        }
        else if (result.Reason == ResultReason.Canceled)
        {
            var cancellation = CancellationDetails.FromResult(result);
            Console.WriteLine($"CANCELED: Reason={cancellation.Reason}");

            if (cancellation.Reason == CancellationReason.Error)
            {
                Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}");
                Console.WriteLine($"CANCELED: ErrorDetails={cancellation.ErrorDetails}");
                Console.WriteLine($"CANCELED: Did you update the subscription info?");
            }
        }
    }
}

Hinweise

Das Ende einer einzelnen Äußerung wird bestimmt, indem am Ende auf Stille lauscht oder bis ein Timeoutzeitraum abgelaufen ist. Der Task gibt die erkannte Sprache in **SpeechRecognitionResult.Text** zurück.

Sie können **StopContinuousRecognitionAsync** aufrufen, um die Erkennung zu beenden, bevor ein Ausdruck erkannt wurde.

Da diese Methode nur eine einzelne Äußerung zurückgibt, eignet sie sich nur für die Erkennung einzelner Aufnahmen wie Befehl oder Abfrage. Verwenden Sie für die Erkennung von lang andauernden Mehrfachäußerungen stattdessen **StartContinuousRecognitionAsync**.

Siehe auch: Automatische Spracherkennung für Sprache in Text

Gilt für: