Свойство Voice (объект Commands)

[Microsoft Agent является нерекомендуемым начиная с Windows 7 и может быть недоступен в последующих версиях Windows.]

Описание

Возвращает или задает текст, передаваемый в грамматику обработчика речи (для распознавания).

Синтаксис

агент**. Characters ("CharacterID"). Commands.Voice** [ = string]

Часть Описание
строка Строковое выражение, соответствующее словам или фразе, которые будут использоваться обработчиком речи для распознавания этой команды.

 

Комментарии

Если этот параметр не указан, voiceCaption для объекта Commands не будет отображаться в окне Голосовые команды.

Строковое выражение, которое вы предоставляете, может включать символы в квадратные скобки ([ ]) для обозначения необязательных слов и символы вертикальной линейчатой строки (|) для обозначения альтернативных строк. Альтернативные варианты должны быть заключены в круглые скобки. Например, "(hello [there] | hi)" указывает обработчику речи принять слова "hello", "hello there" или "hi" для команды. Не забудьте добавить соответствующие пробелы между текстом, который заключен в квадратные скобки или круглые скобки, и текстом, который не заключен в квадратные скобки или скобки. Можно использовать оператор star (*), чтобы указать ноль или несколько экземпляров слов, включенных в группу, или оператор плюса (+) для указания одного или нескольких экземпляров. Например, следующие результаты в грамматике, которая поддерживает "try this", "please try this", "please please try this", with unlimited iterations of "please":

   "please* try this"

Следующий грамматический формат исключает "try this", так как оператор + определяет по крайней мере один экземпляр "please":

   "please+ try this"

Операторы повторения следуют обычным правилам приоритета и применяются к непосредственно предшествующему текстовому элементу. Например, следующая грамматика приводит к "New York" и "New York", но не "New York New York":

   "New York+"

Поэтому эти операторы обычно используются с символами группировки. Например, следующая грамматика включает как "Нью-Йорк", так и "Нью-Йорк Нью-Йорк":

   "(New York)+"

Операторы повторения полезны, если требуется составить грамматику, которая включает повторяющуюся последовательность, например номер телефона или спецификацию списка элементов.

   "call (one|two|three|four|five|six|seven|eight|nine|zero|oh)*"
   "I'd like (cheese|pepperoni|pineapple|canadian bacon|mushrooms|and)+"

Хотя операторы также можно использовать с необязательным символом группировки в квадратных скобках, это может снизить эффективность обработки грамматики агентом.

Вы также можете использовать многоточие (...) для поддержки распознавания слов, то есть, чтобы система распознавания речи пропускала слова, произнесенные в этой позиции во фразе (иногда называемая словами мусора ). Таким образом, речевой модуль распознает только определенные слова в строке независимо от того, когда произносится со смежными словами или фразами. Например, если для этого свойства задано значение "[...] проверка почте [...]" обработчик распознавания речи будет сопоставлять с этой командой такие фразы, как "please проверка mail" или "проверка mail please". Многоточие можно использовать в любом месте строки. Однако будьте осторожны, используя этот метод, так как это может увеличить вероятность нежелательных совпадений.

При определении грамматики слова для команды включите по крайней мере одно обязательное слово; то есть старайтесь не указывать только необязательные слова. Кроме того, убедитесь, что слово содержит только произносимые слова и буквы. Для чисел лучше изложить слово, а не использовать неоднозначное представление. Например, "345" не является хорошей грамматической формой. Аналогичным образом вместо "IEEE" используйте "I triple E". Кроме того, опустите знаки препинания. Например, вместо "пицца No 1 $ 10!", используйте "пицца номер один десять долларов". Включение невыносимых символов или символов для одной команды может привести к тому, что речевой механизм не сможет скомпилировать грамматику для всех команд. Наконец, сделайте голосовые параметры максимально отличными от других определяемых голосовых команд. Чем больше сходства между грамматикой голоса для команд, тем больше вероятность того, что речевой модуль выполнит ошибку распознавания. Вы также можете использовать оценки достоверности, чтобы лучше различать две команды, которые могут иметь схожее или похожее звучание грамматики голоса.

Вы можете включить в грамматические слова в виде "текст\произношение", где текст — это отображаемый текст, а произношение — это текст, уточняющий произношение. Например, грамматика "1st\first" будет распознана, когда пользователь говорит "first", но событие Command вернет текст "1st\first". Вы также можете использовать IPA (международный фонетический алфавит), чтобы указать произношение, начав произношение символом фунта ("#"), а затем включить текст, представляющий произношение IPA.

Для японских модулей распознавания речи можно определить грамматику в форме "кана\кандзи", уменьшая альтернативные произношения и повышая точность. (Порядок в обратном порядке для обеспечения обратной совместимости.) Это особенно важно для произношения собственных имен в кандзи. Тем не менее, вы можете просто передать в кандзи без каны, в этом случае двигатель должен слушать все приемлемые произношения для кандзи. Вы также можете передать только Кану.

Также обратите внимание, что для таких языков, как японский, китайский и тайский, которые не используют пробелы для обозначения разрывов слов, вставьте символ нулевой ширины Юникода (0x200B), чтобы обозначить логические разрывы слов.

За исключением ошибок, использующих символы форматирования группирования или повторения, агент не будет сообщать об ошибках в грамматике, если только модуль сам не сообщит об ошибке. Если вы передаете в грамматике текст, который обработчик не компилирует, но обработчик не обрабатывает и не возвращает как ошибку, агент не может сообщить об ошибке. Поэтому клиентское приложение должно тщательно определять грамматику для свойства Voice .

Примечание

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

 

Операция этого свойства зависит от состояния свойства распознавания речи сервера. Например, если распознавание речи отключено или не установлено, это свойство не действует.