SemanticResultValue Clase

Definición

Representa un valor semántico y, opcionalmente, asocia el valor a un componente de una gramática de reconocimiento de voz.

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

Ejemplos

En el ejemplo siguiente se devuelve un Grammar objeto que reconoce el comando "Set/Change/Alter Foreground/Background ... [lista de colores]". SemanticResultValue e SemanticResultKey instancias (junto con Choices objetos y GrammarBuilder ) se usan para definir la semántica que se puede analizar en el reconocimiento. La semántica analizada determinará qué color se solicitó y si se va a modificar el primer plano o el fondo.

private Grammar FgBgColorGrammar()
{
  Grammar grammar = null;

  // Allow the command to begin with set, alter, change.
  Choices introChoices = new Choices();
  foreach (string introString in new string[] { "Change", "Set", "Alter" })
  {
    GrammarBuilder introGB = new GrammarBuilder(introString);
    introChoices.Add(new SemanticResultValue(introGB, String.Format("Command: {0}", introString)));
  }

  GrammarBuilder cmdIntro = new GrammarBuilder(introChoices);

  // Define the arguments for the command to select foreground or background
  // and to change their color as semantic values.
  Choices fgOrbgChoice = new Choices();
  GrammarBuilder backgroundGB=new GrammarBuilder("background");
  backgroundGB.Append(new SemanticResultValue(true));
  fgOrbgChoice.Add(backgroundGB);
  fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground", false));
  SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgBool", fgOrbgChoice);
  Choices colorChoice = new Choices();
  foreach (string colorName in System.Enum.GetNames(typeof(KnownColor)))
  {

    // Use implicit conversion of SemanticResultValue to GrammarBuilder.
    colorChoice.Add(
        (GrammarBuilder) (new SemanticResultValue(colorName, (Color.FromName(colorName)).Name)));
  }

  // Create a GrammarBuilder for CmdArgs to be appended to CmdIntro using
  // semantic keys.
  GrammarBuilder cmdArgs = new GrammarBuilder();
  cmdArgs.Append(new SemanticResultKey("BgOrFgBool", fgOrbgChoice));
  cmdArgs.AppendWildcard();
  cmdArgs.Append(new SemanticResultKey("colorStringList", colorChoice));

  GrammarBuilder cmds =
      GrammarBuilder.Add(
                       cmdIntro,
                       new GrammarBuilder(new SemanticResultKey("Cmd Args", cmdArgs)));
  grammar = new Grammar(cmds);
  grammar.Name = "Tree [Set,change,alter] [foreground,background] * color";
  return grammar;
}

Comentarios

El uso de objetos y SemanticResultKey , junto con GrammarBuilder y Choices, es la manera más fácil de SemanticResultValue diseñar una estructura semántica para .Grammar Se accede a la información semántica de una frase mediante la obtención de una instancia de , a través de SemanticValuela Semantics propiedad en RecognizedPhrase.

Nota:

Los valores administrados por SemanticResultValue objetos se definen mediante Object instancias que se pasan a sus constructores. El tipo subyacente de debe Object ser bool, int, floato string. Cualquier otro tipo impedirá la construcción de una Grammar instancia con SemanticResultValue.

El uso típico de una SemanticResultValue instancia asocia la instancia a un componente reconocible de , Grammarcomo una frase, una regla o un Choices objeto . Si el componente asociado se usa como parte de una operación de reconocimiento, SemanticResultValue se usa para definir un valor en la semántica de la frase devuelta.

Hay dos métodos básicos para asociar una SemanticResultValue instancia con un elemento de gramática, en función del constructor usado para crear .SemanticResultValue

  • Si solo se usa el valor (especificado por una instancia de Object) para construir un SemanticResultValue objeto , SemanticResultValue el está asociado al componente de gramática que lo precedió, además de un GrammarBuilder objeto .

    Por ejemplo, en el fragmento de código siguiente, si un Grammar construido con esta GrammarBuilder instancia reconoce la palabra "background", se establece un valor de en la semántica de true frases reconocidas.

    GrammarBuilder backgroundGB=new GrammarBuilder("background");
    backgroundGB.Append(new SemanticResultValue(true));
    

    Para obtener más información, vea la descripción de SemanticResultValue(Object).

  • Si se usa una frase de valor de cadena o una instancia específica GrammarBuilder , junto con un Object valor que especifica un SemanticResultValue valor, ese valor se asocia automáticamente con la frase de valor de cadena o la GrammarBuilder instancia. Si la frase o GrammarBuilder el objeto se usa en el proceso de reconocimiento, el valor se asignará a la semántica de la frase reconocida.

    En el ejemplo siguiente se muestra esto y es funcionalmente equivalente al ejemplo anterior, que usó llamadas explícitas a Append y SemanticResultValue(Object). Si la lógica de reconocimiento usa la palabra "background", el valor true se agregará a la semántica reconocida.

    fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background", true));
    

    Para obtener más información, vea la descripción de SemanticResultValue(GrammarBuilder, Object) y SemanticResultValue(String, Object).

Para que lo use en Grammar el reconocimiento, todas las SemanticResultValue instancias deben estar asociadas a uno de los SemanticValue objetos usados por ese Grammarobjeto . Para ello, se asocia una clave semántica con SemanticResultValue.

Las claves semánticas se pueden asociar explícitamente a , SemanticResultValuemediante un SemanticResultKey objeto . SemanticResultValue Las instancias que no están asociadas explícitamente a una clave se adjuntan a la clave raíz del valor predeterminado SemanticValue.

Una vez que se ha usado para SemanticResultValue establecer Value, si se etiqueta con la clave raíz predeterminada o por cualquier valor determinado SemanticResultKey, ese valor no se debe modificar o se producirá una excepción durante las operaciones de reconocimiento.

En el ejemplo siguiente se producirá una excepción porque establece y, a continuación, modifica la raíz Value de .Grammar

GrammarBuilder gb=new GrammarBuilder();
gb.Append(new SemanticResultValue("One"));
gb.Append(new SemanticResultValue("Two"));

Por otro lado, se permite el código del ejemplo siguiente. Aunque define varias instancias de SemanticResultValue, se incluyen en un Choices objeto y solo se usará una para establecer el valor de la clave bgOrfgText.

Choices fgOrbgChoice = new Choices();
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background"));
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground"));
SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgText", fgOrbgChoice);

Constructores

SemanticResultValue(GrammarBuilder, Object)

Inicializa una nueva instancia de la clase SemanticResultValue y asocia un valor semántico con un objeto GrammarBuilder.

SemanticResultValue(Object)

Inicializa una nueva instancia de la clase SemanticResultValue y especifica un valor semántico.

SemanticResultValue(String, Object)

Inicializa una nueva instancia de la clase SemanticResultValue y asocia un valor semántico con un objeto String.

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 SemanticResultValue actual.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también