我正在使用 Android Speech to text 进行语音识别。
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 实用程序 将单词转换为数字以将字符串转换为数字(如果有效),但我不确定这是否适用于所有情况。任何帮助表示赞赏。