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 物件執行辨識時引發。 |