Sdílet prostřednictvím


SemanticResultKey Třída

Definice

Přidruží řetězec klíče k hodnotám SemanticResultValue pro definování SemanticValue objektů.

public ref class SemanticResultKey
public class SemanticResultKey
type SemanticResultKey = class
Public Class SemanticResultKey
Dědičnost
SemanticResultKey

Příklady

Následující příklad vytvoří Grammar pro rozpoznání zadání hesla ve formátu "Moje heslo je...", kde se skutečný vstup shoduje se zástupným znakem.

Zástupný znak je označen sémantickým klíčem a SpeechRecognized obslužná rutina kontroluje přítomnost této značky, aby ověřila, že došlo k zadání hesla.

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

}

Poznámky

Základní jednotkou sémantického výrazu v System.Speech je SemanticValue, což je pár klíč/hodnota.

Pomocí SemanticResultKey objektů označíte SemanticResultValue instance obsažené v GrammarBuilder objektech a řetězcích tak, aby k hodnotám bylo možné snadno přistupovat z SemanticValue instancí při rozpoznávání.

Objekty a SemanticResultKey ve spojení s GrammarBuilder objekty a Choices můžete SemanticResultValue definovat sémantickou strukturu gramatiky rozpoznávání řeči. Pokud chcete získat přístup k sémantickým informacím ve výsledku rozpoznávání, získejte instanci SemanticValue prostřednictvím Semantics vlastnosti v .RecognizedPhrase

Konstruktory

SemanticResultKey(String, GrammarBuilder[])

Přiřadí sémantický klíč jednomu nebo více GrammarBuilder objektům použitým k vytvoření gramatiky rozpoznávání řeči.

SemanticResultKey(String, String[])

Přiřadí sémantický klíč k jedné nebo více String instancí sloužících k vytvoření gramatiky rozpoznávání řeči.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToGrammarBuilder()

Vrátí instanci GrammarBuilder vytvořené z aktuální SemanticResultKey instance.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také