Android Speech to text для номера и адреса электронной почты - PullRequest
0 голосов
/ 17 декабря 2018

Я использую 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;

У меня проблема с получением номера телефона и адреса электронной почты.Это не дает надлежащих результатов.

Предположим, если пользователь скажет «тройной два тройной три пятьсот один» В этом случае STT должен дать мне 222333501, но он дает некоторое число и строку какрезультат.

Предположим, что если пользователь скажет "abc_cde@gmail.com", то в этом случае он также будет давать в виде строк символ подчеркивания.

* 1015Есть ли какой-нибудь родной способ решения этой проблемы.Я сослался на java-утилиту Преобразование слов в число для преобразования строки в число, если оно допустимо, но я не уверен, что это будет работать во всех случаях.Любая помощь приветствуется.
...