2014-10-16 77 views
1

問題尋找語音(語音命令)語言+地區/文化背景?

我需要檢索默認WP8語音識別服務的語言+區域代碼。在電話GUI中,這是在'語音' - >'語言語言'下。如何以編程方式訪問此屬性?

注:AppResources.ResourceLanguage或AppResources.Culture不提供我需要的,因爲他們的背後「語言+區域」的價值屬性 - >只有「手機語言」。

背景

我已經成功地使用英語(en-US)VoiceCommandDefinition.xml(VCD.xml)與我的WP8的應用程序文件。將英語以外的語言使用語言特定的VCD.xml進行語音識別時存在問題。如果手機上的'語音' - >'語言語言'屬性與VCD.xml上的'lang'值不完全匹配,則應用程序的語音命令都不可用。

爲了讓語音識別工作,我真的需要在加載時動態更改我的VCD.xml中的'lang'屬性,以便我可以使es-US看起來像es-MX一樣是盡力而爲的替代語言命令集。只有當VCD.xml上的該值與「語音」 - >「語言語言」中的值匹配時,應用程序的語音命令才能加載並可用。

注:「語言+區域」 - >「手機語言」在手機上設置僅確定哪些應用程序名稱的發音,使用,而不是實際的命令。例如'Language + Region' - >'Phone language'和VCD.xml'lang'attribute ='es-US',而'Speech' - >'Speech language'='es-MX'不會顯示應用程序語音命令因爲這些地區不匹配。重要的是我需要在運行時以編程方式訪問的'Speech' - >'語言語言'屬性。

研究資料來源

我讀提交此問題以及似乎任何相關或#1 MSDN論壇頁面之前http://msdn.microsoft.com/en-us/library/windows/apps/jj207021%28v=vs.105%29.aspx相關的網頁(等等)。

感謝您的幫助,如果你能提供。

P.S.我也發佈了這個問題到Microsoft Windows Phone 8 Develpoment Forum沒有相關的答案,所以如果你在這裏和那裏回答我會在兩個地方投票給你! :-)

回答

1
string langSetOnPhone = new Windows.Phone.Speech.Synthesis.SpeechSynthesizer().GetVoice().Language; 

if (!string.IsNullOrEmpty(langSetOnPhone) && langSetOnPhone == "en-US") 
{ 
    //Do your work here 
} 
else 
{ 
    //Show relavant message 
} 

希望這會有所幫助。

+0

完美!謝謝。 – rfreytag 2014-10-31 08:10:47