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.Represents a semantic value and optionally associates the value with a component of a speech recognition grammar.

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

Ejemplos

En el ejemplo siguiente se Grammar devuelve un que reconoce el comando "Set/Change/Alter Foreground/background...The following example returns a Grammar that recognizes the command "Set/Change/Alter Foreground/Background … [lista de colores] ".[color list]". SemanticResultValuelas SemanticResultKey instancias de y (junto Choices con GrammarBuilder los objetos y) se usan para definir la semántica que se puede analizar en el reconocimiento.SemanticResultValue and SemanticResultKey instances (in conjunction with Choices and GrammarBuilder objects) are used to define semantics that can be parsed on recognition. La semántica analizada determinará qué color se solicitó y si se va a modificar el primer plano o el fondo.The parsed semantics will determine which color was requested and whether the foreground or background is to be modified.

  
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 SemanticResultValue de SemanticResultKey los objetos y, junto GrammarBuilder con Choicesy, es la manera más fácil de diseñar una estructura semántica Grammarpara un.Use of SemanticResultValue and SemanticResultKey objects, in conjunction with GrammarBuilder and Choices, is the easiest way to design a semantic structure for a Grammar. Se obtiene acceso a la información semántica de una frase mediante la obtención SemanticValuede una instancia Semantics de, RecognizedPhrasea través de la propiedad en.Semantic information for a phrase is accessed by obtaining an instance of SemanticValue, through the Semantics property on RecognizedPhrase.

Nota

Los valores administrados por SemanticResultValue objetos se definen mediante Object instancias que se pasan a sus constructores.Values managed by SemanticResultValue objects are defined by Object instances passed to their constructors. El tipo subyacente de este Object debe ser bool, int, floato string.The underlying type of this Object must be bool, int, float, or string. Cualquier otro tipo impedirá la Grammar SemanticResultValueconstrucción de una instancia de con.Any other type will prevent construction of a Grammar instance with the SemanticResultValue.

El uso típico de una SemanticResultValue instancia asocia la instancia a un componente reconocible Grammarde, como una frase, una regla o un Choices objeto.The typical use of a SemanticResultValue instance associates the instance with a recognizable component of a Grammar, such as a phrase, a rule, or a Choices object. 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.If the associated component is used as part of a recognition operation, the SemanticResultValue is used to define a value in the semantics of the returned phrase.

Hay dos métodos básicos para asociar una SemanticResultValue instancia de con un elemento de gramática, dependiendo del constructor utilizado para SemanticResultValuecrear.There are two basic methods for associating a SemanticResultValue instance with a grammar element, depending on the constructor used to create the SemanticResultValue.

Para que lo use un Grammar en el reconocimiento, SemanticResultValue todas las instancias deben estar asociadas a uno SemanticValue de los objetos que Grammarusa.To be used by a Grammar in recognition, all SemanticResultValue instances must be associated with one of the SemanticValue objects used by that Grammar. Esto se hace mediante la SemanticResultValueAsociación de una clave semántica con.This is done by associating a semantic key with the SemanticResultValue.

Las claves semánticas se pueden adjuntar explícitamente SemanticResultKey a un SemanticResultValueobjeto mediante un objeto.Semantic keys can be explicitly attached to a SemanticResultValue, using a SemanticResultKey object. SemanticResultValuelas instancias que no se adjuntan explícitamente a una clave se adjuntan a la clave raíz del valor predeterminado SemanticValue.SemanticResultValue instances not explicitly attached to a key are attached to the root key of the default SemanticValue.

Una vez SemanticResultValue que se ha utilizado un para Valueestablecer el, tanto si está etiquetado con la SemanticResultKeyclave raíz predeterminada como si lo ha hecho, ese valor no se debe modificar o se producirá una excepción durante las operaciones de reconocimiento.After a SemanticResultValue has been used to set the Value, whether it is tagged with the default root key or by any particular SemanticResultKey, that value must not be modified or an exception will occur during recognition operations.

En el ejemplo siguiente se producirá una excepción porque establece y, a continuación, Value modifica la Grammarraíz de.The following example will cause an exception because it sets and then modifies the root Value of a Grammar.

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

Por otro lado, se permite el código del siguiente ejemplo.On the other hand, the code in the following example is permitted. Aunque define varias instancias de SemanticResultValue, se incluyen en un Choices objeto y solo se utilizará una para establecer el valor de la clave bgOrfgText.Although it defines multiple instances of SemanticResultValue, they are included in a Choices object, and only one will ever be used to set the value of the key 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.Initializes a new instance of the SemanticResultValue class and associates a semantic value with a GrammarBuilder object.

SemanticResultValue(Object)

Inicializa una nueva instancia de la clase SemanticResultValue y especifica un valor semántico.Initializes a new instance of the SemanticResultValue class and specifies a semantic value.

SemanticResultValue(String, Object)

Inicializa una nueva instancia de la clase SemanticResultValue y asocia un valor semántico con un objeto String.Initializes a new instance of the SemanticResultValue class and associates a semantic value with a String object.

Métodos

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToGrammarBuilder()

Devuelve una instancia de GrammarBuilder construida a partir de la instancia de SemanticResultValue actual.Returns an instance of GrammarBuilder constructed from the current SemanticResultValue instance.

ToString()

Devuelve un valor de tipo string que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Se aplica a

Consulte también: