Grammar 類別

定義

執行階段物件,會參考應用程式可用來定義語音辨識條件約束的語音辨識文法。

public ref class Grammar
public class Grammar
type Grammar = class
Public Class Grammar
繼承
Grammar
衍生

範例

下列範例會 Grammar 從 XML 檔案 (cities.xml) 中定義的語音辨識文法建構 物件。 cities.xml檔案的內容會出現在下列 XML 範例中。

// Load a cities grammar from a local file and return the grammar object.   
private static Grammar CreateGrammarFromFile()  
{  
  Grammar citiesGrammar = new Grammar(@"c:\temp\cities.xml");  
  citiesGrammar.Name = "SRGS File Cities Grammar";  
  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item> Seattle </item>  
      <item> Los Angeles </item>  
      <item> New York </item>  
      <item> Miami </item>  
    </one-of>  
  </rule>  
</grammar>  

備註

語音辨識文法是一組規則或條件約束,可定義語音辨識引擎可以辨識為有意義的輸入。 如需建立和使用語音辨識文法的詳細資訊,請參閱 語音辨識和使用 SrgsGrammar 建立文法

撰寫文法之後,您必須將它建置成 Grammar 語音辨識引擎可以載入的物件,而且您的應用程式可以在執行時間使用來管理語音辨識。 您可以使用建 Grammar 構函式,從 或 SrgsDocument 物件建立 Grammar 實例,或從 GrammarBuilder 包含支援格式之文法描述的 檔案或 Stream 。 支援的格式包括:

接受其引數中 XML 格式文法檔案的文法建構函式會將 XML 文法編譯為二進位格式,以將其優化,以供語音辨識引擎載入和取用。 您可以使用其中 Compile 一種方法,事先編譯文法,以減少從 XML 格式文法建構 Grammar 物件所需的時間。

由 或 SpeechRecognitionEngine 物件管理 SpeechRecognizer 的應用程式語音辨識引擎可以載入多個語音辨識文法。 應用程式可以透過設定 Enabled 屬性來獨立啟用或停用個別文法,並透過 Grammar 屬性修改辨識行為,例如 PriorityWeight 屬性。

當輸入符合透過文法的路徑時,就會引發文法的事件 SpeechRecognized

注意

最佳做法是驗證用來建 Grammar 置物件的任何 URI 或 DLL 的安全性。

Windows 和語音平臺可為從 DLL 或支援腳本的文法建構 Grammar 實例的應用程式提供安全性。

物件中的 Grammar 腳本一律會執行,就像從 中的 Internet Zone 網頁下載一樣。 Common Language Runtime (CLR) 隔離載入的任何 DLL,以取得文法定義。

建構函式

Grammar()

初始化 Grammar 類別的新執行個體。

Grammar(GrammarBuilder)

Grammar 物件初始化 GrammarBuilder 類別的新執行個體。

Grammar(SrgsDocument)

Grammar 物件初始化 SrgsDocument 類別的新執行個體。

Grammar(SrgsDocument, String)

SrgsDocument 物件初始化 類別的新實例 Grammar ,並指定根規則。

Grammar(SrgsDocument, String, Object[])

Grammar 執行個體初始化 SrgsDocument 類別的新執行個體,並指定要成為文法進入點的規則名稱。

Grammar(SrgsDocument, String, Uri)

SrgsDocument 物件初始化 類別的新實例 Grammar 、指定根規則,並定義基底統一資源識別元 (URI) 解析相對規則參考。

Grammar(SrgsDocument, String, Uri, Object[])

Grammar 執行個體初始化 SrgsDocument 類別的新執行個體,並指定要成為文法進入點的規則名稱和解析相對參考的基底 URI。

Grammar(Stream)

Grammar 初始化 Stream 類別的新執行個體。

Grammar(Stream, String)

Grammar 初始化 Stream 類別的新執行個體並指定根規則。

Grammar(Stream, String, Object[])

Grammar 初始化 Stream 類別的新執行個體並指定根規則。

Grammar(Stream, String, Uri)

從資料流初始化 Grammar 類別的新執行個體,指定根規則,並定義基底統一資源識別元 (URI) 來解析相對的規則參考。

Grammar(Stream, String, Uri, Object[])

初始化 Grammar 類別的新執行個體 Stream,並指定根規則和解析相對參考的基底 URI。

Grammar(String)

從檔案初始化 Grammar 類別的新執行個體。

Grammar(String, String)

從檔案初始化 Grammar 類別的新執行個體並指定根規則。

Grammar(String, String, Object[])

從包含文法定義的檔案中,初始化 Grammar 類別的新執行個體,並指定要成為文法進入點的規則名稱。

屬性

Enabled

取得或設定值,這個值控制語音辨識器是否可以使用 Grammar 來執行辨識。

IsStg

取得文法是否為強型別。

Loaded

取得語音辨識器是否已經載入 Grammar

Name

取得或設定 Grammar 物件的名稱。

Priority

取得或設定 Grammar 物件的優先權值。

ResourceName

取得或設定值,這個值包含已用來載入目前 Grammar 的二進位資源的名稱。

RuleName

取得 Grammar 物件的根規則或進入點名稱。

Weight

取得或設定 Grammar 物件的加權值。

方法

Equals(Object)

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

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
LoadLocalizedGrammarFromType(Type, Object[])

LoadLocalizedGrammarFromType 方法會傳回衍生自 GrammarType 物件的當地語系化執行個體。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
StgInit(Object[])

StgInit 方法會初始化強型別文法。

ToString()

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

(繼承來源 Object)

事件

SpeechRecognized

當語音辨識器使用 Grammar 物件執行辨識時引發。

適用於

另請參閱