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