Android Speech to text для номера и адреса электронной почты

Я использую 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", то в этом случае он также дает в виде строк и подчеркивания, и подчеркивания.

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

0 ответов

Другие вопросы по тегам