Поделиться через


IAgentCommands::SetVoice

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

HRESULT SetVoice(
   BSTR bszVoice  // the Voice setting for Command collection
);

Задает свойство Текст голоса для команды.

  • Возвращает S_OK, указывающее, что операция была успешной.

bszVoice

Объект BSTR, указывающий значение свойства Текст голоса коллекции Commands .

Для коллекции Commands должно быть задано свойство Текст голоса , которое должно быть доступно для голосовых функций. Кроме того, свойство VoiceCaption или Caption должно отображаться в окне голосовых команд, а для свойства Visibleзначение True , чтобы оно отображалось во всплывающем меню символа.

Указанное выражение BSTR может включать символы в квадратные скобки ([ ]) для обозначения необязательных слов и символы вертикальной линейчатой черты (|) для обозначения альтернативных строк. Альтернативные варианты должны быть заключены в круглые скобки. Например, "(hello [there] | hi)" указывает обработчику речи принять слова "hello", "hello there" или "hi" для команды. Не забудьте добавить соответствующие пробелы между словами, которые вы включаете в квадратные скобки или круглые скобки, а также другой текст. Не забудьте добавить соответствующие пробелы между текстом, который заключен в квадратные скобки или круглые скобки, и текстом, который не заключен в квадратные скобки или скобки.

Можно использовать оператор star (*), чтобы указать ноль или несколько экземпляров слов, включенных в группу, или оператор плюса (+) для указания одного или нескольких экземпляров. Например, следующие результаты в грамматике, которая поддерживает "try this", "please try this" и "please please try this" с неограниченными итерациями "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!", используйте "пицца номер один десять долларов". Включение невыносимых символов или символов для одной команды может привести к тому, что речевой механизм не сможет скомпилировать грамматику для всех команд. Наконец, сделайте голосовые параметры максимально отличными от других определяемых голосовых команд. Чем больше сходства между грамматикой голоса для команд, тем больше вероятность того, что речевой модуль выполнит ошибку распознавания. Вы также можете использовать оценки достоверности, чтобы лучше различать две команды, которые могут иметь схожее или похожее звучание грамматики голоса.

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

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

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

Примечание

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

 

Работа этого свойства зависит от состояния распознавания речи сервера Агента Майкрософт. Например, если распознавание речи отключено или не установлено, эта функция не оказывает немедленного влияния. Однако если распознавание речи включено во время сеанса, команда станет доступной, когда ее клиентское приложение активна для ввода.

См. также:

IAgentCommands::GetVoice, IAgentCommands::SetCaption, IAgentCommands::SetVisible