Condividi tramite


Grammar Classe

Definizione

Oggetto runtime che fa riferimento a una grammatica di riconoscimento vocale, che un'applicazione può usare per definire i vincoli per il riconoscimento vocale.

public ref class Grammar
public class Grammar
type Grammar = class
Public Class Grammar
Ereditarietà
Grammar
Derivato

Esempio

Nell'esempio seguente viene creato un Grammar oggetto da una grammatica di riconoscimento vocale definita in un file XML (cities.xml). Il contenuto del file cities.xml viene visualizzato nell'esempio XML seguente.

// Load a cities grammar from a local file and return the grammar object.
private static Grammar CreateGrammarFromFile()
{
  Grammar citiesGrammar = new Grammar(@"c:\temp\cities.xml");
  citiesGrammar.Name = "SRGS File Cities Grammar";
  return citiesGrammar;
}
<?xml version="1.0" encoding="UTF-8" ?>
<grammar version="1.0" xml:lang="en-US"
         xmlns="http://www.w3.org/2001/06/grammar"
         tag-format="semantics/1.0" root="Main">

  <!-- cities.xml:
    Defines an SRGS grammar for requesting a flight. This grammar includes
    a Cities rule that lists the cities that can be used for departures
    and destinations. -->

  <rule id="Main">
    <item>
      I would like to fly from <ruleref uri="#Cities"/>
      to <ruleref uri="#Cities"/>
    </item>
  </rule>

  <rule id="Cities" scope="public">
    <one-of>
      <item> Seattle </item>
      <item> Los Angeles </item>
      <item> New York </item>
      <item> Miami </item>
    </one-of>
  </rule>
</grammar>

Commenti

Una grammatica di riconoscimento vocale è un set di regole o vincoli che definiscono ciò che un motore di riconoscimento vocale può riconoscere come input significativo. Per altre informazioni sulla creazione e l'uso delle grammatiche di riconoscimento vocale, vedere Riconoscimento vocale e Creare grammatiche con SrgsGrammar.

Dopo aver creato una grammatica, è necessario compilarla in un Grammar oggetto che un motore di riconoscimento vocale può caricare e che l'applicazione può usare in fase di esecuzione per gestire il riconoscimento vocale. È possibile usare un Grammar costruttore per creare un'istanza Grammar da un GrammarBuilder oggetto o SrgsDocument da un file o da un Stream oggetto contenente una descrizione di una grammatica in un formato supportato. I formati supportati includono quanto segue:

I costruttori di grammatica che accettano file di grammatica in formato XML nei relativi argomenti compilano le grammatiche XML in un formato binario per ottimizzarle per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un Grammar oggetto da una grammatica in formato XML compilando la grammatica in anticipo, usando uno dei Compile metodi .

Il motore di riconoscimento vocale di un'applicazione, gestito da un SpeechRecognizer oggetto o SpeechRecognitionEngine , può caricare più grammatiche di riconoscimento vocale. L'applicazione può abilitare o disabilitare in modo indipendente le singole grammatiche impostando la proprietà e modificando il Enabled comportamento di riconoscimento tramite Grammar proprietà, ad esempio le Priority proprietà e Weight .

L'evento della SpeechRecognized grammatica viene generato quando l'input corrisponde a un percorso attraverso la grammatica.

Importante

L'uso di un'istanza di questo tipo con dati non attendibili è un rischio per la sicurezza. Utilizzare questo oggetto solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.

Annotazioni

È consigliabile verificare la sicurezza di qualsiasi URI o DLL usato per compilare un Grammar oggetto, che consente di evitare vulnerabilità di sicurezza durante il caricamento di risorse esterne.

Windows e la piattaforma Voce offrono sicurezza per le applicazioni che creano un'istanza Grammar da una DLL o da una grammatica che supporta lo scripting.

Gli script negli Grammar oggetti vengono sempre eseguiti come se scaricati da una pagina Web in Internet Zone. Common Language Runtime (CLR) isola qualsiasi DLL caricata per ottenere una definizione di grammatica.

Costruttori

Nome Descrizione
Grammar()

Inizializza una nuova istanza della classe Grammar.

Grammar(GrammarBuilder)

Inizializza una nuova istanza della Grammar classe da un GrammarBuilder oggetto .

Grammar(SrgsDocument, String, Object[])

Inizializza una nuova istanza della Grammar classe da un'istanza di SrgsDocumente specifica il nome di una regola come punto di ingresso della grammatica.

Grammar(SrgsDocument, String, Uri, Object[])

Inizializza una nuova istanza della Grammar classe da un'istanza di SrgsDocumente specifica il nome di una regola come punto di ingresso della grammatica e un URI di base per risolvere i riferimenti relativi.

Grammar(SrgsDocument, String, Uri)

Inizializza una nuova istanza della Grammar classe da un SrgsDocument oggetto , specifica una regola radice e definisce un URI (Uniform Resource Identifier) di base per risolvere i riferimenti alle regole relative.

Grammar(SrgsDocument, String)

Inizializza una nuova istanza della Grammar classe da un SrgsDocument oggetto e specifica una regola radice.

Grammar(SrgsDocument)

Inizializza una nuova istanza della Grammar classe da un SrgsDocument oggetto .

Grammar(Stream, String, Object[])

Inizializza una nuova istanza della Grammar classe da un Stream oggetto e specifica una regola radice.

Grammar(Stream, String, Uri, Object[])

Inizializza una nuova istanza della Grammar classe a Stream e specifica una regola radice e un URI di base per risolvere i riferimenti relativi.

Grammar(Stream, String, Uri)

Inizializza una nuova istanza della Grammar classe da un flusso, specifica una regola radice e definisce un URI (Uniform Resource Identifier) di base per risolvere i riferimenti alle regole relative.

Grammar(Stream, String)

Inizializza una nuova istanza della Grammar classe da un Stream oggetto e specifica una regola radice.

Grammar(Stream)

Inizializza una nuova istanza della Grammar classe da un oggetto Stream.

Grammar(String, String, Object[])

Inizializza una nuova istanza della Grammar classe da un file che contiene una definizione di grammatica e specifica il nome di una regola come punto di ingresso della grammatica.

Grammar(String, String)

Inizializza una nuova istanza della Grammar classe da un file e specifica una regola radice.

Grammar(String)

Inizializza una nuova istanza della Grammar classe da un file.

Proprietà

Nome Descrizione
Enabled

Ottiene o imposta un valore che controlla se un Grammar oggetto può essere utilizzato da un riconoscimento vocale per eseguire il riconoscimento.

IsStg

Ottiene un valore che indica se una grammatica è fortemente tipizzata.

Loaded

Ottiene un valore che indica se un oggetto Grammar è stato caricato da un riconoscimento vocale.

Name

Ottiene o imposta il nome di un Grammar oggetto .

Priority

Ottiene o imposta il valore di priorità di un Grammar oggetto .

ResourceName

Ottiene o imposta un valore con il nome di una risorsa binaria utilizzata per caricare l'oggetto corrente Grammar.

RuleName

Ottiene il nome della regola radice o del punto di ingresso di un Grammar oggetto .

Weight

Ottiene o imposta il valore di peso di un Grammar oggetto .

Metodi

Nome Descrizione
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
LoadLocalizedGrammarFromType(Type, Object[])

Il LoadLocalizedGrammarFromType metodo restituisce un'istanza localizzata di un Grammar oggetto derivato da Type.

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
StgInit(Object[])

Il StgInit metodo inizializza una grammatica fortemente tipizzata.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

Nome Descrizione
SpeechRecognized

Generato quando un riconoscimento vocale esegue il riconoscimento usando l'oggetto Grammar .

Si applica a

Vedi anche