Ibm cloud (Bluemix)音频文件格式的转换

Ibm cloud (Bluemix)音频文件格式的转换,ibm-cloud,speech-to-text,android-mediarecorder,android-audiorecord,audio-converter,Ibm Cloud,Speech To Text,Android Mediarecorder,Android Audiorecord,Audio Converter,我创建了一个Android应用程序,并将Bluemix上提供的不同watson服务连接到该应用程序:自然语言分类器、视觉识别和语音到文本 1) 第一个和第二个都很好;我对第三个有点问题,关于音频的格式。应用程序应注册30秒音频,将其保存在内存中,并发送到服务以获取相应的文本。 我使用了MediaRecorder类的一个实例来注册该文件。它可以工作,但可用的输出格式有AAC_ADT、AMR_WB、AMR_NB、MPEG_4、THREE_GPP、RAW_MR和WEBM 不同的是,该服务接受以下格式的

我创建了一个Android应用程序,并将Bluemix上提供的不同watson服务连接到该应用程序:自然语言分类器、视觉识别和语音到文本

1) 第一个和第二个都很好;我对第三个有点问题,关于音频的格式。应用程序应注册30秒音频,将其保存在内存中,并发送到服务以获取相应的文本。 我使用了MediaRecorder类的一个实例来注册该文件。它可以工作,但可用的输出格式有AAC_ADT、AMR_WB、AMR_NB、MPEG_4、THREE_GPP、RAW_MR和WEBM

不同的是,该服务接受以下格式的输入:FLAC、WAV、PCM。 将音频文件从第一组输出转换为第二组输出的最佳方式是什么?有没有一个简单的方法可以做到这一点?例如,从3U GPP或MPEG 4到WAV或PCM

我在谷歌上搜索过信息和想法,但我只找到了很少的长期方法,没有很好的理解。 我正在寻找一种快速的方法,因为我会尽可能缩短服务转换和细化的延迟

有没有可用的图书馆可以这样做?还是一个简单的代码片段

2) 最后一件事:

SpeechResults transcript = service.recognize(audio, HttpMediaType.AUDIO_WAV);
System.out.println(transcript);
“转录本”是一个json响应。有没有直接提取文本的方法,或者我应该解析json

任何建议都将不胜感激!
谢谢

要转换不同格式/编码的音频记录,您可以: -找到一个音频编码器库,将其包含到您的应用程序中,该应用程序支持所需的库,但在移动设备上运行可能会非常繁重(如果您找到正确的库) -开发一个用于发送记录的外部web应用程序,将其编码并作为文件或流返回 -开发一个简单的web应用程序,它像一个实时代理一样工作,获取记录文件,对文件进行实时转换并发送给Watson

第二个选项和第三个选项都希望使用ffmpeg之类的编码工具。
第三个开发起来比较轻,但有点复杂,但可以让您保存来自android设备的2个http请求

谢谢您的回答!我在谷歌上搜索了很多,我用另一种不同的方式解决了这个问题,这要感谢GitHub在这个链接上的解决方案,再见!