信息
您所需的主题如下所示。但此主题未包含在此库中。

自定义 Windows Phone 8 的语音识别器设置

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

超时设置适用于 SpeechRecognizerSpeechRecognizerUI 的单个实例,且当实例处于活动状态时将持续发挥作用。SpeechRecognizerSpeechRecognizerUI 的新实例的超时时间将被设置为默认值。

警告说明警告:

使用预定义的听写或 Web 搜索语法时,超时设置不会产生任何效果。

显示: