共用方式為


指定語音辨識器語言

瞭解如何選取要用於語音辨識的已安裝語言。

重要 APISupportedTopicLanguagesSupportedGrammarLanguagesLanguage

在這裡,我們會列舉安裝在系統上的語言、識別預設語言,然後選取不同的語言進行辨識。

先決條件

本主題以 語音辨識為基礎。

您應該對語音辨識和辨識約束有基本的瞭解。

如果您不熟悉開發 Windows 應用程式,請瀏覽這些主題,以熟悉這裡討論的技術。

用戶體驗指導方針:

如需設計實用且引人入勝的語音啟用應用程式的實用秘訣,請參閱 語音設計指導方針

識別預設語言

語音辨識語言會使用系統語音語言做為其預設辨識語言。 此語言是由使用者在裝置 [設定 > 系統 > 語音 > 語言] 畫面上設定。

我們會檢查 SystemSpeechLanguage 靜態屬性來識別預設語言。

var language = SpeechRecognizer.SystemSpeechLanguage; 

確認已安裝的語言

已安裝的語言可能會因裝置而異。 您應該在依賴某種限制時確認該語言是否存在。

注意 安裝新的語言套件之後,需要重新啟動。 如果不支援指定的語言或尚未完成安裝,就會引發錯誤碼SPERR_NOT_FOUND (0x8004503a) 的例外狀況。

 

檢查 SpeechRecognizer 類別的兩個靜態屬性之一,以判斷裝置上支援的語言:

指定語言

若要指定語言,請在SpeechRecognizer建構函式中傳遞 Language 物件。

在這裡,我們會將 「en-US」 指定為辨識語言。

var language = new Windows.Globalization.Language("en-US"); 
var recognizer = new SpeechRecognizer(language); 

備註

您可以將 SpeechRecognitionTopicConstraint 新增至 SpeechRecognizer 集合 条件約束,然後呼叫 CompileConstraintsAsync來設定主題條件約束。 如果辨識器並非以支援的主題語言初始化,則會傳回 SpeechRecognitionResultStatus,其狀態為 TopicLanguageNotSupported

清單條件約束的設置是透過將 SpeechRecognitionListConstraint 加入到 Constraints 集合中的 SpeechRecognizer,然後呼叫 CompileConstraintsAsync。 您無法直接指定自訂清單的語言。 相反地,清單會使用辨識器的語言來處理。

SRGS 文法是 SpeechRecognitionGrammarFileConstraint 類別所代表的開放式標準 XML 格式。 不同於自定義清單,您可以在 SRGS 標記中指定文法的語言。 CompileConstraintsAsync 會失敗,當 SpeechRecognitionResultStatus 顯示為 TopicLanguageNotSupported 時,如果辨識器未初始化為與 SRGS 標記相同的語言。

範例