加入两个(或更多)字节[]的wav-sound。给backgroundnoise

时间:2016-11-23 23:08:21

标签: java audio wav

我正在尝试加入wav-sound的字节数组,除了backgroundnoise之外它还可以。任何人都知道添加两个字节数组的声音的任何算法。

这是我到目前为止所尝试的

for(int i=0;i<bArr1.length;i++)
{
   bArrJoined[i]=bArr1[i] + bArr2[i];
}

也试图除以2而不是高数

for(int i=0;i<bArr1.length;i++)
{
   bArrJoined[i]=(bArr1[i] + bArr2[i]) / 2;
}

任何人都知道如何在没有噪音的情况下完成这项工作?

1 个答案:

答案 0 :(得分:0)

这里有很多东西可能会造成瑕疵。不同的音频采样率或数据位大小都可以做到。

假设这些是非问题,您应该知道您不能在没有溢出的情况下添加byte与另一个byte(256将变为0等)。因此,在添加之前转换为int。如果超过最大音量,将发生剪辑,因此除以2操作是明智的,应该停止该问题。除法操作应该与int版本一起进行。最后只回到byte

但是,如果您不使用8位音频,则byte不是您的原子单位。例如,16位音频使用2个字节,在对值执行任何数学运算之前,您需要将每两个连续bytes转换为int(相对于正确的字节顺序)。 32位音频数据占用每个单个数值的4个连续字节。只有一个字节数组本身并不能告诉你数据边界在哪里。