GrammarBuilder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供一種程式化建構語音辨識文法約束的機制。
public ref class GrammarBuilder
public class GrammarBuilder
type GrammarBuilder = class
Public Class GrammarBuilder
- 繼承
-
GrammarBuilder
範例
以下範例使用 GrammarBuilder 和 Choices 物件來構建一個文法,能辨識這兩個片語中的任一,分別是「Make background colorChoice」或「Set background to colorChoice」。
這個範例使用一個Choices物件,從一組String物件中建立一個可接受的 colorChoice 值清單。
Choices物件類似one-of於 SRGS 規範中的元素,包含一組替代片語,任何一個在口語中都能被辨識。 範例也使用物件 Choices 將兩個 GrammarBuilder 物件陣列分組成一對替代片語,這些詞語由所得文法可識別。 替代詞彙或片語是大多數文法的組成部分,而物件 Choices 為以 GrammarBuilder建構的文法提供了此功能。
範例最終由 從 建構物Choices體生成一個Grammar物件GrammarBuilder。
private Grammar CreateColorGrammar()
{
// Create a set of color choices.
Choices colorChoice = new Choices(new string[] {"red", "green", "blue"});
GrammarBuilder colorElement = new GrammarBuilder(colorChoice);
// Create grammar builders for the two versions of the phrase.
GrammarBuilder makePhrase = new GrammarBuilder("Make background");
makePhrase.Append(colorElement);
GrammarBuilder setPhrase = new GrammarBuilder("Set background to");
setPhrase.Append(colorElement);
// Create a Choices for the two alternative phrases, convert the Choices
// to a GrammarBuilder, and construct the grammar from the result.
Choices bothChoices = new Choices(new GrammarBuilder[] {makePhrase, setPhrase});
Grammar grammar = new Grammar((GrammarBuilder)bothChoices);
grammar.Name = "backgroundColor";
return grammar;
}
備註
語音辨識文法通常以語音 辨識文法規範(SRGS)版本 1.0 所定義的 XML 格式撰寫。 如果你熟悉 SRGS,但想用程式方式產生文法,可以使用 System.Speech.Recognition.SrgsGrammar 命名空間,其成員與 SRGS 定義的元素和屬性非常對應。 如果你不熟悉 SRGS,或想要一種輕量化、程式化的文法撰寫方式,以有效完成許多常見情境;你可以用 GrammarBuilder AND Choices 的課程。
利用 GrammarBuilder 物件建立一個階層樹狀結構,由 Choices 包含替代片語的物件組成,並在每個節點穿插前言與引言後的片語,並以語意值助長,將意義傳達回應用程式。
要使用 a GrammarBuilder 來建立 Grammar 物件,請遵循以下步驟。
建立 GrammarBuilder 物件。
在 後附加約束GrammarBuilder,例如String物件、Choices、SemanticResultKey、DictationGrammarSemanticResultValue、 及其他GrammarBuilder定義文法約束的物件。
使用其中一個Grammar建構函式,從完成GrammarBuilder的文法中建立Grammar物件。
使用 GrammarBuilder Authoring 最適合使用包含單一規則的文法書,這些文法包含多個列表,或是列表的列表。 若要程式化建構包含多條規則或需要內部規則參考的文法,請使用命名 System.Speech.Recognition.SrgsGrammar 空間的類別。
GrammarBuilder也可以透過從某些其他類別隱式轉換,或將 a GrammarBuilder 與包含文法約束的第二個物件結合來獲得。 欲了解更多資訊,請參閱 Implicit 與 Addition 運算子及 Add 方法。
若要在現有GrammarBuilder的 中加入規則,請使用 Add、 Append、 AppendDictationAppendRuleReferenceAppendWildcard 、 和 方法。
這很重要
語音辨識器在使用包含重複語意元素且鍵名相同,或多個語意元素可能反覆修改相同語意元素值的語音辨識文法時拋出例外。
為了協助除錯,屬性會 DebugShowPhrases 以字串的形式回傳 的 GrammarBuilder 當前狀態。
建構函式
| 名稱 | Description |
|---|---|
| GrammarBuilder() |
初始化一個新的、空的類別實例 GrammarBuilder 。 |
| GrammarBuilder(Choices) |
從一組替代方案初始化該 GrammarBuilder 類別的新實例。 |
| GrammarBuilder(GrammarBuilder, Int32, Int32) |
從重複元素初始化該類別的新實例 GrammarBuilder 。 |
| GrammarBuilder(SemanticResultKey) |
從語意鍵初始化該類別的新實例 GrammarBuilder 。 |
| GrammarBuilder(SemanticResultValue) |
從語意值初始化該類別的新實例 GrammarBuilder 。 |
| GrammarBuilder(String, Int32, Int32) |
從 a String 中的單字序列初始化該GrammarBuilder類別的新實例,並指定該類別可重複多少次String。 |
| GrammarBuilder(String, SubsetMatchingMode) |
初始化該類別的新實例 GrammarBuilder ,針對一串字串的子集。 |
| GrammarBuilder(String) |
從一串字串初始化該 GrammarBuilder 類別的新實例。 |
屬性
| 名稱 | Description |
|---|---|
| Culture |
取得或設定語音辨識文法的文化。 |
| DebugShowPhrases |
會得到一個字串,顯示文法 GrammarBuilder的內容與結構。 |
方法
操作員
| 名稱 | Description |
|---|---|
| Addition(Choices, GrammarBuilder) |
建立一個包含物件Choices後接物件GrammarBuilder的新物件GrammarBuilder。 |
| Addition(GrammarBuilder, Choices) |
建立 GrammarBuilder 一個包含 的 GrammarBuilder 新 ,後接 Choices。 |
| Addition(GrammarBuilder, GrammarBuilder) |
建立 GrammarBuilder 一個包含兩個 GrammarBuilder 物件序列的新 |
| Addition(GrammarBuilder, String) |
建立一個包含 a GrammarBuilder 後接短語的新字GrammarBuilder。 |
| Addition(String, GrammarBuilder) |
建立 GrammarBuilder 一個包含短語後接 GrammarBuilder的新 。 |
| Implicit(Choices to GrammarBuilder) |
將 Choices 物件轉換成 GrammarBuilder 物件。 |
| Implicit(SemanticResultKey to GrammarBuilder) |
將 SemanticResultKey 物件轉換成 GrammarBuilder 物件。 |
| Implicit(SemanticResultValue to GrammarBuilder) |
將 SemanticResultValue 物件轉換成 GrammarBuilder 物件。 |
| Implicit(String to GrammarBuilder) |
將字串轉換成物件 GrammarBuilder 。 |