转换原始PCM声音Java

时间:2017-06-27 04:32:50

标签: java audio

我正在研究Discord bot的项目,我想让机器人在Discord频道内收听并处理语音命令。

我正在使用名为Sphinx(https://cmusphinx.github.io/)的开源语音到文本Java库。我通过此https://github.com/DV8FromTheWorld/JDA库从Discord服务器接收音频数据。

此类(https://github.com/DV8FromTheWorld/JDA/blob/master/src/main/java/net/dv8tion/jda/core/audio/AudioReceiveHandler.java#L65)用于接收音频。 每handleCombinedAudio(CombinedAudio audio)次调用方法20 ms,可以使用byte[]检索audio.getBytes[]音频数据。

语音识别软件需要InputStreambyte数组才能正确识别数据。我有一种方法将byte数组连接起来形成3 sec个声音块,每个声音由语音识别软件处理。我遇到的问题是声音格式不匹配。

狮身人面像需要RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 16000 Hz

Discord返回音频:48KHz 16bit stereo signed BigEndian PCM

如何将收到的byte[]数组从Discord转换为Sphinx的正确格式?

任何想法都将不胜感激。请具体回答。

0 个答案:

没有答案