Share via


Note

Please see Azure Cognitive Services for Speech documentation for the latest supported speech solutions.

SemanticResultKey.ToGrammarBuilder Method

Returns an instance of GrammarBuilder constructed from the current SemanticResultKey instance.

Namespace:  Microsoft.Speech.Recognition
Assembly:  Microsoft.Speech (in Microsoft.Speech.dll)

Syntax

'Declaration
Public Function ToGrammarBuilder As GrammarBuilder
'Usage
Dim instance As SemanticResultKey
Dim returnValue As GrammarBuilder

returnValue = instance.ToGrammarBuilder()
public GrammarBuilder ToGrammarBuilder()

Return Value

Type: Microsoft.Speech.Recognition.GrammarBuilder

Remarks

The use of ToGrammarBuilder is equivalent to using the GrammarBuilder constructor that takes a SemanticResultKey object as an argument (GrammarBuilder(SemanticResultKey)).

Examples

The following example creates a Grammar object that supports commands to change the background color.

A Choices object (colorChoice) containing the list of options for background colors is filled using the Add([]) method with GrammarBuilder instances. The GrammarBuilder instances are obtained through the ToGrammarBuilder() method on the SemanticResultValue objects created from color strings.

A GrammarBuilder is then obtained by calling ToGrammarBuilder() on a SemanticResultKey instance, which will be used to key the semantic choices in colorChoice.

private Grammar CreateGrammarBuilderRGBSemantics() 
{
  // Create a set of choices, each a lookup from a color name to the RGB value.
  // Choices constructors do not take SemanticResultValue arguments,
  // so cast SemanticResultValue to GramarBuilder.
  Choices colorChoice = new Choices();
  foreach (string colorName in System.Enum.GetNames(typeof(KnownColor))) 
  {
    SemanticResultValue colorValue=new SemanticResultValue(colorName, Color.FromName(colorName).ToArgb());
    // Uses implicit conversion of SemanticResultValue to GrammarBuilder    
    colorChoice.Add(colorValue.ToGrammarBuilder());
  }
  SemanticResultKey choiceKey = new SemanticResultKey("rgb", colorChoice);
  GrammarBuilder choiceBuilder = choiceKey.ToGrammarBuilder();

  // Create two intermediate grammars with introductory phrase and the color choice.
  GrammarBuilder makeBackgroundBuilder = "Make background";
  makeBackgroundBuilder.Append(choiceBuilder);

  GrammarBuilder configureBackgroundBuilder = new GrammarBuilder("Configure background as");
  configureBackgroundBuilder.Append((new SemanticResultKey("rgb", colorChoice)).ToGrammarBuilder());

  // Create the final grammar, which recognizes either intermediate grammar.
  Grammar grammar = new Grammar(new Choices(makeBackgroundBuilder, configureBackgroundBuilder));
  grammar.Name = "Make Background /Configure background as";

  return grammar;
}

See Also

Reference

SemanticResultKey Class

SemanticResultKey Members

Microsoft.Speech.Recognition Namespace