Compartir a través de


SourceLanguageRecognizer.RecognizeOnceAsync Método

Definición

Inicia el reconocimiento del idioma de origen como una operación asincrónica.

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)

Devoluciones

Tarea que representa la operación de reconocimiento. La tarea devuelve un valor de SpeechRecognitionResult

Ejemplos

En el ejemplo siguiente se crea un reconocedor de lenguaje de origen y, a continuación, se obtiene e imprime el resultado del reconocimiento.

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?");
            }
        }
    }
}

Comentarios

El final de una sola expresión se determina escuchando silencio al final o hasta que haya transcurrido un período de tiempo de espera. La tarea devuelve la voz reconocida en **SpeechRecognitionResult.Text**.

Puede llamar a **StopContinuousRecognitionAsync** para detener el reconocimiento antes de que se haya reconocido una frase.

Dado que este método devuelve solo una sola expresión, solo es adecuada para el reconocimiento de captura única, como el comando o la consulta. Para el reconocimiento de varias expresiones de ejecución prolongada, use **StartContinuousRecognitionAsync** en su lugar.

Consulte también: Detección automática de idioma para la conversión de voz en texto

Se aplica a