我正在使用Android Speech到文本进行语音识别。
final Intent sttIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
sttIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
final String language = config.getLanguage().replace('-', '_');
sttIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, language);
sttIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, language);
sttIntent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);
sttIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, context.getPackageName());
// WORKAROUND for https://code.google.com/p/android/issues/detail?id=75347
sttIntent.putExtra("android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES", new String[]{language});
return sttIntent;
我在获取电话号码和电子邮件ID时遇到问题。 它没有给出适当的结果。
假设用户说“三重二三重三五百一十一” 在这种情况下,STT应该给我222333501,但结果是给出一些数字和字符串。
假设用户说“ abc_cde@gmail.com”,在这种情况下,它也以字符串和下划线的速率给出字符串。
有没有解决此问题的本地方法。 我已经引用了Java实用程序Convert words to number来将字符串转换为数字(如果有效),但是我不确定在所有情况下都可以使用。 任何帮助表示赞赏。