Freigeben über


SpeechRecognitionEngine.Recognize Methode

Definition

Startet einen synchronen Spracherkennungsvorgang.

Überlädt

Recognize()

Führt einen synchronen Spracherkennungsvorgang aus.

Recognize(TimeSpan)

Führt einen synchronen Spracherkennungsvorgang mit einem angegebenen ursprünglichen Ruhetimeout aus.

Hinweise

Diese Methoden führen einen einzelnen synchronen Erkennungsvorgang aus. Die Erkennung führt diesen Vorgang für die geladenen und aktivierten Spracherkennungsgrammatiken aus.

Während eines Aufrufs dieser Methode kann die Erkennung die folgenden Ereignisse auslösen:

  • SpeechDetected. Wird ausgelöst, wenn die Erkennung Eingaben erkennt, die sie als Sprache identifizieren kann.

  • SpeechHypothesized. Wird ausgelöst, wenn die Eingabe eine mehrdeutige Übereinstimmung mit einer der aktiven Grammatiken erzeugt.

  • SpeechRecognitionRejected oder SpeechRecognized. Wird ausgelöst, wenn die Erkennung einen Erkennungsvorgang abgeschlossen hat.

Die Erkennung löst das RecognizeCompleted Ereignis nicht aus, wenn eine der Recognize Methoden verwendet wird.

Die Recognize Methoden geben ein RecognitionResult -Objekt zurück, oder null , wenn der Vorgang nicht erfolgreich ist oder die Erkennung nicht aktiviert ist.

Ein synchroner Erkennungsvorgang kann aus den folgenden Gründen fehlschlagen:

  • Die Spracherkennung wird erst erkannt, wenn die Timeoutintervalle für die BabbleTimeout Eigenschaften oder InitialSilenceTimeout oder für den initialSilenceTimeout Parameter der Recognize -Methode ablaufen.

  • Die Erkennungs-Engine erkennt Sprache, findet jedoch keine Übereinstimmungen in den geladenen und aktivierten Grammar Objekten.

Verwenden Sie die Eigenschaften , InitialSilenceTimeoutEndSilenceTimeoutEndSilenceTimeoutAmbiguous , und, um zu ändern, wie die Erkennung die Zeitsteuerung von Sprache oder Stille in Bezug auf die BabbleTimeoutErkennung behandelt.

Der SpeechRecognitionEngine muss mindestens ein Grammar Objekt geladen haben, bevor die Erkennung ausgeführt wird. Verwenden Sie zum Laden einer Spracherkennungsgrammatik die - oder LoadGrammarAsync -LoadGrammarMethode.

Verwenden Sie eine der RecognizeAsync Methoden, um eine asynchrone Erkennung durchzuführen.

Recognize()

Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs

Führt einen synchronen Spracherkennungsvorgang aus.

public:
 System::Speech::Recognition::RecognitionResult ^ Recognize();
public System.Speech.Recognition.RecognitionResult Recognize ();
member this.Recognize : unit -> System.Speech.Recognition.RecognitionResult
Public Function Recognize () As RecognitionResult

Gibt zurück

Das Erkennungsergebnis für die Eingabe oder null, wenn der Vorgang nicht erfolgreich war oder die Erkennung nicht aktiviert ist.

Beispiele

Das folgende Beispiel zeigt einen Teil einer Konsolenanwendung, die die grundlegende Spracherkennung veranschaulicht. Im Beispiel wird ein DictationGrammarerstellt, in eine Prozess-Spracherkennung geladen und ein Erkennungsvorgang ausgeführt.

using System;  
using System.Speech.Recognition;  

namespace SynchronousRecognition  
{  
  class Program  
  {  
    static void Main(string[] args)  
    {  
      // Create an in-process speech recognizer for the en-US locale.  
      using (SpeechRecognitionEngine recognizer =  
        new SpeechRecognitionEngine(  
          new System.Globalization.CultureInfo("en-US")))  
      {  

        // Create and load a dictation grammar.  
        recognizer.LoadGrammar(new DictationGrammar());  

        // Configure input to the speech recognizer.  
        recognizer.SetInputToDefaultAudioDevice();  

        // Modify the initial silence time-out value.  
        recognizer.InitialSilenceTimeout = TimeSpan.FromSeconds(5);  

        // Start synchronous speech recognition.  
        RecognitionResult result = recognizer.Recognize();  

        if (result != null)  
        {  
          Console.WriteLine("Recognized text = {0}", result.Text);  
        }  
        else  
        {  
          Console.WriteLine("No recognition result available.");  
        }  
      }  

      Console.WriteLine();  
      Console.WriteLine("Press any key to continue...");  
      Console.ReadKey();  
    }  
  }  
}  

Hinweise

Diese Methode führt einen einzelnen Erkennungsvorgang aus. Die Erkennung führt diesen Vorgang für die geladenen und aktivierten Spracherkennungsgrammatiken aus.

Während eines Aufrufs dieser Methode kann die Erkennung die folgenden Ereignisse auslösen:

  • SpeechDetected. Wird ausgelöst, wenn die Erkennung Eingaben erkennt, die sie als Sprache identifizieren kann.

  • SpeechHypothesized. Wird ausgelöst, wenn die Eingabe eine mehrdeutige Übereinstimmung mit einer der aktiven Grammatiken erzeugt.

  • SpeechRecognitionRejected oder SpeechRecognized. Wird ausgelöst, wenn die Erkennung einen Erkennungsvorgang abgeschlossen hat.

Die Erkennung löst das RecognizeCompleted Ereignis bei Verwendung dieser Methode nicht aus.

Die Recognize() -Methode gibt ein RecognitionResult -Objekt zurück, oder null , wenn der Vorgang nicht erfolgreich ist.

Ein synchroner Erkennungsvorgang kann aus den folgenden Gründen fehlschlagen:

  • Die Spracherkennung wird nicht erkannt, bevor die Timeoutintervalle für die BabbleTimeout Eigenschaften oder InitialSilenceTimeout ablaufen.

  • Die Erkennungs-Engine erkennt Sprache, findet jedoch keine Übereinstimmungen in den geladenen und aktivierten Grammar Objekten.

Verwenden Sie eine der RecognizeAsync Methoden, um eine asynchrone Erkennung durchzuführen.

Weitere Informationen

Gilt für:

Recognize(TimeSpan)

Quelle:
SpeechRecognitionEngine.cs
Quelle:
SpeechRecognitionEngine.cs

Führt einen synchronen Spracherkennungsvorgang mit einem angegebenen ursprünglichen Ruhetimeout aus.

public:
 System::Speech::Recognition::RecognitionResult ^ Recognize(TimeSpan initialSilenceTimeout);
public System.Speech.Recognition.RecognitionResult Recognize (TimeSpan initialSilenceTimeout);
member this.Recognize : TimeSpan -> System.Speech.Recognition.RecognitionResult
Public Function Recognize (initialSilenceTimeout As TimeSpan) As RecognitionResult

Parameter

initialSilenceTimeout
TimeSpan

Das Zeitspanne, in der eine Spracherkennung eine tonlose Eingabe akzeptiert, bevor die Erkennung abgeschlossen wird.

Gibt zurück

Das Erkennungsergebnis für die Eingabe oder null, wenn der Vorgang nicht erfolgreich war oder die Erkennung nicht aktiviert ist.

Beispiele

Das folgende Beispiel zeigt einen Teil einer Konsolenanwendung, die die grundlegende Spracherkennung veranschaulicht. Im Beispiel wird ein DictationGrammarerstellt, in eine Prozess-Spracherkennung geladen und ein Erkennungsvorgang ausgeführt.

using System;  
using System.Speech.Recognition;  

namespace SynchronousRecognition  
{  
  class Program  
  {  
    static void Main(string[] args)  
    {  
      // Create an in-process speech recognizer for the en-US locale.  
      using (SpeechRecognitionEngine recognizer =  
        new SpeechRecognitionEngine(  
          new System.Globalization.CultureInfo("en-US")))  
      {  
        // Create and load a dictation grammar.  
        recognizer.LoadGrammar(new DictationGrammar());  

        // Configure input to the speech recognizer.  
        recognizer.SetInputToDefaultAudioDevice();  

        // Start synchronous speech recognition.  
        RecognitionResult result = recognizer.Recognize(TimeSpan.FromSeconds(5));  

        if (result != null)  
        {  
          Console.WriteLine("Recognized text = {0}", result.Text);  
        }  
        else  
        {  
          Console.WriteLine("No recognition result available.");  
        }  
      }  

      Console.WriteLine();  
      Console.WriteLine("Press any key to continue...");  
      Console.ReadKey();  
    }  
  }  
}  

Hinweise

Wenn die Spracherkennungs-Engine Sprache innerhalb des durch initialSilenceTimeout das Argument angegebenen Zeitintervalls erkennt, Recognize(TimeSpan) führt einen einzelnen Erkennungsvorgang aus und beendet dann. Der initialSilenceTimeout Parameter ersetzt die Eigenschaft der InitialSilenceTimeout Erkennung.

Während eines Aufrufs dieser Methode kann die Erkennung die folgenden Ereignisse auslösen:

  • SpeechDetected. Wird ausgelöst, wenn die Erkennung Eingaben erkennt, die sie als Sprache identifizieren kann.

  • SpeechHypothesized. Wird ausgelöst, wenn die Eingabe eine mehrdeutige Übereinstimmung mit einer der aktiven Grammatiken erzeugt.

  • SpeechRecognitionRejected oder SpeechRecognized. Wird ausgelöst, wenn die Erkennung einen Erkennungsvorgang abgeschlossen hat.

Die Erkennung löst das RecognizeCompleted Ereignis bei Verwendung dieser Methode nicht aus.

Die Recognize() -Methode gibt ein RecognitionResult -Objekt zurück, oder null , wenn der Vorgang nicht erfolgreich ist.

Ein synchroner Erkennungsvorgang kann aus den folgenden Gründen fehlschlagen:

  • Die Spracherkennung wird nicht erkannt, bevor die Timeoutintervalle für oder BabbleTimeout für den initialSilenceTimeout -Parameter ablaufen.

  • Die Erkennungs-Engine erkennt Sprache, findet jedoch keine Übereinstimmungen in den geladenen und aktivierten Grammar Objekten.

Verwenden Sie eine der RecognizeAsync Methoden, um eine asynchrone Erkennung durchzuführen.

Weitere Informationen

Gilt für: