Share via


指定語音辨識器語言

了解如何選擇用於語音辨識的已安裝語言。

重要 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 新增至 SpeechRecognizerConstraints 集合,然後呼叫 CompileConstraintsAsync 來配置主題約束。 如果未使用支援的主題語言初始化識別器,則傳回 TopicLanguageNotSupportedSpeechRecognitionResultStatus

透過將 SpeechRecognitionListConstraint 新增至 SpeechRecognizerConstraints 集合,然後呼叫 CompileConstraintsAsync 來配置清單約束。 您無法直接指定自訂清單的語言。 相反地,清單會使用辨識器的語言來處理。

SRGS 語法是由 SpeechRecognitionGrammarFileConstraint 類別所表示的開放標準 XML 格式。 不同於自訂清單,您可以在 SRGS 標記中指定文法的語言。 如果識別器未初始化為與 SRGS 標記相同的語言,CompileConstraintsAsync 會失敗,並且 SpeechRecognitionResultStatusTopicLanguageNotSupported

範例