Condividi tramite


SrgsRuleRef Costruttori

Definizione

Inizializza una nuova istanza della classe SrgsRuleRef.

Overload

Nome Descrizione
SrgsRuleRef(SrgsRule)

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

SrgsRuleRef(Uri)

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

SrgsRuleRef(SrgsRule, String)

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

SrgsRuleRef(Uri, String)

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

SrgsRuleRef(SrgsRule, String, String)

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

SrgsRuleRef(Uri, String, String)

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

SrgsRuleRef(Uri, String, String, String)

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

SrgsRuleRef(SrgsRule)

Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs

Inizializza una nuova istanza della SrgsRuleRef classe 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 avergli dato l'identificatore SrgsRuleWorldCupWinnerstringa , l'esempio aggiunge 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 sudamericani e aggiunge ogni elenco alla rispettiva regola ruleEurope o ruleSAmerica. L'esempio crea quindi i riferimenti alle regole per ruleEurope e ruleSAmerica li aggiunge alla WorldCupWinner 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 formato 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 contenitore. Per creare un riferimento a una regola a un elemento in un rule file di grammatica esterno, utilizzare uno dei costruttori seguenti:

Si applica a

SrgsRuleRef(Uri)

Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs

Inizializza una nuova istanza della SrgsRuleRef classe e specifica il percorso del file grammaticale 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

Percorso di un file di grammatica all'esterno della grammatica che lo contiene.

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. Specifica una determinata regola in tale grammatica. Il metodo restituisce un oggetto Uri 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 contenitore.

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;
}

Annotazioni

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

Commenti

Questo costruttore crea un riferimento a una regola a un file di grammatica esterno. 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 uri parametro non specifica un identificatore di regola, il riferimento alla regola punta alla regola radice della grammatica di destinazione. Per creare un riferimento a una regola a un SrgsRule oggetto all'interno della stessa grammatica, utilizzare uno dei costruttori seguenti:

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.

Si applica a

SrgsRuleRef(SrgsRule, String)

Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs

Inizializza una nuova istanza della SrgsRuleRef classe , 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

Chiave semantica.

Esempio

Nell'esempio seguente viene creata una grammatica per la scelta delle città per un volo. Nell'esempio vengono create due SrgsRuleRef istanze, ognuna delle quali specifica una chiave semantica. Entrambi i riferimenti a regola 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 la città di arrivo per il volo. Il gestore per l'evento SpeechRecognized usa le chiavi per recuperare i valori semantici creati usando SrgsNameValueTag dal 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 contenitore. Per creare un riferimento a una regola a un elemento in un rule file di grammatica esterno, utilizzare uno dei costruttori seguenti:

Si applica a

SrgsRuleRef(Uri, String)

Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs

Inizializza una nuova istanza della SrgsRuleRef classe , specificando il percorso del file grammaticale 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

Percorso di un file di grammatica all'esterno della grammatica che lo contiene.

rule
String

Identificatore della regola a cui fare riferimento.

Eccezioni

uri è null.

rule è null.

Commenti

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

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.

Si applica a

SrgsRuleRef(SrgsRule, String, String)

Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs

Inizializza una nuova istanza della SrgsRuleRef classe , specificando la regola a cui fare riferimento, l'alias 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

Chiave semantica.

parameters
String

Parametri di inizializzazione per un SrgsRuleRef oggetto .

Commenti

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

Si applica a

SrgsRuleRef(Uri, String, String)

Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs

Inizializza una nuova istanza della SrgsRuleRef classe , specificando il percorso del file grammaticale esterno, l'identificatore della regola e l'alias 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

Percorso di un file di grammatica all'esterno della grammatica che lo contiene.

rule
String

Identificatore della regola a cui fare riferimento.

semanticKey
String

Stringa 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 esterno. Per creare un riferimento a una regola a un SrgsRule oggetto all'interno della stessa grammatica, utilizzare uno dei costruttori seguenti:

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.

Si applica a

SrgsRuleRef(Uri, String, String, String)

Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs
Origine:
SrgsRuleRef.cs

Inizializza una nuova istanza della SrgsRuleRef classe , specificando il percorso del file grammaticale esterno, l'identificatore della regola, l'alias 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

Percorso di un file di grammatica all'esterno della grammatica che lo contiene.

rule
String

Identificatore della regola a cui fare riferimento.

semanticKey
String

Chiave semantica.

parameters
String

Parametri di inizializzazione per un SrgsRuleRef oggetto .

Commenti

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

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.

Si applica a