정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

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용 음성 앱에서 오류 처리를 참조하세요.

표시: