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

Windows Phone 8 の音声認識エンジンの選択

2014/06/18

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

Windows Phone 8 には、さまざまな言語の音声認識エンジンが含まれています。音声認識エンジンはそれぞれ、特定の国または地域で話される特定の言語を認識します。SpeechRecognizer または SpeechRecognizerUI オブジェクトを作成した後、音声認識エンジンに読み込む言語を指定することができます。SpeechRecognizer または SpeechRecognizerUI インスタンスは、電話にインストールされている任意の音声を読み込み、それを使用して音声を認識できます。言語を指定しない場合、API は電話の [設定]/[音声認識] でユーザーが選択している言語と一致する認識エンジンを読み込みます。

音声認識エンジンのインスタンスを作成し、LINQ クエリを利用して言語を設定するコード例を次に示します。LINQ クエリは、インストール済みの認識エンジンをそれぞれ記述した一連の SpeechRecognizerInformation オブジェクトを検索し、language プロパティ値がフランスで話されるフランス語を表す "fr-FR" である認識エンジンを探し出します。変数 frenchRecognizers は、SpeechRecognizerInformation オブジェクトとして暗黙的に型指定されています。LINQ クエリで返された認識エンジンのインデックスを、SetRecognizer(SpeechRecognizerInformation) メソッドの引数で指定します。

// 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() など) に一致する音声認識エンジンを設定することもできます。

表示: