Obtenga el URI del audio guardado en OnResults (resultado del paquete) en Android Speech RecognitionListener

Seguí casi todos los enlaces para guardar el audio y convertirlo a texto, pero no encontré ninguna forma de cómo puedo obtener la URL de audio en la Escucha de reconocimiento personalizada

grabar / guardar audio desde la intención de reconocimiento de voz

Cómo usar el discurso a texto de los androides con un archivo de muestra de audio

y muchos otros también ... URL de audio que llegué aquí con la ayuda de 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;
            }

        }
    }

Quiero obtenerlo aquí porque no quiero usar el diálogo de Google. Quiero personalizarlo sin diálogo.

 @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();
        }
    }

Pero no puedo obtener la URL de los resultados de este paquete. Tengo dos consultas:

Por favor, hágamelo saber Hoe puedo lograr audio URI guardado en paquetesCuando personalicé Speech to Text Escucha durante mucho tiempo Al igual que RecognitionIntent si el audio no se graba en 2-3 segundos, dice que no encontró ningún sonido Lo mismo que quiero hacer con uno personalizado, ya que escucha durante mucho tiempo. Seguí estos enlaces para la segunda pregunta:

Android: reconocimiento de voz que limita el tiempo de escucha

El reconocimiento de voz deja de escuchar después de unos segundos.

y muchos otros también. No es la pregunta duplicada que la gente ya ha hecho esta pregunta, pero la solución que se les está dando es usar

startActivityForResult

y luego obtener la URL de audio en el fragmento de código mencionado anteriormente, pero quiero obtenerlo

onResults (resultados del paquete)

Por favor pregúnteme si hay alguna duda. Quiero usarlo en fragmentos. ¡¡Gracias por adelantado!!.

Respuestas a la pregunta(0)

Su respuesta a la pregunta