Android语音转文本以获取号码和电子邮件ID

时间:2018-12-17 08:21:24

标签: android speech-recognition speech-to-text speech-synthesis android-speech-api

我正在使用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来将字符串转换为数字(如果有效),但是我不确定在所有情况下都可以使用。 任何帮助表示赞赏。

0 个答案:

没有答案