0

我创建了一个 Android 应用程序,并将 Bluemix 上可用的不同 watson 服务连接到它:Natural Language Classifier、Visual Recognition 和 Speech to Text。

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?

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

4

1 回答 1

0

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

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

于 2016-02-24T17:51:43.757 回答