瞭解如何選取要用於語音辨識的已安裝語言。
重要 API:SupportedTopicLanguages、SupportedGrammarLanguages、Language
在這裡,我們會列舉安裝在系統上的語言、識別預設語言,然後選取不同的語言進行辨識。
先決條件:
本主題以 語音辨識為基礎。
您應該對語音辨識和辨識約束有基本的瞭解。
如果您不熟悉開發 Windows 應用程式,請瀏覽這些主題,以熟悉這裡討論的技術。
- 建立您的第一個應用程式
- 了解 事件與路由事件概觀 的相關資訊
用戶體驗指導方針:
如需設計實用且引人入勝的語音啟用應用程式的實用秘訣,請參閱 語音設計指導方針 。
識別預設語言
語音辨識語言會使用系統語音語言做為其預設辨識語言。 此語言是由使用者在裝置 [設定 > 系統 > 語音 > 語言] 畫面上設定。
我們會檢查 SystemSpeechLanguage 靜態屬性來識別預設語言。
var language = SpeechRecognizer.SystemSpeechLanguage;
確認已安裝的語言
已安裝的語言可能會因裝置而異。 您應該在依賴某種限制時確認該語言是否存在。
注意 安裝新的語言套件之後,需要重新啟動。 如果不支援指定的語言或尚未完成安裝,就會引發錯誤碼SPERR_NOT_FOUND (0x8004503a) 的例外狀況。
檢查 SpeechRecognizer 類別的兩個靜態屬性之一,以判斷裝置上支援的語言:
SupportedTopicLanguages— Language 物件的集合,這些物件與預先定義的聽寫和 Web 搜尋文法搭配使用。
SupportedGrammarLanguages— Language 物件的集合,這些對象與清單條件約束或語音辨識文法規格 (SRGS) 檔案搭配使用。
指定語言
若要指定語言,請在SpeechRecognizer建構函式中傳遞 Language 物件。
在這裡,我們會將 「en-US」 指定為辨識語言。
var language = new Windows.Globalization.Language("en-US");
var recognizer = new SpeechRecognizer(language);
備註
您可以將
清單條件約束的設置是透過將 SpeechRecognitionListConstraint 加入到 Constraints 集合中的 SpeechRecognizer,然後呼叫 CompileConstraintsAsync。 您無法直接指定自訂清單的語言。 相反地,清單會使用辨識器的語言來處理。
SRGS 文法是 SpeechRecognitionGrammarFileConstraint 類別所代表的開放式標準 XML 格式。 不同於自定義清單,您可以在 SRGS 標記中指定文法的語言。 CompileConstraintsAsync 會失敗,當 SpeechRecognitionResultStatus 顯示為 TopicLanguageNotSupported 時,如果辨識器未初始化為與 SRGS 標記相同的語言。
相關文章
範例