我有 8k16 位 pcm 音频,我想将其上采样到 16k16 位。我必须手动执行此操作。
有人可以告诉我线性插值的算法吗?我应该在每两个字节之间插入吗?
另外,当我上采样时,我必须对 wav 标头进行更改 - 我应该更改什么?
正如其他人提到的,线性插值并不能提供最好的音质,但它简单且便宜。
对于您创建的每个新样本,只需将其与下一个样本进行平均即可,例如
short[] source = ...;
short[] result = new short[source.length * 2];
for(int i = 0; i < source.length; ++i) {
result[i * 2] = source[i];
result[i * 2 + 1] = (source[i] + source[i + 1]) / 2;
}
您绝对应该搜索一个可以帮助您处理 WAV 文件的库。尽管它是一种简单的格式,但如果有可用的代码可以满足您的需要,您就不必自己执行此操作。顺便问一下,你为什么要这样做?也许您可以使用 sox 或类似的工具来完成此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)