Спецификация грамматики распознавания речи
Спецификация грамматики распознавания речи (SRGS) — это W3C стандарт распознавания речи грамматик , определяющий определение . Грамматика распознавания речи представляет собой набор шаблонов слов и сообщает системе распознавания речи, чего ожидать от человека. Например, если вы позвоните в приложение автосекретаря , оно запросит у вас имя человека (с ожиданием, что ваш звонок будет перенаправлен на телефон этого человека). Затем он запустит распознаватель речи, передав ему грамматику распознавания речи. Эта грамматика содержит имена людей в каталоге автосекретаря и набор шаблонов предложений, которые являются типичными ответами вызывающих абонентов на приглашение.
SRGS определяет два альтернативных, но эквивалентных синтаксиса: один основан на XML , а другой использует расширенный формат BNF . На практике синтаксис XML используется чаще.
И форма ABNF, и форма XML обладают выразительной силой контекстно-свободной грамматики . Грамматический процессор, не поддерживающий рекурсивные грамматики, обладает выразительной мощью конечного автомата или регулярных выражений языка .
Если бы распознаватель речи возвращал только строку, содержащую фактические слова, произнесенные пользователем, голосовому приложению пришлось бы выполнять утомительную работу по извлечению семантического значения из этих слов. По этой причине грамматики SRGS могут быть украшены элементами тегов , которые при выполнении создают семантический результат. SRGS не определяет содержимое элементов тега: это делается в сопутствующем стандарте W3C — семантической интерпретации для распознавания речи (SISR). SISR основан на ECMAScript , а операторы ECMAScript внутри тегов SRGS создают семантический результирующий объект ECMAScript, который легко обрабатывается голосовым приложением.
И SRGS, и SISR являются Рекомендациями W3C, заключительным этапом трека стандартов W3C. Стандарт W3C VoiceXML , определяющий способ указания голосовых диалогов, во многом зависит от SRGS и SISR.
Примеры
[ редактировать ]Вот пример расширенного BNF SRGS, который можно использовать в приложении автосекретаря:
#ABNF 1.0 ISO-8859-1;
// Default grammar language is US English
language en-US;
// Single language attachment to tokens
// Note that "fr-CA" (Canadian French) is applied to only
// the word "oui" because of precedence rules
$yes = yes | oui!fr-CA;
// Single language attachment to an expansion
$people1 = (Michel Tremblay | André Roy)!fr-CA;
// Handling language-specific pronunciations of the same word
// A capable speech recognizer will listen for Mexican Spanish and
// US English pronunciations.
$people2 = Jose!en-US | Jose!es-MX;
/**
* Multi-lingual input possible
* @example may I speak to André Roy
* @example may I speak to Jose
*/
public $request = may I speak to ($people1 | $people2);
Вот тот же пример SRGS с использованием формы XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE grammar PUBLIC "-//W3C//DTD GRAMMAR 1.0//EN"
"http://www.w3.org/TR/speech-grammar/grammar.dtd">
<!-- the default grammar language is US English -->
<grammar xmlns="http://www.w3.org/2001/06/grammar"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/06/grammar
http://www.w3.org/TR/speech-grammar/grammar.xsd"
xml:lang="en-US" version="1.0">
<!--
single language attachment to tokens
"yes" inherits US English language
"oui" is Canadian French language
-->
<rule id="yes">
<one-of>
<item>yes</item>
<item xml:lang="fr-CA">oui</item>
</one-of>
</rule>
<!-- Single language attachment to an expansion -->
<rule id="people1">
<one-of xml:lang="fr-CA">
<item>Michel Tremblay</item>
<item>André Roy</item>
</one-of>
</rule>
<!--
Handling language-specific pronunciations of the same word
A capable speech recognizer will listen for Mexican Spanish
and US English pronunciations.
-->
<rule id="people2">
<one-of>
<item xml:lang="en-US">Jose</item>
<item xml:lang="es-MX">Jose</item>
</one-of>
</rule>
<!-- Multi-lingual input is possible -->
<rule id="request" scope="public">
<example> may I speak to André Roy </example>
<example> may I speak to Jose </example>
may I speak to
<one-of>
<item> <ruleref uri="#people1"/> </item>
<item> <ruleref uri="#people2"/> </item>
</one-of>
</rule>
</grammar>
См. также
[ редактировать ]- СИСР
- ГолосXML
- Спецификация словаря произношения (PLS)
- Язык разметки семантики естественного языка
- JSGF