Condividi tramite


SemanticResultKey Classe

Definizione

Associa una stringa di chiave con valori SemanticResultValue per definire gli oggetti di SemanticValue .

public ref class SemanticResultKey
public class SemanticResultKey
type SemanticResultKey = class
Public Class SemanticResultKey
Ereditarietà
SemanticResultKey

Esempio

Nell'esempio seguente viene creato un oggetto Grammar per riconoscere l'input della password del modulo "La mia password è ...", dove l'input effettivo corrisponde a un carattere jolly.

Il carattere jolly viene contrassegnato con una chiave semantica e il SpeechRecognized gestore verifica la presenza di questo tag per verificare che si sia verificato un input password.

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

}

Commenti

L'unità di base dell'espressione semantica in System.Speech è , SemanticValueche è una coppia chiave/valore.

L'uso SemanticResultKey di oggetti consente di contrassegnare SemanticResultValue le istanze contenute in GrammarBuilder oggetti e stringhe in modo che i valori possano essere accessibili facilmente dalle SemanticValue istanze sul riconoscimento.

È possibile usare SemanticResultValue e oggetti, insieme a GrammarBuilder e SemanticResultKeyChoices oggetti, per definire la struttura semantica per una grammatica di riconoscimento vocale. Per accedere alle informazioni semantiche in un risultato di riconoscimento, ottenere un'istanza di SemanticValue tramite la Semantics proprietà in RecognizedPhrase.

Costruttori

SemanticResultKey(String, GrammarBuilder[])

Assegna una chiave semantica a uno o più oggetti GrammarBuilder utilizzati per creare una grammatica di riconoscimento vocale.

SemanticResultKey(String, String[])

Assegna una chiave semantica a una o più istanze String utilizzate per creare una grammatica di riconoscimento vocale.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToGrammarBuilder()

Restituisce un'istanza di GrammarBuilder costruita dall'istanza SemanticResultKey corrente.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche