我一直在研究 android 中的语音识别 API,发现更改语言设置时语音结果会有所不同,有没有办法以编程方式设置它?还是有意在语音语言设置屏幕上午餐?还是什么? 笔记: 我试图额外使用这个 Intent :
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en-US");
但是没有效果
最佳答案
正如 pargat 所说,这样就可以了:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
此外,您的应用可以通过发送 RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS
有序广播来查询支持的语言列表,如下所示:
Intent detailsIntent = new Intent(RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS);
sendOrderedBroadcast(
detailsIntent, null, new LanguageDetailsChecker(), null, Activity.RESULT_OK, null, null);
LanguageDetailsChecker 是这样的:
public class LanguageDetailsChecker extends BroadcastReceiver
{
private List<String> supportedLanguages;
private String languagePreference;
@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);
}
}
}
有关完整代码,请查看此 github 项目: https://github.com/gast-lib
关于android - 如何在android上设置语音识别中的语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10538791/