Элементы и атрибуты определения голосовых команд (VCD), версия 1.2

Примечание

Cortana Skills Kit для потребителей и предприятий, а также навыки, созданные на этих платформах, устарели.

Справочная документация по элементам и атрибутам разметки XML, используемым в файлах определения голосовых команд (VCD) для указания ограничений распознавания.

Используйте голосовые команды, чтобы запустить приложение и указать действие или команду для выполнения. Например, пользователь может нажать кнопку Пуск и сказать "Мини-приложения Contoso, показать бестселлеров", чтобы запустить приложение Contoso Widgets и перейти на страницу "Бестселлеры".

Элементы и атрибуты

Как и в случае с любым XML-файлом, VCD-файл должен начинаться с xml-объявления, указывающего версию XML и кодировку символов.

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

Корневым элементом является элемент VoiceCommands , а его атрибуту xmlns должно быть присвоено значение http://schemas.microsoft.com/voicecommands/1.2 (без символов в верхнем регистре). Пример, соответствующий этой схеме, см. в примере голосовой команды Кортаны.

Элемент Описание
VoiceCommands Обязательный. Корневой элемент VCD-файла. Содержит от 1 до 15 элементов CommandSet , каждый из которых представляет голосовые команды для одного языка.
Набор команд Обязательный дочерний элемент элемента VoiceCommands . Контейнер для всех голосовых команд, которые приложение будет принимать на языке, указанном требуемым атрибутом xml:lang .

Значение атрибута xml:lang должно быть уникальным в документе VoiceCommand . Это отдельный язык, указанный в форме имени языка, соответствующий языку, доступного на панели управления "Речь ".

Примечание Языки, указанные в VCD-файле, но не поддерживаемые в системе, игнорируются.

Атрибут Name является необязательным и может быть любой произвольной строкой; однако атрибут Name необходим для программного ссылки на элемент CommandSetPhraseList и его обновления. Элемент CommandSet содержит следующие дочерние элементы: CommandPrefix (0 или 1) или AppName (0 или 1), Example (ровно 1), Command (от 1 до 100), Элементы PhraseList (от 0 до 10) и PhraseTopic (от 0 до 10). Эти дочерние элементы должны находиться в указанном порядке.

Взаимоисключающими CommandPrefix

Необязательный дочерний элемент элемента CommandSet . При наличии должен быть первым дочерним элементом элемента CommandSet .

Указывает понятное имя приложения, которое пользователь может произносить при выполнении голосовой команды. Это полезно для приложений с длинными именами или трудно произносимыми.

Избегайте использования префиксов, которые конфликтуют с другими функциями с поддержкой голосовой связи.

AppName

Необязательный дочерний элемент элемента CommandSet . При наличии должен быть первым дочерним элементом элемента CommandSet .

Заменяет CommandPrefix и поддерживает атрибут RequireAppName и {builtin:AppName} фразу элемента ListenFor .

Указывает понятное имя приложения, которое пользователь может произносить при выполнении голосовой команды. Это полезно для приложений с длинными именами или трудно произносимыми.

Избегайте использования префиксов, которые конфликтуют с другими функциями с поддержкой голосовой связи.

По умолчанию appName поддерживается в виде суффикса в голосовой команде.

Get-Help

Обязательный дочерний элемент элемента CommandSet .

Принимает атрибут Name . Определяет действие приложения, которое пользователи могут инициировать, говоря, и то, что пользователи могут сказать, чтобы инициировать действие. Каждый элемент Command можно связать с определенной страницей в приложении. Содержит следующие обязательные дочерние элементы: Example (ровно 1), ListenFor (от 1 до 20), Feedback (ровно 1) и Navigate (ровно 1). Эти дочерние элементы должны находиться в указанном порядке.

Пример Обязательный дочерний элемент элемента CommandSet (ровно 1) и элемента Command (от 1 до 20). Репрезентативный пример того, что пользователь может сказать для набора команд в целом и для отдельной команды. Эти примеры будут видны пользователю на экране Что можно сказать . Этот экран появляется, когда пользователь нажимает и удерживает кнопку Поиск (на телефонах с Windows) или вызывает Кортану и говорит "Справка" или "Что я могу сказать?", или коснитесь кнопки Подробнее.

Примечание Примеры должны включать AppName или CommandPrefix.

ListenFor

Обязательный дочерний элемент (от 1 до 20) элемента Command .

Содержит слово или фразу, которые приложение распознает для этой команды. Это может быть ссылка на атрибут Label элемента PhraseList (или PhraseTopic), который отображается в элементе ListenFor, заключенном в фигурные скобки, например: {myList}или {myTopic}.

Для активации команды можно распознать содержимое всех элементов ListenFor .

Можно указать необязательный атрибут RequireAppName , чтобы указать, можно ли добавить значение элемента AppName , добавить его или использовать в элементе ListenFor .

Этот атрибут поддерживает четыре значения:

  • BeforePhrase

    Пользователь должен произнося appName перед фразой ListenFor .

  • AfterPhrase

    Пользователь должен сказать "In|Включено|Использование |With" AppName после фразы ListenFor .

  • BeforeOrAfterPhrase

    Пользователь должен произнося appName до или после фразы ListenFor .

  • Явно определенное значение

    В ListenFor явно указана ссылка на AppName с помощью {builtin:AppName}. Пользователю не требуется произносить appName до или после фразы ListenFor .

Используйте квадратные скобки вокруг слова или слов, которые являются необязательными. То есть слово или слова могут быть произнесены, но не являются обязательными для совпадения. Например, <ListenFor>[Show] {options}</ListenFor>.

Вы можете настроить функциональность подстановочных знаков, включив символ звездочки в пару фигурных скобок, например <ListenFor> Find {*} </ListenFor>. В этом примере голосовая команда будет совпадать до тех пор, пока пользователь произнесет слово "Найти", за которым при необходимости следует любое другое слово или фраза. Если голосовая команда для элемента ListenFor с поддержкой подстановочных знаков совпадает, свойство SpeechRecognitionResult.Text будет содержать строку "..." в той же позиции, что и подстановочный знак.

Обратная связь Обязательный дочерний элемент элемента Command . Указывает текст, который будет отображаться и считываться пользователю при распознавании команды. Если элемент Feedback содержит ссылку на атрибут Label элемента PhraseList (или PhraseTopic), то каждый элемент ListenFor в элементе Command должен также ссылаться на один и тот же атрибут Label элемента PhraseList (или PhraseTopic).
Взаимоисключающими Перейти.Обязательный дочерний элемент элемента Command , если элемент Command не имеет дочернего элемента VoiceCommandService . Атрибут Target является необязательным и обычно используется для указания страницы, на которую приложение должно переходить при запуске. Вы можете получить значение атрибута Target (или пустую строку, если опустить атрибут Target ) из словаря SpeechRecognitionSemanticInterpretation.Properties с помощью ключа NavigationTarget.
VoiceCommandService Обязательный дочерний элемент элемента Command , если элемент Command не содержит дочерний элемент Navigate . Этот элемент указывает, что голосовая команда обрабатывается через службу приложений (см . Раздел Windows.ApplicationModel.AppService), а обратная связь отображается на холсте Кортаны . Атрибут Target является обязательным и должен соответствовать значению атрибута Name элемента AppService в манифесте пакета приложения.
PhraseList

Необязательный дочерний элемент элемента CommandSet . Один элемент CommandSet может содержать не более 2000 элементов Item , а 2000 элементов Item — это совокупное общее ограничение для всех элементов PhraseList в Наборе команд. Каждый элемент указывает слово или фразу, которые можно распознать для запуска команды, ссылающейся на PhraseList. Содержимое Items может обновляться программным способом в приложении. PhraseList требует атрибут Label, значение которого может отображаться в фигурных скобках внутри элементов ListenFor или Feedback и используется для ссылки на PhraseList.

PhraseList имеет необязательный атрибут Disambiguate (по умолчанию true), который указывает, будет ли этот PhraseList вызывать неоднозначности пользователей при одновременном распознавании нескольких элементов из списка. Если задано значение false, этот PhraseList также будет непригодным для использования в элементах Feedback и не будет создавать параметры для вашего приложения. Это полезно для фраз, которые являются альтернативными способами говорить то же самое, но не требуют каких-либо конкретных действий.

В приложении, чтобы узнать, какая фраза из списка была произнесен, вы можете получить доступ к словарю SpeechRecognitionSemanticInterpretation.Properties , используя ключ с тем же значением, что и меткаPhraseList.

Элемент Необязательный дочерний элемент элемента PhraseList . Одно из нескольких слов или фраз, которые можно распознать для запуска команды. CommandSet может содержать не более 2000 элементов Item во всех дочерних элементах PhraseList.
PhraseTopic

Необязательный дочерний элемент элемента CommandSet . Задает тему для распознавания большого словаря. В разделе может быть указан один атрибут (0 или 1) Scenario и несколько дочерних элементов Subject (от 0 до 20) для сценария, которые можно использовать для повышения релевантности достигнутого распознавания. Для PhraseTopic требуется атрибут Label, значение которого может отображаться (заключено в фигурные скобки) внутри элементов ListenFor или Feedback, и используется для ссылки на PhraseTopic.

Атрибут Scenario (по умолчанию "Диктовка") указывает требуемый сценарий для этого PhraseTopic, который может оптимизировать распознавание речи голосовых команд с помощью PhraseTopic для получения результатов, которые лучше подходят для нужного контекста команды. Допустимые значения: "Естественный язык", "Поиск", "Короткое сообщение", "Диктовка", "Команды" и "Заполнение формы".

Дочерние элементы Subject указывают субъект, относящийся к атрибуту Scenario родительского PhraseTopic , чтобы дополнительно уточнить релевантность результатов распознавания речи в речевых командах с помощью PhraseTopic. Субъекты будут оцениваться в указанном порядке, и, если это необходимо, более поздние предметы будут ограничивать указанные ранее. Допустимые внутренние текстовые значения: "Дата/время", "Адреса", "Город/штат", "Имена пользователей", "Фильмы", "Музыка" и "Номер телефона". Пример: <Subject>Phone Number</Subject>

Чтобы узнать содержимое, произнесенное в подмножестве элемента ListenFor , представленного ссылкой PhraseTopic , вы можете получить доступ к словарю SpeechRecognitionSemanticInterpretation.Properties с помощью ключа с тем же значением , что и меткаPhraseTopic.

Важно!

Вложить специальные символы, перечисленные ниже, невозможно. Например, такие операторы, как [[start] new game] и [{myPhraseList}] , невозможны.

Специальный символ Описание
{} Содержит значение атрибута Label для PhraseList или PhraseTopic для ссылки, например: {myList} или {myTopic}. Используется в элементе ListenFor или Feedback . Ссылка PhraseList или PhraseTopic в элементе Feedback должна соответствовать соответствующей ссылке в элементе ListenFor в той же команде.
[]Указывает, что заключенное слово или фраза являются необязательными. Заключенное слово или фраза может быть произнесено, но не требуется распознавать для запуска команды. Например, если содержимое элемента ListenFor — "[start] [begin] new game", пользователь может произнести слово "start new game" или "new game" или "begin new game" (или даже "start begin new game") для запуска команды. Каждый элемент, заключенный в квадратные скобки, является независимо необязательным, но для распознавания их необходимо произносить в правильном порядке. Таким образом, в примере "новая игра" "начать новую игру" будет работать, но "начать начать новую игру" не будет работать из-за порядка, в котором они были объявлены.

См. также раздел

Windows.ApplicationModel.VoiceCommands

Взаимодействие с Кортаной

Примеры
Пример голосовой команды Кортаны