我已经创建了一个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?
任何建议将不胜感激! 谢谢!
答案 0 :(得分:0)
要转换不同格式/编码的音频记录,您可以: - 找一个音频编码器lib包含在你的应用程序中,它支持所需的库,但在移动设备上运行可能非常繁重(如果找到正确的库) - 开发用于发送记录的外部Web应用程序,使其编码并作为文件或流返回 - 开发一个简单的Web应用程序,像实时代理一样获取记录文件,实时转换文件并发送给Watson
第二个选项和第三个选项都希望使用像ffmpeg这样的编码工具。 第3个开发更轻但有点复杂但可以让你从你的android设备中保存2个http请求