2011年6月30日 星期四

自訂預設的語言辨識語系

在 android 的平台下,我們可以很輕鬆的結合語音辨識來做一些貼心功能…

android developers 語言辨識範例

以裝置的語系是繁體中文為例…用戶念出來的句子可能被自動辨識為中文或英文…
例如用戶念的是不夠標準的英文 Jason …而辨識器回傳 "節省" 兩個中文字…
或有些時侯我們其實已知用戶說的一定是中文…但卻被誤判為英文…這樣感覺就不夠專業了…

在上面的語言辨識範例中並沒有指定識別器要以何種語系識別用戶的話…
所以會以預設的方式主動比對最接近的語言…才會導致說中文辨識出英文的狀況…
若在已知用戶要說的語言時,可以再加上 RecognizerIntent.EXTRA_LANGUAGE 參數…
如此可以讓語言的辨識更為精準與合用,範例如下…


package com.example.android.apis.app;

private void VoiceSearch()
{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
// 請系統以英文識別用戶說的句子,Jason 就不會變 節省 了
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.ENGLISH.toString());
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "VoiceSearch");
startActivityForResult(intent,VOICE_RECOGNITION_REQUEST_CODE);
}

沒有留言:

張貼留言