エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone 8 の音声入力の問題の処理

2014/06/18

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

音声認識エンジンは、音声入力の正確な認識を妨げる状態を検出すると、SpeechRecognizerAudioProblemOccurred() イベントを発生させます。Windows.Phone.Speech.Recognition.SpeechRecognizerUI クラスを使用する場合、[Did you say (発言確認)] 画面で音声認識が行われたときにも、このイベントが発生します。

イベントのハンドラーを使用して、音声が小さすぎる、大きすぎる、騒音が多すぎる、速すぎるなど、オーディオの問題の説明を取得できます。オーディオの問題の説明を使用して、ユーザーに大きな声で話すように促すなど、認識の状態を向上させる手順を実行できます。

SpeechRecognizerAudioProblemOccurred() イベントを登録する方法およびイベントを処理する方法の例を次に示します。

// Declare the SpeechRecognizerUI and SpeechSynthesizer objects at the class level.
SpeechRecognizerUI recoWithUI;
SpeechSynthesizer synth;

// Initialize the SpeechRecognizerUI and SpeechSynthesizer objects.
recoWithUI = new SpeechRecognizerUI();
synth = new SpeechSynthesizer();

// Register for the AudioProblemOccured event.
recoWithUI.Recognizer.AudioProblemOccurred += Recognizer_AudioProblemOccurred;

// Load the predefined dictation grammar and start recognition.
private async void Reco1_Click(object sender, RoutedEventArgs e)
{
  // Display text to prompt the user's input.
  recoWithUI.Settings.ListenText = "Trivia category?";

  // Give an example of ideal speech input.
  recoWithUI.Settings.ExampleText = " 'geography', 'movies', 'science' ";

  // Start recognition.
  SpeechRecognitionUIResult recoResult = await recoWithUI.RecognizeWithUIAsync();
}

// Handle the AudioProblemOccurred event.
async void Recognizer_AudioProblemOccurred(SpeechRecognizer sender, SpeechAudioProblemOccurredEventArgs args)
{

  // If input speech is too quiet, prompt the user to speak louder.
  if (args.Problem == SpeechRecognitionAudioProblem.TooQuiet)
  {
    await synth.SpeakTextAsync("Try speaking louder");
  }
}

この機能を使用するときに発生する可能性がある音声認識エラーと例外はほかにも数多くあります。詳細については、「Windows Phone 8 の音声アプリにおけるエラーの処理」を参照してください。

表示:
© 2014 Microsoft