Grammar 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
執行階段物件,會參考應用程式可用來定義語音辨識條件約束的語音辨識文法。
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 構函 Grammar 式,從 GrammarBuilder 或 SrgsDocument 物件建立實體,或是從包含支援格式之文法描述的 檔案或 Stream 。 支援的格式包括下列各項:
已編譯成擴展名為 .cfg 之二進位檔的文法
接受其自變數中 XML 格式文法檔案的文法建構函式會將 XML 文法編譯成二進位格式,以優化它們以供語音辨識引擎載入和取用。 您可以使用其中Compile一種方法,預先編譯文法,以減少從 XML 格式文法建構Grammar物件所需的時間量。
由或 SpeechRecognitionEngine 物件管理SpeechRecognizer的應用程式語音辨識引擎可以載入多個語音辨識文法。 應用程式可以透過設定 Enabled 屬性來獨立啟用或停用個別文法,並透過 Grammar 屬性修改辨識行為,例如 Priority 和 Weight 屬性。
當輸入符合透過文法的路徑時,就會引發文法 SpeechRecognized 的事件。
注意
最佳做法是驗證用來建 Grammar 置物件的任何URI或 DLL 的安全性。
Windows 和語音平臺為建構 Grammar DLL 實例的應用程式或支援腳本的文法,提供安全性。
物件中的 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, String) | |
Grammar(Stream, String, Object[]) | |
Grammar(Stream, String, Uri) |
從資料流初始化 Grammar 類別的新執行個體,指定根規則,並定義基底統一資源識別元 (URI) 來解析相對的規則參考。 |
Grammar(Stream, String, Uri, Object[]) | |
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[]) |
|
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
StgInit(Object[]) |
|
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |
事件
SpeechRecognized |
當語音辨識器使用 Grammar 物件執行辨識時引發。 |