SemanticResultKey Konstruktorer

Definition

Konstruerar en instans av SemanticResultKey och associerar nyckeln med grammatikkomponenter.

Överlagringar

Name Description
SemanticResultKey(String, GrammarBuilder[])

Tilldelar en semantisk nyckel till ett eller flera GrammarBuilder objekt som används för att skapa en grammatik för taligenkänning.

SemanticResultKey(String, String[])

Tilldelar en semantisk nyckel till en eller flera String instanser som används för att skapa en grammatik för taligenkänning.

Kommentarer

Konstruktorerna för SemanticResultKey att ange en texttagg (semantisk nyckel) och en uppsättning grammatikkomponenter som ska läggas till i en grammatik för taligenkänning.

Grammatikkomponenterna kan anges antingen som en matris med GrammarBuilder objekt eller som en matris med String instanser.

Om grammatikkomponenterna används som igenkänning kan du komma åt den returnerade SemanticValue med hjälp av SemanticResultKey texttaggen som tillhandahålls konstruktorn för som en semantisk nyckel. Egenskapen Value för instansen SemanticValue bestäms av de grammatikkomponenter som används i definitionen av SemanticResultKey.

SemanticResultKey(String, GrammarBuilder[])

Källa:
SemanticResultKey.cs
Källa:
SemanticResultKey.cs
Källa:
SemanticResultKey.cs
Källa:
SemanticResultKey.cs

Tilldelar en semantisk nyckel till ett eller flera GrammarBuilder objekt som används för att skapa en grammatik för taligenkänning.

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())

Parametrar

semanticResultKey
String

Taggen som ska användas som en semantisk nyckel för att komma åt den SemanticValue instans som är associerad med de GrammarBuilder objekt som anges av builders argumentet.

builders
GrammarBuilder[]

En matris med grammatikkomponenter som ska associeras med ett SemanticValue objekt som är tillgängligt med taggen som definieras i semanticResultKey.

Exempel

I följande exempel skapas en Grammar för att identifiera lösenordsindata i formuläret "Mitt lösenord är ...", där den faktiska inmatningen matchas med ett jokertecken.

Jokertecknet taggas av en SpeechRecognizer vars nyckelvärde är "Lösenord". SpeechRecognized Hanteraren söker efter förekomsten av den här taggen, hämtar indata från lösenordet och verifierar lösenordet.

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

}

Kommentarer

På grund av implicita konverteringar builders stöder SemanticResultValueargumentet även objekten , SemanticResultKey, Choicesoch String . Mer information om implicita konverteringar finns i Implicit.

När du utför en igenkänningsåtgärd behandlas de GrammarBuilder objekt som anges i builders argumentet som sekventiella. Om följande SemanticResultValue till exempel används för att konstruera en Grammarmåste indata till igenkänningsmotorn innehålla orden "den snabba bruna räven" i följd för att identifieras.

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

Argumentet semanticResultKey innehåller taggen som används för att komma åt SemanticValue den som kan returneras.

Av ValueSemanticValue bestäms av de GrammarBuilder instanser som tillhandahålls av parametern builders .

Om objekten GrammarBuilder inte innehåller några definierande instanser av SemanticResultValueär SemanticValuevärdet för null .

Om objekten GrammarBuilder som anges i parametern builders tillhandahåller en instans som inte är associerad med ett SemanticResultKey objekt SemanticResultValue som används av igenkänningslogik, definierar den instansen SemanticResultValueValue av SemanticValue egenskapen för den som skapas.

Det bör finnas en, och endast en, otaggade SemanticResultValue instans i de GrammarBuilder objekt som anges av parametern builders . Om flera instanser av untagged SemanticResultValue är associerade med SemanticResultKey, försöker var och en att ange värdet för det SemanticValue som produceras i igenkänningsresultatet. Detta är inte tillåtet och identifieraren genererar ett undantag när den försöker använda en Grammar skapad med en SemanticResultKey sådan instans.

Instanser av SemanticResultValue som finns i de GrammarBuilder objekt som anges av parametern builders och som redan är associerade med en annan SemanticResultKey har ingen effekt på den aktuella SemanticResultKey instansen.

Gäller för

SemanticResultKey(String, String[])

Källa:
SemanticResultKey.cs
Källa:
SemanticResultKey.cs
Källa:
SemanticResultKey.cs
Källa:
SemanticResultKey.cs

Tilldelar en semantisk nyckel till en eller flera String instanser som används för att skapa en grammatik för taligenkänning.

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())

Parametrar

semanticResultKey
String

Taggen som ska användas får åtkomst till den SemanticValue instans som är associerad med de String objekt som anges av phrases argumentet.

phrases
String[]

Ett eller flera String objekt vars sammanfogade text associeras med ett SemanticValue objekt som är tillgängligt med taggen som definieras i semanticResultKey.

Exempel

I följande exempel skapas en Grammar från ett GrammarBuilder objekt som använder en SemanticResultKey, som definieras av en matris med String objekt.

En igenkänningsmotor som använder den Grammar skapade identifierar frasen "färg röd grön blå nolla". Semantiken för den RecognizedPhrase som returneras av igenkänningen innehåller en SemanticValue med en Value av "rödgrön blå". Du kan komma åt med taggen SemanticValue "kod".

SemanticResultValue("zero", 5) Eftersom rotobjektet GrammarBuilder i läggs till SemanticValuehar RecognizedPhrase det värdet 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);
}

Kommentarer

När du utför en igenkänningsåtgärd behandlas de String objekt som används i parametern phrases som sekventiella. Om följande SemanticResultValue till exempel används för att konstruera en Grammarmåste indata till igenkänningsmotorn innehålla orden "den snabba bruna räven" i följd för att identifieras.

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

Argumentet semanticResultKey avgör vilken nyckel som används för att komma åt den SemanticValue som kan returneras.

Om du skapar ett Grammar med ett GrammarBuilder objekt som innehåller en semantisk nyckel med en matris med strängobjekt, ValueSemanticValue är den sträng som skapas av en igenkänningsåtgärd den sträng som används vid igenkänning. I föregående exempel innebär det att det Value skulle vara "den snabba bruna räven".

Gäller för