如何将立体声wav转换为单声道

10

如果我已经有了两个数组(左声道和右声道)中的音频数据,如何将它们转换为单声道的数组?

是否有一个函数f,使得Mono[x] = f(L[x], R[x]) ?


如果你不必经常这样做,我会使用Audacity。 - Brad Gilbert
每次我将音频导入我的应用程序。 - Nifle
2个回答

10

混音是两个声道的平均值。

f_mono = function(l, r) {  
   return (l + r) / 2;
}

需要记住的一点是:假设您有一个立体声文件,其中只有左声道和中心声音,这些声音最初被认为具有相等的音量。当您将两个通道线性相加时,中心声音将被感知为更响亮。(使用两个点扬声器和一个麦克风运行声波能量计算,然后将扬声器移动在一起。)我没有任何聪明的想法来避免这种情况。 - ephemient
谢天谢地这不是问题。音频只是用来解决时间问题的视觉辅助工具。播放音频时使用原始音频文件。我只是想将其转换为单声道以便于计算波形。请参见https://dev59.com/GXNA5IYBdhLWcg3wQ7Yw - Nifle

4
只需将两个值求平均即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接