我需要将音频样本从11025和22050转换为44100;我正在寻找最快最好的声音转换程序。我要求在纯Java中给出答案,而不需要外部例程或库。源是一个表示左右声道的短值数组,像LRLRLRLR一样交错
我听说高斯转换是最好的,但它是一个cpu杀手。
更新的
要添加更多细节,我希望在最佳和最快之间进行混合。答案将提供适合近实时通信的出色音频。
更新2
我正在为这一个寻找一些简短的代码示例,应该是你的音频专家
答案 0 :(得分:1)
嗯,很难对它进行足够缓慢的重新取样以使其不是实时的:-) 最好的&仍然快速的解决方案是进行前向FFT,然后以您需要的任何采样率进行反向FFT。
您可以自行实施,也可以复制&粘贴任何FFT实现。
这可能像100倍实时或更快,不确定你需要快1000倍(在这种情况下你可以进行线性或双三次插值): - )
答案 1 :(得分:1)
你可以(最终)在用0s填充每个其他样本后使用一个冷杉 - 你的上采样为2或4.这对于实时来说会很快。对于大多数应用来说,音质都很好。