我正在开发一个安卓应用程序,它以48Khz (PCM 16位和单声道)的速率记录帧并将其发送到网络。此外,还有一个8Khz的音频流输入。因此,我接收到的是8Khz采样的帧并播放它们(我的AudioTrack对象设置为8Khz),但是当播放它们时,一切都正常,但延迟非常大。需要大约3秒钟才能听到声音。
我认为,如果我将接收到的帧从8Khz上采样到48Khz并播放它们,就不会有这么大的播放延迟。事实上,当我以相同速率记录和播放帧时,延迟非常低。坏的是,我被迫以这种方式进行:发送到48Khz并接收到8Khz。
如前所述,我正在尝试将一个声音帧(16位PCM)从8Khz上采样到48Khz。有人知道在Java中可以完成这个任务的例程/库/API吗?
我知道有关上采样离散信号的基础知识,但我认为设计和实现自己的FIR滤波器并将其与音频流卷积...太多了。而且,这超出了我的知识范围。
那么...有人能帮助我吗?有人知道我可以使用的Java库/例程吗?有什么建议或替代方案吗?
我认为,如果我将接收到的帧从8Khz上采样到48Khz并播放它们,就不会有这么大的播放延迟。事实上,当我以相同速率记录和播放帧时,延迟非常低。坏的是,我被迫以这种方式进行:发送到48Khz并接收到8Khz。
如前所述,我正在尝试将一个声音帧(16位PCM)从8Khz上采样到48Khz。有人知道在Java中可以完成这个任务的例程/库/API吗?
我知道有关上采样离散信号的基础知识,但我认为设计和实现自己的FIR滤波器并将其与音频流卷积...太多了。而且,这超出了我的知识范围。
那么...有人能帮助我吗?有人知道我可以使用的Java库/例程吗?有什么建议或替代方案吗?