SpeechRecognitionEngine.Recognize 方法

定義

啟動同步語音辨識作業。

多載

Recognize()

執行同步語音辨識作業。

Recognize(TimeSpan)

使用指定的初始靜音逾時期限,執行同步語音辨識作業。

備註

這些方法會執行單一同步辨識作業。 辨識器會針對其已載入和啟用的語音辨識文法執行這項作業。

在呼叫此方法期間,辨識器可以引發下列事件:

使用其中 Recognize 一種方法時,辨識器不會引發 RecognizeCompleted 事件。

方法 Recognize 會傳 RecognitionResult 回 物件, null 如果作業不成功或未啟用辨識器,則為 。

同步辨識作業可能會因為下列原因而失敗:

  • 在逾時間隔到期 BabbleTimeoutInitialSilenceTimeout 或 屬性或 initialSilenceTimeout 方法的 Recognize 參數之前,不會偵測語音。

  • 辨識引擎會偵測語音,但在其任何已載入和啟用 Grammar 的物件中找不到相符專案。

若要修改辨識器如何處理與辨識相關的語音或無聲時間,請使用 BabbleTimeoutInitialSilenceTimeoutEndSilenceTimeoutEndSilenceTimeoutAmbiguous 屬性。

SpeechRecognitionEngine在執行辨識之前,至少必須載入一個 Grammar 物件。 若要載入語音辨識文法,請使用 LoadGrammarLoadGrammarAsync 方法。

若要執行非同步辨識,請使用其中 RecognizeAsync 一種方法。

Recognize()

來源:
SpeechRecognitionEngine.cs
來源:
SpeechRecognitionEngine.cs
來源:
SpeechRecognitionEngine.cs

執行同步語音辨識作業。

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

傳回

輸入的辨識結果,如果作業未成功或辨識器未啟用則為 null

範例

下列範例示範示範基本語音辨識的主控台應用程式的一部分。 此範例會 DictationGrammar 建立 ,並將它載入至進程語音辨識器,並執行一個辨識作業。

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();  
    }  
  }  
}  

備註

這個方法會執行單一辨識作業。 辨識器會針對其已載入和啟用的語音辨識文法執行這項作業。

在呼叫此方法期間,辨識器可以引發下列事件:

使用此方法時,辨識器不會引發 RecognizeCompleted 事件。

方法 Recognize() 會傳 RecognitionResult 回 物件,如果 null 作業不成功,則為 。

同步辨識作業可能會因為下列原因而失敗:

  • 在 或 InitialSilenceTimeout 屬性的 BabbleTimeout 逾時間隔到期之前,不會偵測到語音。

  • 辨識引擎會偵測語音,但在其任何已載入和啟用 Grammar 的物件中找不到相符專案。

若要執行非同步辨識,請使用其中 RecognizeAsync 一種方法。

另請參閱

適用於

Recognize(TimeSpan)

來源:
SpeechRecognitionEngine.cs
來源:
SpeechRecognitionEngine.cs
來源:
SpeechRecognitionEngine.cs

使用指定的初始靜音逾時期限,執行同步語音辨識作業。

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

參數

initialSilenceTimeout
TimeSpan

語音辨識器在完成辨識前接受僅含靜默無聲之輸入的時間間隔。

傳回

輸入的辨識結果,如果作業未成功或辨識器未啟用則為 null

範例

下列範例示範示範基本語音辨識的主控台應用程式的一部分。 此範例會 DictationGrammar 建立 ,並將它載入至進程語音辨識器,並執行一個辨識作業。

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();  
    }  
  }  
}  

備註

如果語音辨識引擎在引數指定的 initialSilenceTimeout 時間間隔內偵測到語音, Recognize(TimeSpan) 請執行單一辨識作業,然後終止。 參數 initialSilenceTimeout 會取代辨識器的 InitialSilenceTimeout 屬性。

在呼叫此方法期間,辨識器可以引發下列事件:

使用此方法時,辨識器不會引發 RecognizeCompleted 事件。

方法 Recognize() 會傳 RecognitionResult 回 物件,如果 null 作業不成功,則為 。

同步辨識作業可能會因為下列原因而失敗:

  • 在 逾時間隔到期 BabbleTimeoutinitialSilenceTimeout 或 參數之前,不會偵測到語音。

  • 辨識引擎會偵測語音,但在其任何已載入和啟用 Grammar 的物件中找不到相符專案。

若要執行非同步辨識,請使用其中 RecognizeAsync 一種方法。

另請參閱

適用於