Note
Please see Azure Cognitive Services for Speech documentation for the latest supported speech solutions.
SrgsRule Constructor (String)
Initializes a new instance of the SrgsRule class and specifies the identifier for the rule.
Namespace: Microsoft.Speech.Recognition.SrgsGrammar
Assembly: Microsoft.Speech (in Microsoft.Speech.dll)
Syntax
'Declaration
Public Sub New ( _
id As String _
)
'Usage
Dim id As String
Dim instance As New SrgsRule(id)
public SrgsRule(
string id
)
Parameters
- id
Type: System.String
The identifier of the rule.
Exceptions
Exception | Condition |
---|---|
ArgumentNullException | id is a null reference (Nothing in Visual Basic). |
ArgumentOutOfRangeException | id is empty. |
FormatException | id is not a proper rule identifier. |
Remarks
The SrgsRule.SrgsRule constructor initializes the Id property. The identifier must be unique within a given grammar.
The SrgsRule.SrgsRule constructor throws a FormatException in the following circumstances:
id is not a valid XML name, as defined in Extensible Markup Language (XML) 1.0 (Fifth Edition). To paraphrase this definition, a valid XML name must begin with a letter, an underscore ('_'), or a colon (':') and can be followed by zero or more NameChar characters (also defined in the XML specification).
id is "NULL" or "VOID" or "GARBAGE".
id contains at least one invalid rule ID character. These characters are: '?', '*', '+', '|', '(', '), '^', '$', '/', ';', '.', '=', '<', '>', '[', ']', '{', '}', '\\', ' ', '\t', '\r', and '\n'.
Examples
The following example creates a grammar that recognizes the phrase "A nation that has won the World Cup is" followed by the name of a country that has won the World Cup. The example creates a SrgsRule object named winnerRule and passes in the identifier WorldCupWinner as a String. The SrgsOneOf object consists of an array of new SrgsItem objects containing alternatives to be recognized by the rule.
public void WorldSoccerWinners ()
{
// Create an SrgsDocument, create a new rule
// and set its scope to public.
SrgsDocument document = new SrgsDocument();
SrgsRule winnerRule = new SrgsRule("WorldCupWinner");
winnerRule.Scope = SrgsRuleScope.Public;
// Add the introduction.
winnerRule.Elements.Add(new SrgsItem("A nation that has won the world cup is: "));
// Create the rule for the European nations.
SrgsOneOf oneOfEurope = new SrgsOneOf(new SrgsItem[] {new SrgsItem("England"),
new SrgsItem("France"), new SrgsItem("Germany"), new SrgsItem("Italy")});
SrgsRule ruleEurope = (new SrgsRule("EuropeanNations", new SrgsElement[] {oneOfEurope}));
// Create the rule for the South American nations.
SrgsOneOf oneOfSAmerica = new SrgsOneOf(new SrgsItem[] {new SrgsItem("Argentina"),
new SrgsItem("Brazil"), new SrgsItem("Uruguay")});
SrgsRule ruleSAmerica = (new SrgsRule("SouthAmericanNations", new SrgsElement[] {oneOfSAmerica}));
// Add references to winnerRule for ruleEurope and ruleSAmerica.
winnerRule.Elements.Add(new SrgsOneOf(new SrgsItem[] {(new SrgsItem
(new SrgsRuleRef(ruleEurope))), new SrgsItem(new SrgsRuleRef(ruleSAmerica))}));
// Add all the rules to the document and make winnerRule
// the root rule of the document.
document.Rules.Add(new SrgsRule[] {winnerRule, ruleEurope, ruleSAmerica});
document.Root = winnerRule;
}
See Also
Reference
Microsoft.Speech.Recognition.SrgsGrammar Namespace