IAgentCommand::SetVoice
[Агент Майкрософт не рекомендуется использовать в Windows 7 и может быть недоступен в последующих версиях Windows.]
HRESULT SetVoice(
BSTR bszVoice // voice text setting for Command
);
Задает свойство Voice для команды.
- Возвращает S_OK для указания успешной операции.
Свойство Command должно иметь свойства Voice и Enabled , чтобы иметь доступ к голосовой связи. Кроме того, свойство VoiceCaption должно отображаться в окне голосовых команд. (Для обратной совместимости, если VoiceCaption отсутствует, используется параметр Субтитры .)
Указанное выражение 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)+"
Операторы повторения полезны при создании грамматики, которая включает повторяющуюся последовательность, например номер телефона или спецификацию списка элементов:
"call (one|two|three|four|five|six|seven|eight|nine|zero|oh)*"
"I'd like (cheese|pepperoni|pineapple|canadian bacon|mushrooms|and)+"
Хотя операторы также можно использовать с квадратными скобками (необязательный символ группировки), это может снизить эффективность обработки грамматики агентом.
Вы также можете использовать многоточие (...) для поддержки выделения слов, т. е. для того, чтобы система распознавания речи пропускала слова, произносимые в этой позиции фразы (иногда называемые мусорными словами). Таким образом, речевой модуль распознает только определенные слова в строке независимо от того, когда произносится со смежными словами или фразами. Например, если для этого свойства задано значение "[...] проверка почты [...]" подсистема распознавания речи будет сопоставлять фразы, такие как "пожалуйста, проверка mail" или "проверка mail please" с этой командой. Многоточие можно использовать в любом месте строки. Однако будьте осторожны, используя этот метод, так как параметры голоса с многоточием могут увеличить потенциал нежелательных совпадений.
При определении слов и грамматики для команды всегда убедитесь, что вы включаете хотя бы одно обязательное слово; то есть старайтесь не указывать только необязательные слова. Кроме того, убедитесь, что слово содержит только произносимые слова и буквы. Для чисел лучше изложить слово, чем использовать числовое представление. Кроме того, опустите знаки препинания или символы. Например, вместо "пицца no1 $10!", используйте "пицца номер один десять долларов". Включение неизносимых символов или символов для одной команды может привести к тому, что обработчик речи не сможет скомпилировать грамматику для всех команд. Наконец, сделайте параметр голоса максимально отличным от других голосовых команд, которые вы определяете. Чем больше сходство между грамматикой голоса для команд, тем выше вероятность того, что речевой модуль сделает ошибку распознавания. Вы также можете использовать оценки достоверности, чтобы лучше различать две команды, которые могут иметь похожую или схожую грамматику голоса.
Задание свойства Voice для команды автоматически включает службы распознавания речи агента, делая доступными ключ прослушивания и подсказку по прослушивателю. Однако он не загружает подсистему распознавания речи.
Примечание
Доступные функции грамматики могут зависеть от механизма распознавания речи. Вы можете проверка с поставщиком подсистемы, чтобы определить, какие варианты грамматики поддерживаются. Используйте IAgentCharacterEx::SRModeID , чтобы указать подсистему.
См. также:
IAgentCommand::GetVoice, IAgentCommand::SetCaption, IAgentCommand::SetEnabled, IAgentCommands::Add, IAgentCommands::Insert