次の方法で共有


音声コマンド定義 (VCD) の要素および属性 v1.1

注意

コンシューマーとエンタープライズのCortana Skills Kitと、これらのプラットフォーム上に構築されたスキルは非推奨になりました。

最新バージョンについては、 Voice Command Definition (VCD) の要素と属性 v1.2 を参照してください。

認識制約を指定するために VCD ファイルで使用される XML マークアップ要素と属性のリファレンス ドキュメント。

音声コマンドを使用してアプリを起動し、実行するアクションまたはコマンドを指定します。 たとえば、ユーザーは [ スタート ] ボタンをタップし、"Contoso Widgets, show best sellers" と言って、Contoso Widgets アプリを起動し、"ベスト セラー" ページに移動できます。

要素と属性

XML ファイルと同様に、VCD ファイルは XML バージョンと文字エンコードの両方を指定する XML 宣言で始まる必要があります。

<?xml version="1.0" encoding="utf-8"?>

ルート要素は VoiceCommands 要素であり、その xmlns 属性は (大文字なし) に設定する http://schemas.microsoft.com/voicecommands/1.1 必要があります。 このスキーマに準拠する例については、 Cortana 音声コマンドのサンプルを参照してください。

要素説明
VoiceCommands 必須。 VCD ファイルのルート要素。 1 から 15 個の CommandSet 要素が含まれており、それぞれが 1 つの言語の音声コマンドを表します。
CommandSet VoiceCommands 要素の必須の子要素。 アプリが必要な xml:lang 属性で指定された言語で受け入れるすべての音声コマンドのコンテナー。 xml:lang 属性の値は VoiceCommand ドキュメントで一意である必要があります。これは、音声コントロール パネルで使用できる言語に対応する、言語名形式で指定された 1 つの特定の言語です。 Name 属性は省略可能であり、任意の文字列を指定できます。ただし、CommandSet 要素の PhraseList をプログラムで参照および更新するには、Name 属性が必要です。 CommandSet 要素には、CommandPrefix (0 または 1)、 (正確には 1)、Command (1 から 100)、PhraseList 要素 (0 から 10)、PhraseTopic 要素 (0 から 10) の子要素が含まれます。 これらの子要素は、一覧表示されている順序で行う必要があります。
CommandPrefix CommandSet 要素の省略可能な子要素。 存在する場合は、 CommandSet 要素の最初の子要素である必要があります。 音声コマンドを指定するときにユーザーが話すことができるアプリのわかりやすい名前を指定します。 これは、名前が長いアプリや発音が困難なアプリに役立ちます。 他の音声対応エクスペリエンスと競合するプレフィックスは使用しないでください。
コマンド

CommandSet 要素の必須の子要素。

Name 属性を取得 します 。 ユーザーが話すことによって開始できるアプリ アクションと、ユーザーがアクションを開始するために何を言うことができるかを定義します。 各 Command 要素は、アプリ内の特定のページに関連付けることができます。 次の必須の子要素が含まれます。 (正確には 1)、 ListenFor (1 から 10)、 Feedback (正確には 1)、 Navigate (正確には 1)。 これらの子要素は、一覧表示されている順序で行う必要があります。

CommandSet 要素と Command 要素の両方の必須の子。 CommandSet 全体と個々のコマンドに対してユーザーが言うことができる内容の代表的な例を示します。 これらの例は、電話で [ What can I say ]\(何ができるか\) 画面を表示しているときに、ユーザーに表示されます。 この画面は、ユーザーが [検索 ] ボタンを長押しし、[ヘルプ] または [何を言うことができますか? ] と表示されるか、[ 詳細を表示] をタップすると表示されます。 アプリケーションの名前またはプレフィックスは自動的に処理されるため、例には含めないようにしてください。
ListenFor

Command 要素の必須 (1 から 10) の子要素。

このコマンドに対してアプリで認識される単語または語句が含まれます。 これには、中かっこで囲まれた ListenFor 要素に表示される PhraseList (または PhraseTopic) 要素の Label 属性 ({myList}、{myTopic} など) への参照が含まれる場合があります。

ListenFor 要素の内容を認識して、コマンドをアクティブ化できます。

省略可能な単語または単語の周りに角かっこを使用します。 つまり、単語または単語は読み上げられますが、一致する必要はありません。 たとえば、「 <ListenFor>[Show] {options}</ListenFor> 」のように入力します。

などの中かっこのペア内にアスタリスク文字を含めることで、 <ListenFor> Find {*} </ListenFor>ワイルドカード機能を設定できます。 この例では、ユーザーが "検索" と読み上げ、必要に応じて他の単語または語句が続く限り、音声コマンドは一致します。 ワイルドカードが有効な ListenFor 要素の音声コマンドが一致する場合、 SpeechRecognitionResult.Text プロパティには文字列 "..." が含まれます。をワイルドカードと同じ位置に配置します。

フィードバック Command 要素の必須の子要素。 コマンドが認識されたときに表示され、ユーザーに読み戻されるテキストを指定します。 Feedback 要素に PhraseList (または PhraseTopic) 要素の Label 属性への参照が含まれている場合、含まれる Command 要素内のすべての ListenFor 要素も、PhraseList (または PhraseTopic) 要素の同じ Label 属性を参照する必要があります。
NavigateCommand 要素の必須の子要素。 Target 属性は省略可能であり、通常、アプリの起動時に移動するページを指定するために使用されます。 "NavigationTarget" キーを使用して、SpeechRecognitionSemanticInterpretation.Properties ディクショナリから Target 属性 (または Target 属性を省略した場合は空の文字列) の値を取得できます。
PhraseList

CommandSet 要素の省略可能な子。 1 つの CommandSet 要素には 2,000 個以下の Item 要素を含めることができます。また、2,000 個の Item 要素は、CommandSet 内のすべての PhraseList 要素の合計制限です。 各項目はPhraseList を参照するコマンドを開始するために認識できる単語または語句を指定します。 Items コンテンツは、アプリケーション内からプログラムによって更新される場合があります。 PhraseList には Label 属性が必要です。この値は、ListenFor 要素または Feedback 要素内で中かっこで囲んで表示され、PhraseList を参照するために使用されます。

PhraseList には省略可能な あいまいさを 解消する属性 (既定値は true) があり、リストの複数の項目が同時に認識されたときに、この PhraseList がユーザーのあいまいさを解消するかどうかを指定します。 false の場合、この PhraseListFeedback 要素内からも使用できず、アプリケーションのパラメーターは生成されません。 これは、同じことを言う別の方法ですが、特定のアクションを必要としないフレーズに役立ちます。

アプリで、リストのどのフレーズが読み上げられたかを調べるには、PhraseListLabel と同じ値を持つキーを使用して SpeechRecognitionSemanticInterpretation.Properties ディクショナリにアクセスできます。

Item PhraseList 要素の省略可能な子。 コマンドを開始するために認識できる複数の単語または語句の 1 つ。 CommandSet には、すべての子 PhraseList 要素に対して 2,000 個以下の Item 要素を含めることができます。
PhraseTopic

CommandSet 要素の省略可能な子。 大規模なボキャブラリ認識のトピックを指定します。 トピックでは、シナリオに 1 つの (0 または 1) シナリオ 属性と複数の (0 から 20) Subject 子要素を指定できます。これは、達成された認識の関連性を向上させるために使用できます。 PhraseTopic には Label 属性が必要です。この値は、ListenFor 要素または Feedback 要素内で中かっこで囲んで表示され、PhraseTopic を参照するために使用されます。

Scenario 属性 (既定の "Dictation") は、この PhraseTopic の目的のシナリオを指定します。このシナリオでは、PhraseTopic を使用して音声コマンドの基になる音声認識を最適化し、コマンドの目的のコンテキストに適した結果を生成できます。 有効な値は、"自然言語"、"検索"、"短いメッセージ"、"ディクテーション"、"コマンド"、および "フォームの入力" です。

Subject 子要素は、親 PhraseTopic の Scenario 属性に固有の件名を指定し、PhraseTopic を使用して音声コマンド内の音声認識結果の関連性をさらに絞り込みます。 サブジェクトは指定された順序で評価され、必要に応じて、後で指定されたサブジェクトは、以前に指定されたものを制約します。 有効な内部テキスト値は、"Date/Time"、"Addresses"、"City/State"、"Person Names"、"Movies"、"Music"、および "Phone Number" です。 例: <Subject>Phone Number</Subject>

アプリで、PhraseTopic 参照で表される ListenFor 要素のサブセットで読み上げられたコンテンツを調べるには、PhraseTopicLabel と同じ値を持つキーを使用して SpeechRecognitionSemanticInterpretation.Properties ディクショナリにアクセスできます。

重要

以下に示す特殊文字を入れ子にすることはできません。 たとえば、 や [{myPhraseList}] などの[[start] new game]ステートメントは使用できません。

特殊文字 説明
{} 参照する PhraseList または PhraseTopicLabel 属性の値を格納します (例: {myList}、{myTopic})。 ListenFor 要素または Feedback 要素内で使用されます。 Feedback 要素の PhraseList または PhraseTopic 参照は、同じコマンドの ListenFor 要素の対応する参照と一致する必要があります。
[] 囲まれた単語または語句が省略可能であることを指定します。 囲まれた単語または語句は読み上げられますが、コマンドを開始するために認識する必要はありません。 たとえば、 ListenFor 要素の内容が "[start] [begin] new game" の場合、ユーザーは "新しいゲームの開始" または "新しいゲームの開始" または "新しいゲームの開始" (または "新しいゲームの開始" ) を話してコマンドを開始できます。 角かっこで囲まれた各要素は個別に省略可能ですが、認識するには正しい順序で読み上げる必要があります。 そのため、"新しいゲーム" の例では、"新しいゲームの開始" は機能しますが、"新しいゲームの開始" は、宣言された順序のため機能しません。

こちらもご覧ください

Windows.ApplicationModel.VoiceCommands

VCD 要素および属性 v1.2

Cortana の操作

サンプル

Cortana 音声コマンドのサンプル