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

时间:2016-02-18 11:15:40

标签: ibm-cloud speech-to-text android-mediarecorder android-audiorecord audio-converter

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

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

不同的服务接受输入这些格式:FLAC,WAV,PCM。 将音频文件从第一组输出转换为第二组的最佳方法是什么?有一个简单的方法吗?例如,从THREE_GPP或MPEG_4到WAV或PCM。

我已经搜索了搜索信息和想法,但我发现只有少数和长期的方法,而不是很好理解。 我正在寻找一种快速的方法,因为我会尽可能缩短服务的转换延迟和详细说明。

是否有可用的库?或者一个简单的代码片段?

2)最后一件事:

SpeechResults transcript = service.recognize(audio, HttpMediaType.AUDIO_WAV);
System.out.println(transcript);

"转录"是一个json的回应。有没有一种方法可以直接提取文本,还是应该解析json?

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

1 个答案:

答案 0 :(得分:0)

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

第二个选项和第三个选项都希望使用像ffmpeg这样的编码工具。 第3个开发更轻但有点复杂但可以让你从你的android设备中保存2个http请求