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 物件來建立可接受值的清單,以便從物件陣列進行 colorChoice String 。 Choices物件類似于 one-of
SRGS 規格中的專案,並包含一組替代的片語,其中任何一項都可以在說出時辨識。 此範例也會使用 Choices 物件,將兩個物件的陣列分組成一組可供 GrammarBuilder 結果文法辨識的替代片語。 替代單字或片語是大部分文法的元件,而物件為使用所建立的文法 Choices 提供這項功能 GrammarBuilder 。
此範例最後會從 Grammar 物件的結構建立物件 GrammarBuilder Choices 。
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;
}
備註
語音辨識文法通常是以語音辨識文法規格所定義的 XML 格式來撰寫 (SRGS) 1.0 版。 如果您熟悉 SRGS 但想要以程式設計的方式產生文法,則可以使用 System.Speech.Recognition.SrgsGrammar 命名空間,其成員會緊密對應到 srgs 所定義的元素和屬性。 如果您不熟悉 SRGS,或想要以程式設計方式撰寫文法,讓您能夠有效率地完成許多常見案例,您可以使用 GrammarBuilder 和 Choices 類別。
您 GrammarBuilder 可以使用物件來建立階層式樹狀結構 Choices ,其中包含包含替代片語的物件,並在每個節點上與後置詞和後置 amble 片語一起植入,並使用將意義傳達給應用程式的語義值植入。
若要使用 GrammarBuilder 來建立 Grammar 物件,請使用下列步驟。
建立 GrammarBuilder 物件。
將條件約束附加至 GrammarBuilder ,例如 String 物件、 Choices 、 SemanticResultKey 、 SemanticResultValue 、 DictationGrammar 和 GrammarBuilder 定義文法條件約束的其他物件。
使用其中一個函式, Grammar Grammar 從完成的文法建立物件 GrammarBuilder 。
使用撰寫的最適合文法 GrammarBuilder 具有包含清單的單一規則,或可能清單的清單。 若要以程式設計方式建立具有多個規則或需要進行內部規則參考的文法,請使用 System.Speech.Recognition.SrgsGrammar 命名空間的類別。
您 GrammarBuilder 也可以從其他類別的隱含轉換取得的實例,或結合 GrammarBuilder 與包含文法條件約束的第二個物件。 如需詳細資訊,請參閱 Implicit 和 Addition 運算子和 Add 方法。
若要將規則加入至現有的 GrammarBuilder ,請使用 Add 、、 Append AppendDictation 、 AppendRuleReference 和 AppendWildcard 方法。
重要
當使用的語音辨識文法包含具有相同索引鍵名稱的重複語義專案,或可重複修改相同語義專案值的多個語義專案時,語音辨識器可能會擲回例外狀況。
為了協助進行偵錯工具, DebugShowPhrases 屬性會以字串形式傳回的目前狀態 GrammarBuilder 。
建構函式
GrammarBuilder() |
初始化 GrammarBuilder 類別的新的空執行個體。 |
GrammarBuilder(Choices) |
從一組替代項目初始化 GrammarBuilder 類別的新執行個體。 |
GrammarBuilder(GrammarBuilder, Int32, Int32) |
從重複的項目初始化 GrammarBuilder 類別的新執行個體。 |
GrammarBuilder(SemanticResultKey) |
從語意索引鍵初始化 GrammarBuilder 類別的新執行個體。 |
GrammarBuilder(SemanticResultValue) |
從語意值初始化 GrammarBuilder 類別的新執行個體。 |
GrammarBuilder(String) |
從單字序列初始化 GrammarBuilder 類別的新執行個體。 |
GrammarBuilder(String, Int32, Int32) |
從 GrammarBuilder 中的單字序列,初始化 String 類別的新執行個體,並指定 String 可重複次數。 |
GrammarBuilder(String, SubsetMatchingMode) |
針對單字序列的子集,初始化 GrammarBuilder 類別的新執行個體。 |
屬性
Culture |
取得或設定語音辨識文法的文化特性。 |
DebugShowPhrases |
取得顯示 GrammarBuilder 所含文法之內容及結構的字串。 |
方法
運算子
Addition(Choices, GrammarBuilder) |
建立新的 GrammarBuilder,其中包含 Choices 物件,後面緊接著 GrammarBuilder 物件。 |
Addition(GrammarBuilder, Choices) |
建立新的 GrammarBuilder,其中包含後面接著 GrammarBuilder 的 Choices。 |
Addition(GrammarBuilder, GrammarBuilder) |
建立新的GrammarBuilder,其中包含兩個 GrammarBuilder物件的序列。 |
Addition(GrammarBuilder, String) |
建立新的 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 物件。 |