GrammarBuilder 類別

定義

提供以程式設計的方式建置語音辨識文法條件約束的機制。

public ref class GrammarBuilder
public class GrammarBuilder
type GrammarBuilder = class
Public Class GrammarBuilder
繼承
GrammarBuilder

範例

下列範例會使用 GrammarBuilderChoices 物件來建立可辨識任兩個片語 "Make background colorChoice" 或 "Set background to colorChoice" 的文法。

此範例會使用 Choices 物件來建立可接受值的清單,以便從物件陣列進行 colorChoice StringChoices物件類似于 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,或想要以程式設計方式撰寫文法,讓您能夠有效率地完成許多常見案例,您可以使用 GrammarBuilderChoices 類別。

GrammarBuilder 可以使用物件來建立階層式樹狀結構 Choices ,其中包含包含替代片語的物件,並在每個節點上與後置詞和後置 amble 片語一起植入,並使用將意義傳達給應用程式的語義值植入。

若要使用 GrammarBuilder 來建立 Grammar 物件,請使用下列步驟。

  1. 建立 GrammarBuilder 物件。

  2. 將條件約束附加至 GrammarBuilder ,例如 String 物件、 ChoicesSemanticResultKeySemanticResultValueDictationGrammarGrammarBuilder 定義文法條件約束的其他物件。

  3. 使用其中一個函式, Grammar Grammar 從完成的文法建立物件 GrammarBuilder

使用撰寫的最適合文法 GrammarBuilder 具有包含清單的單一規則,或可能清單的清單。 若要以程式設計方式建立具有多個規則或需要進行內部規則參考的文法,請使用 System.Speech.Recognition.SrgsGrammar 命名空間的類別。

GrammarBuilder 也可以從其他類別的隱含轉換取得的實例,或結合 GrammarBuilder 與包含文法條件約束的第二個物件。 如需詳細資訊,請參閱 ImplicitAddition 運算子和 Add 方法。

若要將規則加入至現有的 GrammarBuilder ,請使用 Add 、、 Append AppendDictationAppendRuleReferenceAppendWildcard 方法。

重要

當使用的語音辨識文法包含具有相同索引鍵名稱的重複語義專案,或可重複修改相同語義專案值的多個語義專案時,語音辨識器可能會擲回例外狀況。

為了協助進行偵錯工具, 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 所含文法之內容及結構的字串。

方法

Add(Choices, GrammarBuilder)

建立新的 GrammarBuilder,其中包含 Choices 物件,後面緊接著 GrammarBuilder 物件。

Add(GrammarBuilder, Choices)

建立新的 GrammarBuilder,其中包含 GrammarBuilder 物件,後面緊接著 Choices 物件。

Add(GrammarBuilder, GrammarBuilder)

建立新的GrammarBuilder,其中包含兩個 GrammarBuilder物件的序列。

Add(GrammarBuilder, String)

建立新的 GrammarBuilder,其中包含後面接著片語的 GrammarBuilder 物件。

Add(String, GrammarBuilder)

建立新的 GrammarBuilder,其中包含後面接著 GrammarBuilder 物件的片語。

Append(Choices)

將一組替代項目附加至目前的文法項目序列。

Append(GrammarBuilder)

將文法項目附加至目前的文法項目序列。

Append(GrammarBuilder, Int32, Int32)

將重複的文法項目附加至目前的文法項目序列。

Append(SemanticResultKey)

將語意索引鍵附加至目前的文法項目序列。

Append(SemanticResultValue)

將語意值附加至目前的文法項目序列。

Append(String)

將片語附加至目前的文法項目序列。

Append(String, Int32, Int32)

將重複的片語附加至目前的文法項目序列。

Append(String, SubsetMatchingMode)

將片語子集的項目附加至目前的文法項目序列。

AppendDictation()

將預設聽寫文法附加至目前的文法項目序列。

AppendDictation(String)

將指定的聽寫文法附加至目前的文法項目序列。

AppendRuleReference(String)

將文法定義檔附加至目前的文法項目序列。

AppendRuleReference(String, String)

將指定的文法定義檔規則附加至目前的文法項目序列。

AppendWildcard()

將符合任何輸入的辨識文法項目附加至目前的文法項目序列。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

運算子

Addition(Choices, GrammarBuilder)

建立新的 GrammarBuilder,其中包含 Choices 物件,後面緊接著 GrammarBuilder 物件。

Addition(GrammarBuilder, Choices)

建立新的 GrammarBuilder,其中包含後面接著 GrammarBuilderChoices

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 物件。

適用於

另請參閱