从我所阅读的内容来看,语音识别可用于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