SemanticResultKey Constructors

Definitie

Hiermee wordt een exemplaar van SemanticResultKey de sleutel samengesteld en gekoppeld aan grammaticaonderdelen.

Overloads

Name Description
SemanticResultKey(String, GrammarBuilder[])

Hiermee wordt een semantische sleutel toegewezen aan een of meer GrammarBuilder objecten die worden gebruikt om een grammatica voor spraakherkenning te maken.

SemanticResultKey(String, String[])

Wijst een semantische sleutel toe aan een of meer String exemplaren die worden gebruikt om een grammatica voor spraakherkenning te maken.

Opmerkingen

De constructors voor SemanticResultKey het opgeven van een teksttag (de semantische sleutel) en een set grammaticaonderdelen die moeten worden toegevoegd aan een grammatica voor spraakherkenning.

De grammaticaonderdelen kunnen worden opgegeven als een matrix van GrammarBuilder objecten of als een matrix met String exemplaren.

Als de grammaticaonderdelen worden gebruikt in herkenning, hebt u toegang tot de geretourneerde SemanticValue onderdelen met behulp van de teksttag die is opgegeven aan de constructor van SemanticResultKey als een semantische sleutel. De Value eigenschap van het SemanticValue exemplaar wordt bepaald door de grammaticaonderdelen die worden gebruikt in de definitie van SemanticResultKey.

SemanticResultKey(String, GrammarBuilder[])

Hiermee wordt een semantische sleutel toegewezen aan een of meer GrammarBuilder objecten die worden gebruikt om een grammatica voor spraakherkenning te maken.

public:
 SemanticResultKey(System::String ^ semanticResultKey, ... cli::array <System::Speech::Recognition::GrammarBuilder ^> ^ builders);
public SemanticResultKey(string semanticResultKey, params System.Speech.Recognition.GrammarBuilder[] builders);
new System.Speech.Recognition.SemanticResultKey : string * System.Speech.Recognition.GrammarBuilder[] -> System.Speech.Recognition.SemanticResultKey
Public Sub New (semanticResultKey As String, ParamArray builders As GrammarBuilder())

Parameters

semanticResultKey
String

De tag die moet worden gebruikt als een semantische sleutel voor toegang tot het SemanticValue exemplaar dat is gekoppeld aan de GrammarBuilder objecten die zijn opgegeven door het builders argument.

builders
GrammarBuilder[]

Een matrix met grammaticaonderdelen die worden gekoppeld aan een SemanticValue object dat toegankelijk is met de tag die is gedefinieerd in semanticResultKey.

Voorbeelden

In het volgende voorbeeld wordt een Grammar wachtwoordinvoer van het formulier 'Mijn wachtwoord is ...' gemaakt, waarbij de werkelijke invoer overeenkomt met een jokerteken.

Het jokerteken wordt getagd door een SpeechRecognizer sleutelwaarde 'Wachtwoord'. De SpeechRecognized handler controleert op de aanwezigheid van deze tag, haalt de audio-invoer van het wachtwoord op en controleert het wachtwoord.

private void pwdGrammar()
{
  GrammarBuilder pwdBuilder = new GrammarBuilder("My Password is");
  GrammarBuilder wildcardBuilder = new GrammarBuilder();
  wildcardBuilder.AppendWildcard();
  SemanticResultKey wildcardKey= new SemanticResultKey("Password", wildcardBuilder);
  pwdBuilder+=wildcardKey;
  Grammar grammar = new Grammar(pwdBuilder);
  grammar.Name = "Password input";

  grammar.SpeechRecognized +=
    delegate(object sender, SpeechRecognizedEventArgs eventArgs)
    {
      SemanticValue semantics = eventArgs.Result.Semantics;
      RecognitionResult result=eventArgs.Result;

      if (!semantics.ContainsKey("Password"))
      {
        SpeechUI.SendTextFeedback(eventArgs.Result, "No Password Provided", false);
      }
      else
      {
        RecognizedAudio pwdAudio = result.GetAudioForWordRange(
                  result.Words[3],
                  result.Words[result.Words.Count - 1]);
                  MemoryStream pwdMemoryStream = new MemoryStream();
                  pwdAudio.WriteToAudioStream(pwdMemoryStream);
        if (!IsValidPwd(pwdMemoryStream))
        {
          string badPwd = System.IO.Path.GetTempPath() + "BadPwd" + (new Random()).Next().ToString() + ".wav";
          FileStream waveStream = new FileStream(badPwd, FileMode.Create);
          pwdAudio.WriteToWaveStream(waveStream);
          waveStream.Flush();
          waveStream.Close();
          SpeechUI.SendTextFeedback(eventArgs.Result, "Invalid Password", false);
        }
      }
    };

  grammar.Enabled = true;
  _recognizer.LoadGrammar(grammar);
  UpdateGrammarTree(_grammarTreeView, _recognizer);

}

Opmerkingen

Vanwege impliciete conversies ondersteunt SemanticResultValuehet builders argument ook , SemanticResultKeyen ChoicesString objecten. Zie voor meer informatie over impliciete conversies Implicit.

Bij het uitvoeren van een herkenningsbewerking worden de GrammarBuilder objecten in het builders argument behandeld als opeenvolgend. Als het volgende SemanticResultValue bijvoorbeeld wordt gebruikt om een Grammarte maken, moet invoer voor de herkenningsengine de woorden 'de snelle bruine vos' in volgorde bevatten die moet worden herkend.

SemanticResultKey stringTest=new SemanticResultKey(
    "stringTest", new GrammarBuilder[] {
    new GrammarBuilder("the"),
    new GrammarBuilder("quick"),
    new GrammarBuilder("brown"),
    new GrammarBuilder("fox")});

Het semanticResultKey argument bevat de tag die wordt gebruikt voor toegang tot de SemanticValue tag die mogelijk wordt geretourneerd.

De Value van de SemanticValue exemplaren wordt bepaald door de GrammarBuilder exemplaren die door de builders parameter worden geleverd.

Als de GrammarBuilder objecten geen definiërende exemplaren bevatten SemanticResultValue, is de waarde van het SemanticValue object null.

Als de GrammarBuilder objecten die zijn opgegeven in de builders parameter een exemplaar zonder vlag (niet gekoppeld aan een SemanticResultKey object) SemanticResultValue bevatten dat wordt gebruikt door de herkenningslogica, definieert dat exemplaar SemanticResultValue de Value eigenschap van de SemanticValue geproduceerde instantie.

Er moet één en slechts één exemplaar zonder tag SemanticResultValue zijn in de GrammarBuilder objecten die door de builders parameter zijn opgegeven. Als er meerdere exemplaren zonder vlag SemanticResultValue zijn gekoppeld aan de SemanticResultKey, probeert elke instantie de waarde van de SemanticValue gegenereerde waarde in het herkenningsresultaat in te stellen. Dit is niet toegestaan en de recognizer genereert een uitzondering wanneer wordt geprobeerd een Grammar gemaakt SemanticResultKey exemplaar te gebruiken.

Exemplaren van SemanticResultValue de GrammarBuilder objecten die zijn opgegeven door de builders parameter en die al aan een andere SemanticResultKey zijn gekoppeld, hebben geen effect op het huidige SemanticResultKey exemplaar.

Van toepassing op

SemanticResultKey(String, String[])

Wijst een semantische sleutel toe aan een of meer String exemplaren die worden gebruikt om een grammatica voor spraakherkenning te maken.

public:
 SemanticResultKey(System::String ^ semanticResultKey, ... cli::array <System::String ^> ^ phrases);
public SemanticResultKey(string semanticResultKey, params string[] phrases);
new System.Speech.Recognition.SemanticResultKey : string * string[] -> System.Speech.Recognition.SemanticResultKey
Public Sub New (semanticResultKey As String, ParamArray phrases As String())

Parameters

semanticResultKey
String

De tag die moet worden gebruikt, heeft toegang tot het SemanticValue exemplaar dat is gekoppeld aan de String objecten die zijn opgegeven door het phrases argument.

phrases
String[]

Een of meer String objecten waarvan de samengevoegde tekst wordt gekoppeld aan een SemanticValue object dat toegankelijk is met de tag die is gedefinieerd in semanticResultKey.

Voorbeelden

In het volgende voorbeeld wordt een GrammarGrammarBuilder object gemaakt dat gebruikmaakt van een SemanticResultKey, die wordt gedefinieerd door een matrix met String objecten.

Een herkenningsengine die de Grammar gemaakte engine gebruikt, herkent de zin 'kleur rood groen blauw nul'. De semantiek van de RecognizedPhrase geretourneerde herkenning bevat een SemanticValue met een Value 'roodgroen blauw'. U hebt toegang tot de SemanticValue code met behulp van de code.

Vanwege de SemanticResultValue("zero", 5) toegevoegde waarde aan het GrammarBuilderobject , heeft het hoofdobject SemanticValue in het object RecognizedPhrase een waarde van 5.

private void keyTest()
{
  // Say "color red green blue zero"
  GrammarBuilder gb = new GrammarBuilder("color") +
                        new SemanticResultKey("code",
                          (new string[] {"red", "green", "blue"})) +
                        new SemanticResultValue("zero", 5);
  Grammar g = new Grammar(gb);
  g.Name = "keyTest";
  _recognizer.LoadGrammar(g);
}

Opmerkingen

Bij het uitvoeren van een herkenningsbewerking worden de String objecten die in de phrases parameter worden gebruikt, behandeld als opeenvolgend. Als het volgende SemanticResultValue bijvoorbeeld wordt gebruikt om een Grammarte maken, moet invoer voor de herkenningsengine de woorden 'de snelle bruine vos' in volgorde bevatten die moet worden herkend.

SemanticResultKey stringTest=new SemanticResultKey("stringTest",
                                new string[] {
                                               "the",
                                               "quick",
                                               "brown",
                                               "fox"});

Het semanticResultKey argument bepaalt de sleutel die wordt gebruikt voor toegang tot de SemanticValue sleutel die kan worden geretourneerd.

Als u een GrammarGrammarBuilder object maakt dat een semantische sleutel bevat met een matrix van tekenreeksobjecten, wordt de ValueSemanticValue tekenreeks die wordt geproduceerd door een herkenningsbewerking de tekenreeks die wordt gebruikt voor herkenning. In het voorgaande voorbeeld betekent dit dat Value 'de snelle bruine vos' zou zijn.

Van toepassing op