Freigeben über


SpeechRecognizer.RecognizeOnceAsync Methode

Definition

Startet die Spracherkennung 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 SpeechRecognitionResult

Beispiele

Im folgenden Beispiel wird eine Spracherkennung erstellt, und dann wird das Erkennungsergebnis abgerufen und ausgegeben.

public async Task SpeechSingleShotRecognitionAsync()
{
    // 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");

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

        // Starts speech 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 recognizer.RecognizeOnceAsync();

        // Checks result.
        if (result.Reason == ResultReason.RecognizedSpeech)
        {
            Console.WriteLine($"RECOGNIZED: Text={result.Text}");
        }
        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 durch das Zuhören auf Stille am Ende oder bis zum Ablauf eines Timeoutzeitraums bestimmt. 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 von Einzelschüssen wie Befehl oder Abfrage. Verwenden Sie für die Erkennung von mehrfachen Äußerungen mit langer Laufzeit stattdessen **StartContinuousRecognitionAsync**.

Siehe auch: Erste Schritte mit Spracherkennung

Gilt für: