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

Семантическая интерпретация для распознавания речи (SISR) определяет синтаксис и семантику аннотаций к правилам грамматики в Спецификации грамматики распознавания речи (SRGS). С 5 апреля 2007 года это рекомендация Консорциума World Wide Web . [1]

Основываясь на грамматиках SRGS, он позволяет голосовым браузерам через ECMAScript семантически интерпретировать сложные грамматики и передавать информацию обратно в приложение. Например, он позволяет произносить фразы типа «Я хочу кока-колу и три большие пиццы с пепперони и грибами». быть интерпретированным в объект, который может быть понят приложением. Например, высказывание может создать следующий объект с именем order :

 {  напиток :  {  жидкость : " кола " ,  размер напитка : "средний"  },  пицца :  {  число :  "3" ,  пицца :  "большая" ,  начинка :  [  "пепперони" ,  "грибы"  ]  }  }

Если используется против этой грамматики, которая включает разметку SISR в дополнение к стандартной грамматике SRGS в формате XML:

<? xml version = "1.0" encoding = "UTF-8"?>  <! 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 "  xml: lang = " en "  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 "  version = " 1.0 "  mode = " voice "  tag-format = " semantics / 1.0 "  root = " order " > <rule  id = "order" > Я бы хотел <ruleref  uri = "#drink" />  <tag> out.drink = новый объект (); out.drink.liquid = rules.drink.type; out.drink.drinksize = rules.drink.drinksize; </tag> и <ruleref  uri = "#pizza" />  <tag> out.pizza = rules.pizza; </tag>  </rule>  <rule  id = "kindofdrink" >  <one-of>  <item> кокс </item>  <item> пепси </item>  <item> кока-кола <tag> out = "кокс" ; </tag> </item>  </one-of>  </rule>  <rule  id = "foodsize" >  <tag> out = "medium"; </tag>  <! - "средний" по умолчанию, если ничего не сказано -> <item  repeat = "0-1" >  <one-of>  <item> маленький<tag> out = "маленький"; </tag> </item>  <item> medium </item>  <item> large <tag> out = "large"; </tag> </item>  <item> обычный <tag> out = "medium"; </tag> </item>  </one-of>  </item>  </rule>  <! - Создать массив начинок, вернуть массив ->  <rule  id = "tops" >  <tag> out = new Множество; </tag>  <ruleref  uri = "#top" />  <tag> out.push (rules.top);</tag>  <item  repeat = "1-" > и <ruleref  uri = "#top" />  <tag> out.push (rules.top); </tag>  </item>  </rule>  <rule  id = "top" >  <one-of>  <item> анчоусы </item>  <item> пепперони </item>  <item> гриб <tag> out = «грибы»; </tag> </item>  <item> грибов </item>  </one-of>  </rule>  <! - Два свойства (размер напитка, тип) слева Переменная правила ->  <rule  id = "напиток " >  <ruleref  uri = " #foodsize " />  <ruleref uri = "#kindofdrink" />  <тег> out.drinksize = rules.foodsize; out.type = rules.kindofdrink; </tag>  </rule>  <! - Три свойства на rules.pizza ->  <rule  id = "pizza" >  <ruleref  uri = "#number" />  <ruleref  uri = "#foodsize" />  < тег> out.pizzasize = rules.foodsize; out.number = rules.number; </tag> пицца с <ruleref  uri = "#tops" />  <tag> out.topping = rules.tops; </tag>  </rule>  <rule  id = "number" >  <one-of>  <item>  <tag> out = 1; </tag>  <one-of>  <item> a </item>  <item> один </item>  </one-of>  </item>  <item> два <tag> out = 2; </tag> </item>  <item> three <tag> out = 3; </tag> </item>  </one-of>  </ правило> </grammar>

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

Ссылки [ править ]

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