共用方式為


GrammarBuilder 類別

定義

提供一種程式化建構語音辨識文法約束的機制。

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

範例

以下範例使用 GrammarBuilderChoices 物件來構建一個文法,能辨識這兩個片語中的任一,分別是「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 物件,請遵循以下步驟。

  1. 建立 GrammarBuilder 物件。

  2. 在 後附加約束GrammarBuilder,例如String物件、ChoicesSemanticResultKeyDictationGrammarSemanticResultValue、 及其他GrammarBuilder定義文法約束的物件。

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

使用 GrammarBuilder Authoring 最適合使用包含單一規則的文法書,這些文法包含多個列表,或是列表的列表。 若要程式化建構包含多條規則或需要內部規則參考的文法,請使用命名 System.Speech.Recognition.SrgsGrammar 空間的類別。

GrammarBuilder也可以透過從某些其他類別隱式轉換,或將 a GrammarBuilder 與包含文法約束的第二個物件結合來獲得。 欲了解更多資訊,請參閱 ImplicitAddition 運算子及 Add 方法。

若要在現有GrammarBuilder的 中加入規則,請使用 AddAppendAppendDictationAppendRuleReferenceAppendWildcard 、 和 方法。

這很重要

語音辨識器在使用包含重複語意元素且鍵名相同,或多個語意元素可能反覆修改相同語意元素值的語音辨識文法時拋出例外。

為了協助除錯,屬性會 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
Add(Choices, GrammarBuilder)

建立一個包含物件Choices後接物件GrammarBuilder的新物件GrammarBuilder

Add(GrammarBuilder, Choices)

建立一個包含物件GrammarBuilder後接物件Choices的新物件GrammarBuilder

Add(GrammarBuilder, GrammarBuilder)

建立 GrammarBuilder 一個包含兩個 GrammarBuilder 物件序列的新

Add(GrammarBuilder, String)

建立一個包含GrammarBuilder物件後接短語的新物件GrammarBuilder

Add(String, GrammarBuilder)

建立一個包含短語後接GrammarBuilder物件的新內容GrammarBuilder

Append(Choices)

附加一組替代方案於目前的文法元素序列。

Append(GrammarBuilder, Int32, Int32)

在目前的文法元素序列中附加重複的文法元素。

Append(GrammarBuilder)

在目前的文法元素序列中附加一個文法元素。

Append(SemanticResultKey)

在目前的文法元素序列中附加語意鍵。

Append(SemanticResultValue)

在目前的文法元素序列中附加語意值。

Append(String, Int32, Int32)

在當前文法元素序列中附加重複的片語。

Append(String, SubsetMatchingMode)

將片語子集的元素附加到目前的文法元素序列中。

Append(String)

在目前的文法元素序列中附加一個片語。

AppendDictation()

將預設的聽寫文法附加到目前的文法元素序列上。

AppendDictation(String)

將指定的口述文法附加到目前的文法元素序列上。

AppendRuleReference(String, String)

將文法定義檔指定的規則附加到目前的文法元素序列上。

AppendRuleReference(String)

將文法定義檔案附加到目前的文法元素序列中。

AppendWildcard()

在目前的文法元素序列中附加一個識別文法元素,以匹配任何輸入。

Equals(Object)

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

(繼承來源 Object)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ToString()

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

(繼承來源 Object)

操作員

名稱 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

適用於

另請參閱