SemanticResultKey Klas

Definitie

Koppelt een sleuteltekenreeks aan SemanticResultValue waarden om objecten te definiëren SemanticValue .

public ref class SemanticResultKey
public class SemanticResultKey
type SemanticResultKey = class
Public Class SemanticResultKey
Overname
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 gelabeld met een semantische sleutel en de SpeechRecognized handler controleert op de aanwezigheid van deze tag om te controleren of er een wachtwoordinvoer is opgetreden.

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

De basiseenheid van semantische expressie in System.Speech is de SemanticValue, een sleutel-waardepaar.

Met behulp van SemanticResultKey objecten tagt SemanticResultValue u exemplaren in GrammarBuilder objecten en tekenreeksen, zodat de waarden gemakkelijk kunnen worden geopend vanuit SemanticValue exemplaren voor herkenning.

U kunt en SemanticResultKey objecten, in combinatie met GrammarBuilder en Choices objecten, gebruiken SemanticResultValue om de semantische structuur voor een grammatica voor spraakherkenning te definiëren. Als u toegang wilt krijgen tot de semantische informatie in een herkenningsresultaat, moet u een exemplaar verkrijgen van SemanticValue via de Semantics eigenschap op RecognizedPhrase.

Constructors

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.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToGrammarBuilder()

Retourneert een exemplaar van GrammarBuilder het huidige SemanticResultKey exemplaar.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op

Zie ook