Specificații gramaticale de recunoaștere a vorbirii

Speech Recognition Gramatică Specification (RSSG) este un W3C standard care descrie modul în care gramatici de recunoaștere a vorbirii (Engl. Speech gramatici de recunoaștere pot fi specificate). O gramatică de recunoaștere a vorbirii este o serie de scheme de cuvinte care spun sistemului de recunoaștere a vorbirii ceea ce ar spune o persoană. De exemplu, dacă se invocă un sistem automat de însoțitor, sistemul de recunoaștere a vorbirii ar cere numele persoanei cu care vorbi. Se numește apoi un program de recunoaștere a vorbirii care are o gramatică de recunoaștere a vorbirii. Această gramatică conține numele tuturor din director și diferitele tipare de propoziții pe care apelantii le folosesc de obicei pentru a apela.

SRGS specifică două sintaxi diferite, dar logic echivalente, una este bazată pe XML , cealaltă folosește BNF mărită . În practică, însă, sintaxa XML este utilizată mai des.

Dacă programul de recunoaștere a vorbirii ar returna doar un șir de cuvinte rostite, software-ul de vorbire ar trebui să facă munca foarte plictisitoare de extragere a semnificației semantice din cuvinte. Din acest motiv, gramaticile SRGS pot fi proiectate cu elemente de etichetă care, atunci când sunt executate, produc rezultatul semantic. SRGS nu specifică conținutul acestor elemente de etichetă: aceasta se face în cooperare cu standardul W3C Interpretare semantică pentru recunoașterea vorbirii (SISR). SISR se bazează pe ECMAScript declarații și ECMAScript între etichetele SRGS generează un rezultat semantic ECMAScript obiect care poate fi ușor de procesat de către aplicația de voce.

Atât SRGS, cât și SISR sunt recomandări W3C, adică în etapa finală pe drumul către standardul W3C. Standardul W3C VoiceXML , care definește modul în care sunt specificate dialogurile vocale, se bazează în mare măsură pe SRGS și SISR.

Exemple

Iată un exemplu de formă BNF mărită a SRGS, așa cum ar putea apărea într-o aplicație de director lingvistic:

#ABNF 1.0 ISO-8859-1;

// Standard-Grammatiksprache ist US-Englisch
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);

Iată același exemplu SRGS ca un formular 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 with André Roy </example>
    <example> may I speak with Jose </example>
  
    may I speak with
    <one-of>
      <item> <ruleref uri="#people1"/> </item>
      <item> <ruleref uri="#people2"/> </item>
    </one-of>
  </rule>
</grammar>

Vezi si

Link-uri web