据我所知,语音识别支持3种语言:英语(英国,美国,澳大利亚),日语和汉语(普通话)。
有没有人知道如何在这些语言之间切换的更多细节?有没有办法(通过编程)知道在特定设备上哪种语言是语音识别的活动语言?(也许在日本只有日语…但是我能以某种方式得到这个信息吗..。比如财产或任何东西?)。
任何关于这方面的帮助都将不胜感激。
谢谢你们。
发布于 2011-10-26 01:31:28
要在语言之间切换,只需使用您想要的语言区域设置,并在您的ACTION_RECOGNIZE_SPEECH intent中为EXTRA_LANGAUGE设置Locale.toString。
要检查哪些语言可用,您需要类似以下内容:
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的一部分。
发布于 2010-05-22 02:25:28
你可能想看看android.speech.RecognizerIntent,看起来你可以通过调用getVoiceDetailsIntent()从那里获取语言支持信息。
请看API文档here
https://stackoverflow.com/questions/2781598
复制相似问题