音声認識エンジンの言語を指定する方法
[ この記事は、Windows ランタイム アプリを作成する Windows 8.x および Windows Phone 8.x 開発者を対象としています。Windows 10 向けの開発を行っている場合は、「最新のドキュメント」をご覧ください]
音声認識に使われるインストール済みの言語を選ぶ方法について説明します。
ここでは、システムにインストールされている言語を列挙し、どの言語が既定の言語であるかを指定します。また、音声認識用に別の言語を選びます。
理解しておく必要があること
テクノロジ
必要条件
このトピックは、「クイック スタート: 音声認識」に基づいています。音声認識と認識の制約についての基本的な知識が必要です。
このチュートリアルを完了するには、以下のトピックに目を通して、ここで説明されているテクノロジをよく理解できるようにしてください。
- Microsoft Visual Studio をインストールします。
- 開発者用ライセンスを取得します。詳しくは、「Visual Studio 2013 を使った開発」をご覧ください。
- JavaScript を使って初めての Windows ストア アプリを作成します。
- JavaScript を使った Windows ストア アプリのためのロードマップ
- イベントについては、「クイック スタート: HTML コントロールの追加とイベントの処理」をご覧ください。
- 「Windows Phone の音声デザイン ガイドライン」には、魅力的な音声認識対応アプリの設計に役立つ便利なヒントが含まれています。
手順
ステップ 1: 既定の言語を指定する
音声認識エンジンでは、システムの音声認識の言語を既定の認識言語として使います。この言語は、デバイスで [設定]、[システム]、[音声認識]、[音声認識の言語] の順に移動し、画面上でユーザーが設定します。
systemSpeechLanguage 静的プロパティを調べて、既定の言語を特定します。
var language = SpeechRecognizer.systemSpeechLanguage;
ステップ 2: インストールされている言語を確認する
インストールされている言語はデバイスによって異なる場合があります。特定の制約を使う際にある言語に依存する場合は、その言語が存在するかどうかを確認してください。
注 新しい言語パックをインストールした場合は、再起動が必要です。指定の言語がサポートされていない場合や、指定の言語のインストールが完了していない場合は、エラー コード SPERR_NOT_FOUND (0x8004503a) の例外が発生します。
SpeechRecognizer クラスの 2 つの静的プロパティのいずれかを調べて、デバイスでサポートされる言語を特定します。
supportedTopicLanguages— 定義済みのディクテーション文法および Web 検索文法と共に使われる Language オブジェクトのコレクションです。
supportedGrammarLanguages— 一覧の制約または Speech Recognition Grammar Specification (SRGS) ファイルと共に使われる Language オブジェクトのコレクションです。
ステップ 3: 言語を指定する
言語を指定するには、SpeechRecognizer コンストラクターで Language オブジェクトを渡します。
ここでは、認識言語として "en-US" を指定します。
var language = new Windows.Globalization.Language(“en-US”);
var recognizer = new SpeechRecognizer(language);
注釈
トピック制約を構成するには、SpeechRecognitionTopicConstraint を SpeechRecognizer の constraints コレクションに追加して、compileConstraintsAsync を呼び出します。サポートされているトピックの言語で認識エンジンが初期化されていない場合は、TopicLanguageNotSupported の speechRecognitionResultStatus が返されます。
一覧の制約を構成するには、speechRecognitionListConstraint を SpeechRecognizer の constraints コレクションに追加して、compileConstraintsAsync を呼び出します。カスタム一覧の言語を直接指定することはできません。代わりに、認識エンジンの言語を使って一覧が処理されます。
SRGS 文法は、SpeechRecognitionGrammarFileConstraint クラスによって表されるオープン スタンダードの XML 形式です。カスタム一覧とは異なり、SRGS マークアップで文法の言語を指定できます。認識エンジンが SRGS マークアップと同じ言語に初期化されていない場合は、TopicLanguageNotSupported の SpeechRecognitionResultStatus に基づいて compileConstraintsAsync が失敗します。
関連トピック
デザイナー向け