情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone 8 の音声認識エンジンの設定のカスタマイズ

2014/06/18

対象: Windows Phone 8 および Windows Phone Silverlight 8.1 のみ

音声認識エンジンの設定を調整して、音声入力が期待されるにもかかわらず入力がない場合や、認識可能な入力がない場合の応答方法を制御することができます。これらの設定は、音声認識処理の開始時または終了時に、期待される音声入力を待機しているときの認識動作に影響を与えます。

このトピックは、次のセクションで構成されています。

音声認識エンジンの設定について、次の表で説明します。

設定

説明

SpeechRecognizerSettingsInitialSilenceTimeout()

唯一の入力が無声音である場合に音声認識エンジンが音声入力を待機する期間。この期間を経過しても認識エンジンが認識可能な音声を受信できなかった場合、認識処理が終了します。既定値は 5 秒です。

たとえば、SpeechRecognizerSettingsInitialSilenceTimeout() の設定を調整して、認識処理が開始された後、ユーザーが話し始めるまでアプリを待機させる時間を長くしたり、短くしたりすることができます。

SpeechRecognizerSettingsBabbleTimeout()

音声認識エンジンが周囲雑音などの非音声入力のみを受信している間、継続してリッスンする時間間隔。周囲雑音には、音声認識エンジンに現在読み込まれてアクティブ化されている有効なルールに一致しない、非音声入力があります。

このバブル タイムアウト期間中、レコグナイザーが非音声入力しか受信しなかった場合、認識処理が終了します。既定値は 0 秒です (この機能がアクティブ化されません)。

SpeechRecognizerSettingsEndSilenceTimeout()

音声が終了し、入力として無声音しか受信しなくなった後、音声認識エンジンが認識操作を終わらせるまで待機する時間間隔。認識エンジンは音声入力を受信しましたが、現在読み込まれてアクティブ化されているルールの中に、この音声と完全に一致するものがありません。既定値は、150 ミリ秒です。アプリは通常、この設定については既定値を使用します。

SpeechRecognizerSettingsInitialSilenceTimeout() および SpeechRecognizerSettingsBabbleTimeout() の設定を指定するコード例を次に示します。アプリでは通常、SpeechRecognizerSettingsEndSilenceTimeout() の設定は変更しません。

// Declare the SpeechRecognizerUI object at the class level.
SpeeechRecognizer recoWithUI;

private async void Reco1_Click(object sender, RoutedEventArgs e)
{

  // Initialize the SpeechRecognizerUI object.
  SpeechRecognizerUI recoWithUI = new SpeechRecognizerUI();

  // Set timeout settings.
  recoWithUI.Recognizer.Settings.InitialSilenceTimeout = TimeSpan.FromSeconds(6.0);
  recoWithUI.Recognizer.Settings.BabbleTimeout = TimeSpan.FromSeconds(4.0);
  recoWithUI.Recognizer.Settings.EndSilenceTimeout = TimeSpan.FromSeconds(1.2);


  // Create a string array to use in a grammar. 
  string[] genre = { "rock", "jazz", "classical", "world", "gospel", "Brazilian" };

  // Create a list grammar from the string array and add it to the grammar set.
  recoWithUI.Recognizer.Grammars.AddGrammarFromList("genres", genre);

  // Display text to prompt the user's input.
  recoWithUI.Settings.ListenText = "What kind of music?";

  // Give an example of ideal speech input.
  recoWithUI.Settings.ExampleText = " 'rock', 'jazz', 'classical' ";
            
  // Load the grammar set and start recognition.
  SpeechRecognitionUIResult recoResult = await recoWithUI.RecognizeWithUIAsync();
}

タイムアウト設定は、SpeechRecognizer または SpeechRecognizerUI の 1 つのインスタンスにのみ適用され、そのインスタンスがアクティブである限り有効です。SpeechRecognizer または SpeechRecognizerUI の新しいインスタンスでは、タイムアウトは既定値に設定されます。

注意注意:

定義済みのディクテーション文法または Web 検索文法を使用する場合、タイムアウト設定は影響しません。

表示: