Как настроить RecognizerIntent для автономного использования
У меня есть некоторый код для преобразования речи в текст, но он работает только при наличии подключения к Интернету. Я хотел бы, чтобы мой код работал в автономном режиме, и для этого я уже просмотрел несколько кодов из stackru и других источников, но все же мой код не работает в автономном режиме.
Устройство Moto X Play. Включено с автономным распознаванием речи.
Вот код, который у меня есть.
private void promptSpeechInput() {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
//intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,"en-US");
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE,"en-US");
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,this.getPackageName());
intent.putExtra(RecognizerIntent.EXTRA_PREFER_OFFLINE,true);
//intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
//intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,getString(R.string.speech_prompt));
try {
startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
} catch (ActivityNotFoundException a) {
Toast.makeText(getApplicationContext(),
getString(R.string.speech_not_supported),
Toast.LENGTH_SHORT).show();
}
}
Нужна помощь, чтобы понять это, я думаю, что-то упустил.
Наблюдение Ни одно другое приложение не поддерживает автономный режим.
1 ответ
Я использовал приведенный ниже код, и он происходит в автономном режиме: следуйте его ( http://www.androidhive.info/2014/07/android-speech-to-text-tutorial/)
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
//intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US"));
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,getString(R.string.speech_prompt));
try {
startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
} catch (ActivityNotFoundException a) {
Toast.makeText(getApplicationContext(),getString(R.string.speech_not_supported),Toast.LENGTH_SHORT).show();
}