1

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

4

0 回答 0