SemanticResultValue Classe

Définition

Représente une valeur sémantique et associe éventuellement la valeur au composant d'une syntaxe de reconnaissance vocale.

public ref class SemanticResultValue
public class SemanticResultValue
type SemanticResultValue = class
Public Class SemanticResultValue
Héritage
SemanticResultValue

Exemples

L’exemple suivant retourne un Grammar qui reconnaît la commande « Set/Change/Alter Foreground/Background ... [liste de couleurs] ». SemanticResultValue les instances et SemanticResultKey (conjointement avec Choices les objets et GrammarBuilder ) sont utilisées pour définir la sémantique qui peut être analysée lors de la reconnaissance. La sémantique analysée détermine quelle couleur a été demandée et si le premier plan ou l’arrière-plan doit être modifié.

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

Remarques

L’utilisation d’objets SemanticResultValue et SemanticResultKey , conjointement avec GrammarBuilder et Choices, est le moyen le plus simple de concevoir une structure sémantique pour un Grammar. Les informations sémantiques d’une expression sont accessibles en obtenant une instance de SemanticValue, via la Semantics propriété sur RecognizedPhrase.

Notes

Les valeurs gérées par SemanticResultValue les objets sont définies par Object les instances passées à leurs constructeurs. Le type sous-jacent de ce Object doit être bool, int, floatou string. Tout autre type empêche la construction d’un Grammar instance avec .SemanticResultValue

L’utilisation classique d’un SemanticResultValue instance associe le instance à un composant reconnaissable d’un Grammar, tel qu’une expression, une règle ou un Choices objet. Si le composant associé est utilisé dans le cadre d’une opération de reconnaissance, le SemanticResultValue est utilisé pour définir une valeur dans la sémantique de l’expression retournée.

Il existe deux méthodes de base pour associer un SemanticResultValue instance à un élément de grammaire, en fonction du constructeur utilisé pour créer le SemanticResultValue.

  • Si seule la valeur (spécifiée par un instance de Object) est utilisée pour construire un SemanticResultValue objet, le SemanticResultValue est associé au composant de grammaire qui l’a précédé, en plus d’un GrammarBuilder objet.

    Par instance, dans le fragment de code ci-dessous, si un Grammar construit à l’aide de cette GrammarBuilder instance reconnaît le mot « arrière-plan », une valeur de est définie dans la sémantique de true l’expression reconnue.

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

    Pour plus d'informations, voir la description de SemanticResultValue(Object).

  • Si une expression de valeur de chaîne ou un instance spécifique GrammarBuilder est utilisé, avec un Object qui spécifie une SemanticResultValue valeur, cette valeur est automatiquement associée à l’expression valeur de chaîne ou à l’instance GrammarBuilder . Si l’expression ou GrammarBuilder l’objet est utilisé dans le processus de reconnaissance, la valeur est affectée à la sémantique de l’expression reconnue.

    L’exemple suivant illustre cela, et est fonctionnellement équivalent à l’exemple précédent, qui utilisait des appels explicites à Append et SemanticResultValue(Object). Si la logique de reconnaissance utilise le mot « arrière-plan », la valeur true est ajoutée à la sémantique reconnue.

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

    Pour plus d’informations, consultez la description de SemanticResultValue(GrammarBuilder, Object) et SemanticResultValue(String, Object).

Pour être utilisé par un Grammar dans la reconnaissance, toutes les SemanticResultValue instances doivent être associées à l’un SemanticValue des objets utilisés par ce Grammar. Pour ce faire, associez une clé sémantique à .SemanticResultValue

Les clés sémantiques peuvent être explicitement attachées à un SemanticResultValue, à l’aide d’un SemanticResultKey objet . SemanticResultValue les instances qui ne sont pas explicitement attachées à une clé sont attachées à la clé racine de la valeur par défaut SemanticValue.

Une fois qu’un SemanticResultValue a été utilisé pour définir , Valuequ’il soit marqué avec la clé racine par défaut ou par une valeur particulière SemanticResultKey, cette valeur ne doit pas être modifiée ou une exception se produit pendant les opérations de reconnaissance.

L’exemple suivant génère une exception, car il définit, puis modifie la racine Value d’un Grammar.

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

En revanche, le code de l’exemple suivant est autorisé. Bien qu’il définisse plusieurs instances de SemanticResultValue, elles sont incluses dans un Choices objet, et une seule sera jamais utilisée pour définir la valeur de la clé bgOrfgText.

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

Constructeurs

SemanticResultValue(GrammarBuilder, Object)

Initialise une nouvelle instance de la classe SemanticResultValue et associe une valeur sémantique à un objet GrammarBuilder.

SemanticResultValue(Object)

Initialise une nouvelle instance de la classe SemanticResultValue et spécifie une valeur sémantique.

SemanticResultValue(String, Object)

Initialise une nouvelle instance de la classe SemanticResultValue et associe une valeur sémantique à un objet String.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToGrammarBuilder()

Retourne une instance de GrammarBuilder construite à partir de l'instance SemanticResultValue actuelle.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi