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 構函式,從 或 SrgsDocument 物件建立 Grammar 實例,或從 GrammarBuilder 包含支援格式之文法描述的 檔案或 Stream 。 支援的格式包括:
已編譯成副檔名為 .cfg 之二進位檔案的文法
接受其引數中 XML 格式文法檔案的文法建構函式會將 XML 文法編譯為二進位格式,以將其優化,以供語音辨識引擎載入和取用。 您可以使用其中 Compile 一種方法,事先編譯文法,以減少從 XML 格式文法建構 Grammar 物件所需的時間。
由 或 SpeechRecognitionEngine 物件管理 SpeechRecognizer 的應用程式語音辨識引擎可以載入多個語音辨識文法。 應用程式可以透過設定 Enabled 屬性來獨立啟用或停用個別文法,並透過 Grammar 屬性修改辨識行為,例如 Priority 和 Weight 屬性。
當輸入符合透過文法的路徑時,就會引發文法的事件 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, 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 物件執行辨識時引發。 |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應