Sdílet prostřednictvím


SemanticResultKey Třída

Definice

Přidruží řetězec klíče k SemanticResultValue hodnotám k 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ří pro Grammar rozpoznávání zadání hesla formuláře "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 zkontroluje přítomnost této značky, aby ověřila, že došlo ke vstupu 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 SemanticValuev system.Speech 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í.

Ve spojení s GrammarBuilderChoices objekty a objekty můžete definovat SemanticResultValueSemanticResultKey sémantickou strukturu pro gramatiku rozpoznávání řeči. Chcete-li získat přístup k sémantické informace ve výsledku rozpoznávání, získejte instanci SemanticValue prostřednictvím Semantics vlastnosti on RecognizedPhrase.

Konstruktory

Name Description
SemanticResultKey(String, GrammarBuilder[])

Přiřadí sémantický klíč k jednomu nebo více GrammarBuilder objektům sloužící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ím sloužícím k vytvoření gramatiky rozpoznávání řeči.

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Získá Type aktuální instance.

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

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

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