Mr.*_*.Me 19 android speech-recognition
我一直在研究Android中的语音识别API,发现当语言设置改变时语音结果会有所不同,有没有办法以编程方式设置它?或者是否打算在语音设置屏幕上午餐?或者还有什么?注意:我试图使用这个额外的意图:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en-US");
Run Code Online (Sandbox Code Playgroud)
但它无效
gre*_*egm 46
帕加特说,这样做会:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
Run Code Online (Sandbox Code Playgroud)
此外,您的应用可以通过发送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);
Run Code Online (Sandbox Code Playgroud)
其中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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
有关完整的代码,请查看此github项目:https: //github.com/gast-lib
Arn*_* M. 12
没有解决方案,但是黑客......
intent.putExtra("android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES", new String[]{"en"});
Run Code Online (Sandbox Code Playgroud)
在这里查看完整的故事.
小智 10
这将有效:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en_US");
Run Code Online (Sandbox Code Playgroud)
你必须使用"en_US"而不是"en-US".前者是Java语言环境标记的正确格式.
建议您使用
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.US.toString());
Run Code Online (Sandbox Code Playgroud)
避免记住这些细节.
你试过这个:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
Run Code Online (Sandbox Code Playgroud)
我终于得到了我的应用程序,将语音识别结果限制为指定的语言输入(通过添加以下所有3个额外内容,将其处理,例如,"ja"表示日语或"fr"表示法语):
String languagePref = "de";//or, whatever iso code...
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, languagePref);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, languagePref);
intent.putExtra(RecognizerIntent.EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE, languagePref);
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人.