SpeechRecognitionEngine.Recognize メソッド

定義

同期音声認識操作を開始します。

オーバーロード

Recognize()

同期音声認識操作を実行します。

Recognize(TimeSpan)

指定した最初のサイレント状態のタイムアウト期間の同期音声認識の操作を実行します。

注釈

これらのメソッドは、単一の同期認識操作を実行します。 認識エンジンは、読み込まれた有効な音声認識文法に対してこの操作を実行します。

このメソッドの呼び出し中に、認識エンジンは次のイベントを発生させることができます。

  • SpeechDetected. 認識エンジンが音声として識別できる入力を検出したときに発生します。

  • SpeechHypothesized. 入力がアクティブな文法の 1 つとあいまいな一致を作成するときに発生します。

  • SpeechRecognitionRejected または SpeechRecognized。 認識エンジンが認識操作を終了すると発生します。

いずれかのメソッドを使用する場合、 RecognizeCompleted 認識エンジンはイベントを Recognize 発生させません。

メソッドは Recognize オブジェクトを RecognitionResult 返します。操作 null が成功しなかったか、認識エンジンが有効になっていない場合は 。

同期認識操作は、次の理由で失敗する可能性があります。

  • または プロパティまたは InitialSilenceTimeout メソッドの パラメーターのタイムアウト間隔が期限切れになるBabbleTimeout前に、音声がinitialSilenceTimeoutRecognize検出されません。

  • 認識エンジンは音声を検出しますが、読み込まれて有効になっている Grammar オブジェクトのいずれにも一致が見つかりません。

認識エンジンが認識に関して音声または無音のタイミングを処理する方法を変更するには、、EndSilenceTimeoutInitialSilenceTimeout、、および プロパティをBabbleTimeoutEndSilenceTimeoutAmbiguous使用します。

SpeechRecognitionEngine 、認識を実行する前に、少なくとも 1 つの Grammar オブジェクトを読み込む必要があります。 音声認識文法を読み込むには、 メソッドまたは LoadGrammarAsync メソッドを使用しますLoadGrammar

非同期認識を実行するには、いずれかのメソッドを RecognizeAsync 使用します。

Recognize()

ソース:
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作成し、それをインプロセス音声認識エンジンに読み込み、1 つの認識操作を実行します。

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

注釈

このメソッドは、1 つの認識操作を実行します。 認識エンジンは、読み込まれた有効な音声認識文法に対してこの操作を実行します。

このメソッドの呼び出し中に、認識エンジンは次のイベントを発生させることができます。

  • SpeechDetected. 認識エンジンが音声として識別できる入力を検出したときに発生します。

  • SpeechHypothesized. 入力がアクティブな文法の 1 つとあいまいな一致を作成するときに発生します。

  • SpeechRecognitionRejected または SpeechRecognized。 認識エンジンが認識操作を終了すると発生します。

このメソッドを使用する場合、認識エンジンはイベントを RecognizeCompleted 発生させません。

メソッドは Recognize() オブジェクトを RecognitionResult 返します。操作 null が成功しなかった場合は を返します。

同期認識操作は、次の理由で失敗する可能性があります。

  • または InitialSilenceTimeout プロパティのタイムアウト間隔の有効期限が切れる前に、音声がBabbleTimeout検出されません。

  • 認識エンジンは音声を検出しますが、読み込まれて有効になっている Grammar オブジェクトのいずれにも一致が見つかりません。

非同期認識を実行するには、いずれかのメソッドを RecognizeAsync 使用します。

こちらもご覧ください

適用対象

Recognize(TimeSpan)

ソース:
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作成し、それをインプロセス音声認識エンジンに読み込み、1 つの認識操作を実行します。

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) 1 回の認識操作を実行して終了します。 パラメーターは initialSilenceTimeout 、認識エンジンの プロパティよりも InitialSilenceTimeout 優先されます。

このメソッドの呼び出し中に、認識エンジンは次のイベントを発生させることができます。

  • SpeechDetected. 認識エンジンが音声として識別できる入力を検出したときに発生します。

  • SpeechHypothesized. 入力がアクティブな文法の 1 つとあいまいな一致を作成するときに発生します。

  • SpeechRecognitionRejected または SpeechRecognized。 認識エンジンが認識操作を終了すると発生します。

このメソッドを使用する場合、認識エンジンはイベントを RecognizeCompleted 発生させません。

メソッドは Recognize() オブジェクトを RecognitionResult 返します。操作 null が成功しなかった場合は を返します。

同期認識操作は、次の理由で失敗する可能性があります。

  • パラメーターまたは パラメーターのタイムアウト間隔の有効期限が切れる BabbleTimeout 前に、音声が initialSilenceTimeout 検出されません。

  • 認識エンジンは音声を検出しますが、読み込まれて有効になっている Grammar オブジェクトのいずれにも一致が見つかりません。

非同期認識を実行するには、いずれかのメソッドを RecognizeAsync 使用します。

こちらもご覧ください

適用対象