Получить 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)

Пожалуйста, спросите меня, есть ли сомнения. Я хочу использовать это во фрагменте. Заранее спасибо!!.

Ответы на вопрос(0)

Ваш ответ на вопрос