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

Windows Phone 8의 음성 인식기 선택

2014-06-18

적용 대상: Windows Phone 8 및 Windows Phone Silverlight 8.1만

 

Windows Phone 8 에는 다양한 언어에 대한 음성 인식기가 포함되어 있습니다. 각 음성 인식기는 특정 국가/지역에서 사용되는 하나의 언어로 인식을 수행합니다. SpeechRecognizer 또는 SpeechRecognizerUI 개체를 만들면 로드할 음성 인식기의 언어를 지정할 수 있습니다. SpeechRecognizer 또는 SpeechRecognizerUI 인스턴스는 휴대폰에 설치되어 있는 아무 음성이나 로드하고 이를 사용하여 음성을 인식할 수 있습니다. 언어를 지정하지 않으면 API가 사용자가 휴대폰의 설정/음성에서 선택한 언어와 일치하는 인식기를 로드하게 됩니다.

다음 코드 예제는 음성 인식기 인스턴스를 만들고 LINQ 쿼리의 도움으로 언어를 설정합니다. LINQ 쿼리는 프랑스에서 사용되는 프랑스어를 가리키는 "fr-FR" 값을 언어 속성으로 하는 인식기를 찾기 위해 설치된 각각의 인식기를 설명하는 SpeechRecognizerInformation 개체들을 모두 검색합니다. SpeechRecognizerInformation 개체를 의미하는 변수 frenchRecognizers를 입력합니다. SetRecognizer(SpeechRecognizerInformation) 메서드에 대한 인수는 LINQ 쿼리로 반환되는 인식기에 대한 인덱스를 지정합니다.

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

// Handle the button click event.
private async void SpeakFrench_Click_1(object sender, RoutedEventArgs e)
{
  // Initialize the SpeechRecognizerUI object.
  recoWithUI = new SpeechRecognizerUI();

  // Query for a recognizer that recognizes French as spoken in France.
  IEnumerable<SpeechRecognizerInformation> frenchRecognizers = from recognizerInfo in InstalledSpeechRecognizers.All
                          where recognizerInfo.Language == "fr-FR"
                          select recognizerInfo;
            
  // Set the recognizer to the top entry in the query result.
  recoWithUI.Recognizer.SetRecognizer(frenchRecognizers.ElementAt(0));

  // Create a string array of French numbers.
  string[] nombres = { "un", "deux", "trois", "quatre", "cinq", 
                         "six", "sept", "huit", "neuf", "dix" };

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

  // Display text to prompt the user's input.
  recoWithUI.Settings.ListenText = "Say a French number";

  // Give an example of ideal speech input.
  recoWithUI.Settings.ExampleText = " 'un', 'deux', 'trois', 'quatre' ";

  // Load the grammar set and start recognition.
  SpeechRecognitionUIResult recoResult = await recoWithUI.RecognizeWithUIAsync();
}

SpeechRecognizerInformation 개체를 사용하여 SpeechRecognizerInformationDescription(), SpeechRecognizerInformationDisplayName()SpeechRecognizerInformationId()와 같이 설치된 음성 인식기의 다른 속성 값과 일치하는 음성 인식기를 설정할 수도 있습니다.

표시: