SrgsRuleRef Costruttori

Definizione

Inizializza una nuova istanza della classe SrgsRuleRef.

Overload

SrgsRuleRef(SrgsRule)

Inizializza una nuova istanza della classe SrgsRuleRef e specifica la regola a cui fare riferimento.

SrgsRuleRef(Uri)

Inizializza una nuova istanza della classe SrgsRuleRef e specifica il percorso del file di grammatica esterno a cui fare riferimento.

SrgsRuleRef(SrgsRule, String)

Inizializza una nuova istanza della classe SrgsRuleRef, specificando la regola a cui fare riferimento e una stringa contenente una chiave semantica.

SrgsRuleRef(Uri, String)

Inizializza una nuova istanza della classe SrgsRuleRef, specificando il percorso del file di grammatica esterno e l'identificatore della regola a cui fare riferimento.

SrgsRuleRef(SrgsRule, String, String)

Inizializza una nuova istanza della classe SrgsRuleRef, specificando la regola a cui fare riferimento, l'alias di stringa del dizionario semantico e i parametri di inizializzazione.

SrgsRuleRef(Uri, String, String)

Inizializza una nuova istanza della classe SrgsRuleRef, specificando il percorso del file di grammatica esterno, l'identificatore della regola e l'alias di stringa del dizionario semantico.

SrgsRuleRef(Uri, String, String, String)

Inizializza una nuova istanza della classe SrgsRuleRef, specificando il percorso del file di grammatica esterno, l'identificatore della regola, l'alias di stringa del dizionario semantico e i parametri di inizializzazione.

SrgsRuleRef(SrgsRule)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Inizializza una nuova istanza della classe SrgsRuleRef e specifica la regola a cui fare riferimento.

public:
 SrgsRuleRef(System::Speech::Recognition::SrgsGrammar::SrgsRule ^ rule);
public SrgsRuleRef (System.Speech.Recognition.SrgsGrammar.SrgsRule rule);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : System.Speech.Recognition.SrgsGrammar.SrgsRule -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (rule As SrgsRule)

Parametri

rule
SrgsRule

Oggetto a cui fare riferimento.

Eccezioni

rule è null.

Esempio

Nell'esempio seguente viene creata una grammatica che riconosce la frase "Una nazione che ha vinto la Coppa del Mondo" seguita dal nome di un paese che ha vinto la Coppa del Mondo. Dopo aver creato l'oggetto winnerRule e assegnandolo all'identificatore SrgsRuleWorldCupWinnerdi stringa , nell'esempio viene aggiunta la stringa "Una nazione che ha vinto la Coppa del Mondo" alla regola. Usando SrgsOneOf gli oggetti, l'esempio compila quindi un elenco di paesi/aree europee e un elenco di paesi/aree geografiche sudamericane e aggiunge ogni elenco alla rispettiva regola ruleEurope o ruleSAmerica. L'esempio WorldCupWinner crea quindi riferimenti alle regole per ruleEurope e ruleSAmerica li aggiunge alla regola.

public void WorldSoccerWinners ()
{

  // Create an SrgsDocument, create a new rule
  // and set its scope to public.
  SrgsDocument document = new SrgsDocument();
  SrgsRule winnerRule = new SrgsRule("WorldCupWinner");
  winnerRule.Scope = SrgsRuleScope.Public;

  // Add the introduction.
  winnerRule.Elements.Add(new SrgsItem("A nation that has won the world cup is: "));

  // Create the rule for the European nations.
  SrgsOneOf oneOfEurope = new SrgsOneOf(new SrgsItem[] {new SrgsItem("England"),
    new SrgsItem("France"), new SrgsItem("Germany"), new SrgsItem("Italy")});
  SrgsRule ruleEurope = (new SrgsRule("EuropeanNations", new SrgsElement[] {oneOfEurope}));

  // Create the rule for the South American nations.
  SrgsOneOf oneOfSAmerica = new SrgsOneOf(new SrgsItem[] {new SrgsItem("Argentina"),
    new SrgsItem("Brazil"), new SrgsItem("Uruguay")});
  SrgsRule ruleSAmerica = (new SrgsRule("SouthAmericanNations", new SrgsElement[] {oneOfSAmerica}));

  // Add references to winnerRule for ruleEurope and ruleSAmerica.
  winnerRule.Elements.Add(new SrgsOneOf(new SrgsItem[] {(new SrgsItem
    (new SrgsRuleRef(ruleEurope))), new SrgsItem(new SrgsRuleRef(ruleSAmerica))}));

  // Add all the rules to the document and make winnerRule
  // the root rule of the document.
  document.Rules.Add(new SrgsRule[] {winnerRule, ruleEurope, ruleSAmerica});
  document.Root = winnerRule;
}

La grammatica creata ha il modulo seguente.

<grammar version="1.0" xml:lang="en-US" xmlns="http://www.w3.org/2001/06/grammar" root="WorldCupWinner">
    <rule id="WorldCupWinner" scope="public">
        <item> A nation that has won the world cup is </item>
        <one-of>
            <item>
                <ruleref uri="#EuropeanNations" />
            </item>
            <item>
                <ruleref uri="#SouthAmericanNations" />
            </item>
        </one-of>
    </rule>
    <rule id="EuropeanNations">
        <one-of>
            <item> England </item>
            <item> France </item>
            <item> Germany </item>
            <item> Italy </item>
        </one-of>
    </rule>
    <rule id="SouthAmericanNations">
        <one-of>
            <item> Argentina </item>
            <item> Brazil </item>
            <item> Uruguay </item>
        </one-of>
    </rule>
</grammar>

Commenti

Questo costruttore crea un riferimento a una regola a un SrgsRule oggetto all'interno della grammatica contenente. Per creare un riferimento a una regola a un elemento in un rule file di grammatica esterna, usare uno dei costruttori seguenti:

Vedi anche

Si applica a

SrgsRuleRef(Uri)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Inizializza una nuova istanza della classe SrgsRuleRef e specifica il percorso del file di grammatica esterno a cui fare riferimento.

public:
 SrgsRuleRef(Uri ^ uri);
public SrgsRuleRef (Uri uri);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : Uri -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (uri As Uri)

Parametri

uri
Uri

Posizione di un file di grammatica esterno alla grammatica contenitore.

Eccezioni

uri è null.

Esempio

Nell'esempio seguente viene creata una grammatica per un'applicazione che restituisce informazioni sul servizio bus shuttle. Il primo metodo, GrammarUrlForRoute, accetta una stringa che specifica una route e la aggiunge a una stringa che specifica la posizione di una grammatica. In questo modo viene specificata una regola specifica in tale grammatica. Il metodo restituisce un Uri oggetto per tale regola.

Il secondo metodo, CreateGrammarForRoute, crea un SrgsDocument elemento denominato grammar con un riferimento alla regola specificato dall'oggetto Uri passato da GrammarUrlForRoute. Si noti che la variabile denominata _route è un membro di una classe racchiusa.

private Uri GrammarUrlForRoute(string route)
{
  return new Uri("http://localhost/MyBus/MyBusLocations.grxml#LocationsForRoute" + route);
}

private SrgsDocument CreateGrammarForRoute()
{
  SrgsDocument grammar = new SrgsDocument();
  grammar.Mode = SrgsGrammarMode.Voice;
  SrgsRule rule = new SrgsRule("LocationsForRoute" + _route);
  SrgsRuleRef ruleref = new SrgsRuleRef(GrammarUrlForRoute(_route));

  SrgsSemanticInterpretationTag tag = new SrgsSemanticInterpretationTag ("$.Location = $$");

  rule.Elements.Add(ruleref);
  rule.Elements.Add(tag);
  grammar.Rules.Add(rule);
  grammar.Root = rule;
  return grammar;
}

Nota

La variabile denominata _route è non dichiarata e non definita nell'esempio precedente. Deve essere dichiarato come un String oggetto e contenere il numero di route per una determinata route del bus prima che l'esempio precedente venga compilato ed eseguito.

Commenti

Questo costruttore crea un riferimento a una regola a un file di grammatica esterna. L'URI può includere anche l'identificatore di una regola a cui fare riferimento, ad esempio http://www.contoso.com/ExternalGrammar.grxml#targetRule. Se il parametro non specifica un identificatore di regola, il uri riferimento alla regola fa riferimento alla regola radice della grammatica di destinazione. Per creare un riferimento a una regola a un SrgsRule oggetto all'interno della stessa grammatica, usare uno dei costruttori seguenti:

Vedi anche

Si applica a

SrgsRuleRef(SrgsRule, String)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Inizializza una nuova istanza della classe SrgsRuleRef, specificando la regola a cui fare riferimento e una stringa contenente una chiave semantica.

public:
 SrgsRuleRef(System::Speech::Recognition::SrgsGrammar::SrgsRule ^ rule, System::String ^ semanticKey);
public SrgsRuleRef (System.Speech.Recognition.SrgsGrammar.SrgsRule rule, string semanticKey);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : System.Speech.Recognition.SrgsGrammar.SrgsRule * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (rule As SrgsRule, semanticKey As String)

Parametri

rule
SrgsRule

Oggetto a cui fare riferimento.

semanticKey
String

La chiave semantica.

Esempio

Nell'esempio seguente viene creata una grammatica per la scelta delle città per un volo. L'esempio costruisce due SrgsRuleRef istanze, ognuna delle quali specifica una chiave semantica. Entrambi i riferimenti alle regole fanno riferimento allo stesso SrgsRule oggetto, denominato cities, ma contrassegnano il risultato del riconoscimento dal riferimento alla regola con una chiave semantica diversa. La chiave semantica identifica una città riconosciuta come città di partenza o città di arrivo per il volo. Il gestore per l'evento SpeechRecognized usa le chiavi per recuperare i valori semantici creati usando SrgsNameValueTag il risultato del riconoscimento.

using System;
using System.Speech.Recognition;
using System.Speech.Recognition.SrgsGrammar;

namespace SampleRecognition
{
  class Program
  {
    static void Main(string[] args)

    // Initialize a SpeechRecognitionEngine object.
    {
      using (SpeechRecognitionEngine recognizer =
         new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")))
      {

        // Build a rule with a list of cities, assign a semantic value to each city.
        SrgsItem chi = new SrgsItem("Chicago");
        chi.Add(new SrgsNameValueTag("ORD"));
        SrgsItem bos = new SrgsItem("Boston");
        bos.Add(new SrgsNameValueTag("BOS"));
        SrgsItem mia = new SrgsItem("Miami");
        mia.Add(new SrgsNameValueTag("MIA"));
        SrgsItem dal = new SrgsItem("Dallas");
        dal.Add(new SrgsNameValueTag("DFW"));

        SrgsOneOf cities = new SrgsOneOf(new SrgsItem[] { chi, bos, mia, dal });
        SrgsRule citiesRule = new SrgsRule("flightCities");
        citiesRule.Add(cities);

        // Build the root rule, add rule references to the cities rule.
        SrgsRule flightBooker = new SrgsRule("bookFlight");
        flightBooker.Add(new SrgsItem("I want to fly from"));
        flightBooker.Add(new SrgsRuleRef(citiesRule, "departureCity"));
        flightBooker.Add(new SrgsItem("to"));
        flightBooker.Add(new SrgsRuleRef(citiesRule, "arrivalCity"));

        // Build an SrgsDocument object from the flightBooker rule and add the cities rule.
        SrgsDocument cityChooser = new SrgsDocument(flightBooker);
        cityChooser.Rules.Add(citiesRule);

        // Create a Grammar object from the SrgsDocument and load it to the recognizer.
        Grammar departArrive = new Grammar(cityChooser);
        departArrive.Name = ("Cities Grammar");
        recognizer.LoadGrammarAsync(departArrive);

        // Configure recognizer input.
        recognizer.SetInputToDefaultAudioDevice();

        // Attach a handler for the SpeechRecognized event.
        recognizer.SpeechRecognized +=
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);

        // Start asynchronous recognition.
        recognizer.RecognizeAsync();
        Console.WriteLine("Starting asynchronous recognition...");

        // Keep the console window open.
        Console.ReadLine();
      }
    }

    // Handle the SpeechRecognized event.
    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
      Console.WriteLine("Speech recognized: " + e.Result.Text);
      Console.WriteLine();
      Console.WriteLine("Semantic results:");
      Console.WriteLine("  The departure city is: " + e.Result.Semantics["departureCity"].Value);
      Console.WriteLine("  The destination city is: " + e.Result.Semantics["arrivalCity"].Value);
    }
  }
}

Commenti

Questo costruttore crea un riferimento a una regola a un SrgsRule oggetto all'interno della grammatica contenente. Per creare un riferimento a una regola a un elemento in un rule file di grammatica esterna, usare uno dei costruttori seguenti:

Vedi anche

Si applica a

SrgsRuleRef(Uri, String)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Inizializza una nuova istanza della classe SrgsRuleRef, specificando il percorso del file di grammatica esterno e l'identificatore della regola a cui fare riferimento.

public:
 SrgsRuleRef(Uri ^ uri, System::String ^ rule);
public SrgsRuleRef (Uri uri, string rule);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : Uri * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (uri As Uri, rule As String)

Parametri

uri
Uri

Posizione di un file di grammatica esterno alla grammatica contenitore.

rule
String

L'identificatore della regola di riferimento.

Eccezioni

uri è null.

rule è null.

Commenti

Questo costruttore crea un riferimento a una regola a un elemento in un rule file di grammatica esterna. Per creare un riferimento a una regola a un SrgsRule oggetto all'interno della stessa grammatica, usare uno dei costruttori seguenti:

Vedi anche

Si applica a

SrgsRuleRef(SrgsRule, String, String)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Inizializza una nuova istanza della classe SrgsRuleRef, specificando la regola a cui fare riferimento, l'alias di stringa del dizionario semantico e i parametri di inizializzazione.

public:
 SrgsRuleRef(System::Speech::Recognition::SrgsGrammar::SrgsRule ^ rule, System::String ^ semanticKey, System::String ^ parameters);
public SrgsRuleRef (System.Speech.Recognition.SrgsGrammar.SrgsRule rule, string semanticKey, string parameters);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : System.Speech.Recognition.SrgsGrammar.SrgsRule * string * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (rule As SrgsRule, semanticKey As String, parameters As String)

Parametri

rule
SrgsRule

Oggetto a cui fare riferimento.

semanticKey
String

La chiave semantica.

parameters
String

I parametri di inizializzazione per un oggetto di SrgsRuleRef .

Commenti

Questo costruttore crea un riferimento a una regola a un SrgsRule oggetto all'interno della grammatica contenente. Per creare un riferimento a una regola a un elemento in un rule file di grammatica esterna, usare uno dei costruttori seguenti:

Vedi anche

Si applica a

SrgsRuleRef(Uri, String, String)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Inizializza una nuova istanza della classe SrgsRuleRef, specificando il percorso del file di grammatica esterno, l'identificatore della regola e l'alias di stringa del dizionario semantico.

public:
 SrgsRuleRef(Uri ^ uri, System::String ^ rule, System::String ^ semanticKey);
public SrgsRuleRef (Uri uri, string rule, string semanticKey);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : Uri * string * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (uri As Uri, rule As String, semanticKey As String)

Parametri

uri
Uri

Posizione di un file di grammatica esterno alla grammatica contenitore.

rule
String

L'identificatore della regola di riferimento.

semanticKey
String

Stringa dell'alias per il dizionario semantico.

Eccezioni

uri è null.

semanticKey è null.

semanticKey è vuoto.

Commenti

Questo costruttore crea un riferimento a una regola a un elemento in un rule file di grammatica esterna. Per creare un riferimento a una regola a un SrgsRule oggetto all'interno della stessa grammatica, usare uno dei costruttori seguenti:

Vedi anche

Si applica a

SrgsRuleRef(Uri, String, String, String)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Inizializza una nuova istanza della classe SrgsRuleRef, specificando il percorso del file di grammatica esterno, l'identificatore della regola, l'alias di stringa del dizionario semantico e i parametri di inizializzazione.

public:
 SrgsRuleRef(Uri ^ uri, System::String ^ rule, System::String ^ semanticKey, System::String ^ parameters);
public SrgsRuleRef (Uri uri, string rule, string semanticKey, string parameters);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : Uri * string * string * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (uri As Uri, rule As String, semanticKey As String, parameters As String)

Parametri

uri
Uri

Posizione di un file di grammatica esterno alla grammatica contenitore.

rule
String

L'identificatore della regola di riferimento.

semanticKey
String

La chiave semantica.

parameters
String

I parametri di inizializzazione per un oggetto di SrgsRuleRef .

Commenti

Questo costruttore crea un riferimento a una regola a un elemento in un rule file di grammatica esterna. Per creare un riferimento a una regola a un SrgsRule oggetto all'interno della stessa grammatica, usare uno dei costruttori seguenti:

Vedi anche

Si applica a