Compartir vía


SemanticResultKey Clase

Definición

Asocia una cadena de clave a valores SemanticResultValue para definir objetos SemanticValue.

public ref class SemanticResultKey
public class SemanticResultKey
type SemanticResultKey = class
Public Class SemanticResultKey
Herencia
SemanticResultKey

Ejemplos

En el ejemplo siguiente se crea un Grammar para reconocer la entrada de contraseña con el formato "Mi contraseña es ...", donde la entrada real coincide con un carácter comodín.

El carácter comodín se etiqueta con una clave semántica y el SpeechRecognized controlador comprueba la presencia de esta etiqueta para comprobar que se ha producido una entrada de contraseña.

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

}

Comentarios

La unidad básica de expresión semántica en System.Speech es , SemanticValueque es un par clave-valor.

Mediante el uso SemanticResultKey de objetos, se etiquetan SemanticResultValue instancias contenidas en GrammarBuilder objetos y cadenas para que se pueda acceder fácilmente a los valores desde SemanticValue instancias en el reconocimiento.

Puede usar SemanticResultValue objetos y SemanticResultKey , junto con GrammarBuilder objetos y Choices , para definir la estructura semántica de una gramática de reconocimiento de voz. Para acceder a la información semántica en un resultado de reconocimiento, obtenga una instancia de a través de SemanticValue la Semantics propiedad en RecognizedPhrase.

Constructores

SemanticResultKey(String, GrammarBuilder[])

Asigna una clave semántica a uno o más objetos GrammarBuilder usados para crear una gramática de reconocimiento de voz.

SemanticResultKey(String, String[])

Asigna una clave semántica a una o más instancias de String usadas para crear una gramática de reconocimiento de voz.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToGrammarBuilder()

Devuelve una instancia de GrammarBuilder construida a partir de la instancia de SemanticResultKey actual.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también