在回顾与“混合2个wav文件”相关的所有问题和答案时,建议的大多数答案 - 将每个wav文件中的字节转换为short,获得short的平均值并写入输出字节数组。 我还读到,在我的情况下,在多通道未压缩PCM wav文件(2通道16位和每秒44100个采样)中,每个通道的数据以隔行扫描格式存储,因此在数据块中 - 第一个字节将用于通道1,第二个用于通道2,第三个用于通道1,第四个用于ch2,依此类推。 要获得最快的转换 - 大多数建议使用Buffer.BlockCopy或Array.ConvertAll作为选项。
这不会实际扭曲数据吗?因为第一个短值实际上是字节ch1 +字节ch2。对于另一个文件 - 当完成加法时 - 用于平均 - 我们基本上强制从通道2字节溢出到通道1字节,从而扭曲两个通道中的数据。
我尝试了上面的选项,并且在我要合并的2个文件之间的重叠区域中,我的信号明显失真。
一旦替代我认为哪个将保持通道数据分离是首先将字节数据除以2,然后添加..并写入输出,现在尝试这个并将发布。