Получить URI сохраненного аудио в OnResults (результат Bundle) в Speech RecognitionListener android
Я перешел почти по каждой ссылке для сохранения звука и преобразования его в текст, но я не нашел способа получить URL-адрес аудио в специальном Recognition Listener.
записать / сохранить аудио с целью распознавания голоса
Как использовать речь Android в тексте с аудиофайлом
и многие другие, а также .... Аудио URL, который я получил с помощью RecognizerIntent
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQ_CODE_SPEECH_INPUT: {
if (resultCode == getActivity().RESULT_OK && null != data) {
ArrayList<String> result = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
txtSpeechInput.setText(result.get(0));
Uri audioUri = data.getData();
ContentResolver contentResolver = getActivity().getContentResolver();
try {
InputStream filestream = contentResolver.openInputStream(audioUri);
copyInputStreamToFile(filestream, new File(Environment.getExternalStorageDirectory()+ "/recording.amr"));
Log.e("audio", "uri= "+ audioUri);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
break;
}
}
}
Я хочу получить его здесь, потому что я не хочу использовать диалог Google, я хочу настроить его без диалога
@Override
public void onResults(Bundle results) {
String str = new String();
Log.d("testing1", "onResults " + results);
data = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
str=data.get(0)+"";
result_txt.setText(str);
speech.stopListening();
if(speech!=null){
speech.destroy();
}
}
Но я не могу получить URL из результатов этого пакета. У меня есть два запроса:
Пожалуйста, дайте мне знать, как можно получить сохраненный аудио URI в связкахКогда я настраиваю речь в текст, он слушает долго. Так же, как RecognitionIntent, если звук не записывается в течение 2-3 секунд, он говорит, что не нашел звука. То же самое, что я хочу сделать с настроенным звуком, так как он слушает долго. Я пошел по этим ссылкам для второго вопроса:Android - распознавание речи, ограничивающее время прослушивания
Распознавание голоса перестает слушать через несколько секунд
и многие другие. Это не повторяющийся вопрос, люди уже задавали этот вопрос, но решение, данное им, использует
startActivityForResult
а затем получить аудио URL в вышеупомянутом фрагменте кода, но я хочу получить его в
onResults (результаты Bundle)
Пожалуйста, спросите меня, есть ли сомнения. Я хочу использовать это во фрагменте. Заранее спасибо!!.