Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Спецификация грамматики распознавания речи (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 ;  // Язык грамматики по умолчанию - английский (США) en-US ;  // Одноязычное присоединение к токенам  // Обратите внимание, что «fr-CA» (канадский французский) применяется только  // к слову «oui» из-за правил приоритета $ yes = yes | oui! fr-CA ;  // Прикрепление к расширению на одном языке $ people1 =  ( Michel Tremblay | André Roy ) ! Fr-CA ;  // Обработка языкового произношения одного и того же слова  // Способный распознаватель речи будет прослушивать мексиканские испанские и  // английские варианты произношения.  $ people2 = Jose! en-US | Jose! Es-MX ;  / **  * Возможен многоязычный ввод  * @example могу я поговорить с Андре Роем  * @example могу я поговорить с Хосе * /  public $ request = могу я поговорить с ( $ 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 "> <! - языком грамматики по умолчанию является английский (США) -> <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" >  <! -  одноязычное присоединение к токенам  «yes» наследует американский английский язык  «oui» является канадским французским языком  ->  <rule  id = "yes" >  <one-of>  <item> yes </item>  <item  xml : lang = "fr-CA" > oui </item>  </one-of>  </rule>   <! -  Одноязычное приложение к расширению -> <rule  id = "people1" >  <one-of  xml: lang = "fr-CA" >  <item> Michel Tremblay </item>  <item> André Roy < / элемент>  </one-of>  </rule>  <! -  Обработка языкового произношения одного и того же слова  . Способный распознаватель речи прислушивается к мексиканскому испанскому  и американскому английскому произношению.  ->  <rule  id = "people2" >  <one-of>  <item  xml: lang = "en-US" > Хосе </item>  <item  xml: lang = "es-MX" > Хосе </item>  </one-of>  </rule>  <! - Возможен многоязычный ввод ->  <rule  id = "request"  scope = "public" >  <example> можно мне поговорить с Андре Роем? </example>  <example> можно поговорить с Хосе </ example >  могу ли я поговорить с <one-of>  <item>  <ruleref  uri = "# people1" />  </item>  <item>  <ruleref  uri = "# people2" />  </item>  </one-of>  </rule> < / грамматика>

См. Также [ править ]

Внешние ссылки [ править ]