java - Android 保存语音到文本音频

标签 java android speech-to-text google-speech-api

我正在尝试创建一个应用程序,允许用户将 Google 语音文本创建的音频文件上传到服务器。我已设法获取音频文件的 URI,但如何访问它或将其转换为可收听的格式?我尝试播放它,但到目前为止什么也没有。这就是我所拥有的。

我的语音转文字

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode){
        case REQ_CODE_SPEECH_INPUT: {
            Bundle bundle = data.getExtras();
            if(resultCode==RESULT_OK && null!= data){
                ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                vtt.setText(result.get(0));
                Uri audioUri = data.getData();
                uri.setText(String.valueOf(audioUri));
                audioPath = uri.getText().toString();

            }
            break;

        }
    }
}

当我尝试播放audioPath变量时。什么也没出来。如何将其转换为可收听的格式?

我得到的 uri 示例

content://com.google.android.googlequicksearchbox.AudioProvider/NoteToSelfOriginalAudio1.amr

感谢您的帮助

我在某个地方发现我应该使用内容解析器并对输入流执行某些操作,但我不确定做什么。

最佳答案

我设法解决了这个问题。

最简单的方法是使用 apache commons IO 中的函数

audioPath = uri.getText().toString();
                finalPath = combinedPath.replaceAll(" ","");
                Log.d("Filepath",combinedPath.replaceAll(" ",""));
                ContentResolver contentResolver = getContentResolver();
                try{
                    InputStream filestream = contentResolver.openInputStream(audioUri);
                    File targetFIle = new File(finalPath);
                    FileUtils.copyInputStreamToFile(filestream,targetFIle);
                }catch (IOException e){
                    e.toString();
                }

关于java - Android 保存语音到文本音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37224698/

相关文章:

android - 如何在人停止在 Android 中说话后自动停止录音?

java - 从 WorldWind Java 中删除默认 WMS 图层

android - 为什么我们需要 Android 中的权限树?

audio - Watson语音转文本服务对于哪种类型的音频文件都能更快地工作?

java - 骰子仿真 - 用于循环的 ImageButton 名称的串联

android - 如何使用 Unity 在 Android 设备上的每个纵横比上显示游戏的相同部分?

sphinx - Pocketsphinx-添加单词并提高准确性

java - 为什么我的 XML 解析器只返回一个字符串,而不是多个字符串?

java - Java中最长运行错误的长度

Java:while 循环中定义的 String[] 的 "cannot find symbol"错误