從我所閱讀的內容來看,語音識別可用於3種語言:英語(英國,美國,澳大利亞),日語和中文(普通話)。語音識別的可用語言
有誰知道更多關於如何在這些語言之間切換的細節? 有沒有辦法知道(編程)哪種語言在某個設備上的語音識別是活動的? (也許在日本只有日本人...但我能不知怎的得到這個信息......就像一個財產或任何東西?)。
任何有關這幫助將不勝感激。
謝謝你們。
從我所閱讀的內容來看,語音識別可用於3種語言:英語(英國,美國,澳大利亞),日語和中文(普通話)。語音識別的可用語言
有誰知道更多關於如何在這些語言之間切換的細節? 有沒有辦法知道(編程)哪種語言在某個設備上的語音識別是活動的? (也許在日本只有日本人...但我能不知怎的得到這個信息......就像一個財產或任何東西?)。
任何有關這幫助將不勝感激。
謝謝你們。
您可能想看看android.speech.RecognizerIntent它看起來像你可以通過調用getVoiceDetailsIntent()從那裏獲得語言支持信息。
看一看API文檔here
不幸的是,它不起作用,總是返回空包。我在互聯網上發現了類似的問題。任何人都可以告訴它是否有效,以及如何正確使用它? – 2011-02-23 17:37:50
要語言之間進行切換,只需使用你想要的區域設置爲語言和你ACTION_RECOGNIZE_SPEECH
意圖設置爲Locale.toString
EXTRA_LANGAUGE
。
要檢查哪些語言,你需要的東西是這樣的:
Intent detailsIntent = new Intent(
RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS);
LanguageDetailsChecker checker = new LanguageDetailsChecker();
sendOrderedBroadcast(detailsIntent, null, checker, null,
Activity.RESULT_OK, null, null);
哪裏LanguageDetailsChecker是被定義爲這樣的一個BroadcastReceiver:所有這些代碼
public class LanguageDetailsChecker extends BroadcastReceiver {
private static final String TAG = "LanguageDetailsChecker";
private List<String> supportedLanguages;
private String languagePreference;
public LanguageDetailsChecker() {
supportedLanguages = new ArrayList<String>();
}
@Override
public void onReceive(Context context, Intent intent) {
Bundle results = getResultExtras(true);
if (results.containsKey(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE)) {
languagePreference = results
.getString(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE);
}
if (results.containsKey(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES)) {
supportedLanguages = results
.getStringArrayList(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES);
}
}
}
是this project一部分。
請嘗試使您的標題更具描述性。例如:「語音識別的可用語言」 – Casebash 2010-05-06 22:42:08
從現在開始。謝謝。 – FiDo 2010-05-07 13:34:04