获取语音识别Listener android中OnResults(捆绑结果)中保存的音频的URI

获取语音识别Listener android中OnResults(捆绑结果)中保存的音频的URI,android,audio,speech-recognition,recognizer-intent,Android,Audio,Speech Recognition,Recognizer Intent,我遵循几乎所有的链接进行音频保存并将其转换为文本,但我没有找到任何方法可以在自定义识别侦听器中获取音频Url 还有很多其他的。。。。 音频url是我在ReconfizerIntent的帮助下得到的 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, da

我遵循几乎所有的链接进行音频保存并将其转换为文本,但我没有找到任何方法可以在自定义识别侦听器中获取音频Url

  • 还有很多其他的。。。。 音频url是我在ReconfizerIntent的帮助下得到的

    @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;
                }
    
            }
        }
    
    但我无法从这个捆绑结果中获取URL。 我有两个问题:

    • 请让我知道我能在捆绑包中实现音频保存URI吗
    • 当我将语音定制为文本时,它会像识别内容一样长时间收听。如果音频在2-3秒内没有录制,它会说找不到任何声音。我想用定制语音来做的事情与它长时间收听的一样。 我在第二次qestion中遵循了以下链接:
    还有很多其他的。 这不是人们已经问过的重复问题,但给出的解决方案是使用

    startActivityForResult

    然后在上面提到的代码片段中获取音频url,但我想把它放进去

    onResults(捆绑结果)

    如果有任何疑问,请问我。我想在片段中使用它。
    提前谢谢

    我也面临同样的问题。我需要onResult方法中的.amr文件。我从哪里得到答案?你从哪里解决的?到目前为止,我没有用其他方式得到答案,我也在寻找同样的答案。有人帮忙吗?有人找到解决办法了吗?我也在寻找
     @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();
            }
        }