IAgentCommand::SetVoice

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

HRESULT SetVoice(
   BSTR bszVoice  // voice text setting for Command
);

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

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

bszVoice

BSTR, указывающий текст для свойства voice команды.

Команднаядолжна иметь свойство voice и свойство Включено для доступа к голосовой связи. Кроме того, он должен иметь свойство VoiceCaption, которое должно отображаться в окне голосовых команд. (Если нет VoiceCaptionобратной совместимости, используется параметрзаголовка.)

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

С помощью оператора star (*) можно указать ноль или несколько экземпляров слов, включенных в группу или оператор плюса (+), чтобы указать один или несколько экземпляров. Например, следующие результаты в грамматике, которая поддерживает "попробовать это", "пожалуйста, попробуйте", и "пожалуйста, пожалуйста, попробуйте это", с неограниченными итерациями "пожалуйста":

   "please* try this"

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

   "please+ try this"

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

   "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)+"

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

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

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

Задание свойства голосовой длякомандыавтоматически включает службы речи агента, что делает ключ прослушивания и подсказку прослушивания доступными. Однако он не загружает подсистему распознавания речи.

Заметка

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

 

См. также

IAgentCommand::GetVoice, IAgentCommand::SetCaption, IAgentCommand::SetEnabled, IAgentCommands::Add, IAgentCommands::Insert