Partager via


SemanticResultKey Constructeurs

Définition

Construit une instance SemanticResultKey et associe la clé avec des composants de grammaire.

Surcharges

SemanticResultKey(String, GrammarBuilder[])

Assigne une clé sémantique à un ou plusieurs objets GrammarBuilder utilisés pour créer une syntaxe de reconnaissance vocale.

SemanticResultKey(String, String[])

Assigne une clé sémantique à une ou plusieurs instances String utilisées pour créer une syntaxe de reconnaissance vocale.

Remarques

Les constructeurs pour SemanticResultKey spécifier une balise de texte (la clé sémantique) et un ensemble de composants de grammaire à ajouter à une grammaire de reconnaissance vocale.

Les composants de grammaire peuvent être spécifiés sous forme de tableau d’objets GrammarBuilder ou de tableau d’instances String .

Si les composants de grammaire sont utilisés dans la reconnaissance, vous pouvez accéder au retourné SemanticValue à l’aide de la balise de texte fournie au constructeur de SemanticResultKey comme clé sémantique. La Value propriété du SemanticValue instance sera déterminée par les composants de grammaire utilisés dans la définition de SemanticResultKey.

SemanticResultKey(String, GrammarBuilder[])

Source:
SemanticResultKey.cs
Source:
SemanticResultKey.cs

Assigne une clé sémantique à un ou plusieurs objets GrammarBuilder utilisés pour créer une syntaxe de reconnaissance vocale.

public:
 SemanticResultKey(System::String ^ semanticResultKey, ... cli::array <System::Speech::Recognition::GrammarBuilder ^> ^ builders);
public SemanticResultKey (string semanticResultKey, params System.Speech.Recognition.GrammarBuilder[] builders);
new System.Speech.Recognition.SemanticResultKey : string * System.Speech.Recognition.GrammarBuilder[] -> System.Speech.Recognition.SemanticResultKey
Public Sub New (semanticResultKey As String, ParamArray builders As GrammarBuilder())

Paramètres

semanticResultKey
String

Balise à utiliser comme clé sémantique pour accéder à l'instance SemanticValue associée aux objets GrammarBuilder spécifiés par l'argument builders.

builders
GrammarBuilder[]

Tableau des composants de syntaxe qui sont associés à un objet SemanticValue accessible avec l'indicateur défini dans semanticResultKey.

Exemples

L’exemple suivant crée un Grammar pour reconnaître l’entrée de mot de passe au format « Mon mot de passe est ... », où l’entrée réelle est associée à un caractère générique.

Le caractère générique est marqué par un SpeechRecognizer dont la valeur de clé est « Password ». Le SpeechRecognized gestionnaire vérifie la présence de cette balise, obtient l’entrée audio du mot de passe et vérifie le mot de passe.

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

}

Remarques

En raison des conversions implicites, l’argument builders prend également en charge SemanticResultValueles objets , SemanticResultKey, Choiceset String . Pour plus d’informations sur les conversions implicites, consultez Implicit.

Lors de l’exécution d’une opération de reconnaissance, les GrammarBuilder objets fournis dans l’argument builders sont traités comme séquentiels. Par exemple, si l’élément suivant SemanticResultValue est utilisé pour construire un Grammar, l’entrée dans le moteur de reconnaissance doit contenir les mots « le renard brun rapide » dans l’ordre pour être reconnu.

SemanticResultKey stringTest=new SemanticResultKey(
    "stringTest", new GrammarBuilder[] {
    new GrammarBuilder("the"),
    new GrammarBuilder("quick"),
    new GrammarBuilder("brown"),
    new GrammarBuilder("fox")});

L’argument semanticResultKey contient la balise utilisée pour accéder au SemanticValue qui peut être retourné.

le Value de SemanticValue est déterminé par les GrammarBuilder instances fournies par le builders paramètre .

Si les GrammarBuilder objets ne contiennent aucune instance de définition de SemanticResultValue, la valeur de est SemanticValuenull.

Si les GrammarBuilder objets fournis dans le builders paramètre fournissent une instance non marquée (non associée à un SemanticResultKey objet) SemanticResultValue utilisée par la logique de reconnaissance, cette instance de SemanticResultValue définit la Value propriété du SemanticValue qui est produit.

Il doit y avoir une seule instance non marquée SemanticResultValue dans les GrammarBuilder objets spécifiés par le builders paramètre. Si plusieurs instances d’untagged SemanticResultValue sont associées à , SemanticResultKeychacune tente de définir la valeur du SemanticValue produit dans le résultat de reconnaissance. Cela n’est pas autorisé et le module de reconnaissance génère une exception lorsqu’il tente d’utiliser un Grammar créé à l’aide d’un SemanticResultKey tel instance.

Les instances de SemanticResultValue contenues dans les GrammarBuilder objets spécifiés par le builders paramètre et déjà associées à un autre SemanticResultKey n’ont aucun effet sur le instance actuel SemanticResultKey .

S’applique à

SemanticResultKey(String, String[])

Source:
SemanticResultKey.cs
Source:
SemanticResultKey.cs

Assigne une clé sémantique à une ou plusieurs instances String utilisées pour créer une syntaxe de reconnaissance vocale.

public:
 SemanticResultKey(System::String ^ semanticResultKey, ... cli::array <System::String ^> ^ phrases);
public SemanticResultKey (string semanticResultKey, params string[] phrases);
new System.Speech.Recognition.SemanticResultKey : string * string[] -> System.Speech.Recognition.SemanticResultKey
Public Sub New (semanticResultKey As String, ParamArray phrases As String())

Paramètres

semanticResultKey
String

Étiquette à utiliser pour accéder à l’instance SemanticValue associée aux objets String spécifiés par l’argument phrases.

phrases
String[]

Un ou plusieurs objets String, dont le texte concaténé est associé à un objet SemanticValue accessible avec l'indicateur défini dans semanticResultKey.

Exemples

L’exemple suivant crée un Grammar à partir d’un GrammarBuilder objet qui utilise un SemanticResultKey, qui est défini par un tableau d’objets String .

Un moteur de reconnaissance utilisant le Grammar créé reconnaît l’expression « couleur rouge vert bleu zéro ». La sémantique du RecognizedPhrase retourné par reconnaissance contiendra un SemanticValue avec un Value de « bleu vert rouge ». Vous pouvez accéder à à l’aide de SemanticValue la balise « code ».

En raison de l’ajout SemanticResultValue("zero", 5) à , GrammarBuilderl’objet racine SemanticValue dans aura RecognizedPhrase la valeur 5.

private void keyTest()
{
  // Say "color red green blue zero"
  GrammarBuilder gb = new GrammarBuilder("color") +
                        new SemanticResultKey("code",
                          (new string[] {"red", "green", "blue"})) +
                        new SemanticResultValue("zero", 5);
  Grammar g = new Grammar(gb);
  g.Name = "keyTest";
  _recognizer.LoadGrammar(g);
}

Remarques

Lors de l’exécution d’une opération de reconnaissance, les String objets utilisés dans le phrases paramètre sont traités comme séquentiels. Par exemple, si l’élément suivant SemanticResultValue est utilisé pour construire un Grammar, l’entrée dans le moteur de reconnaissance doit contenir les mots « le renard brun rapide » dans l’ordre pour être reconnu.

SemanticResultKey stringTest=new SemanticResultKey("stringTest",
                                new string[] {
                                               "the",
                                               "quick",
                                               "brown",
                                               "fox"});

L’argument semanticResultKey détermine la clé utilisée pour accéder à qui SemanticValue peut être retourné.

Si vous construisez un Grammar à l’aide d’un GrammarBuilder objet qui contient une clé sémantique avec un tableau d’objets de chaîne, le Value de produit SemanticValue par une opération de reconnaissance sera la chaîne utilisée dans la reconnaissance. Dans l’exemple précédent, cela signifie que Value serait « le renard brun rapide ».

S’applique à