如何将两声道音频转换为一声道音频

Posted

技术标签:

【中文标题】如何将两声道音频转换为一声道音频【英文标题】:How to convert two channel audio into one channel audio 【发布时间】:2016-05-19 03:10:57 【问题描述】:

我正在用 python 进行一些音频处理。现在我将音频作为 2x(Large Number) numpy 数组。我想合并频道,因为我只想尝试一些简单的东西。我只是不确定我应该如何在数学上做到这一点。起初我认为这有点像将 RGB 图像转换为灰度图像,您可以在其中平均每个颜色通道以创建一个灰色像素。然后我想也许我应该将它们相加,因为波的叠加原理(然后平均只是加和除以二。)有人知道最好的方法吗?

【问题讨论】:

我要做的是从左右通道中获取样本,将它们相加,将结果除以二,然后将其保存为单声道样本值,确保以某种方式进行没有溢出的可能性,并且也正确舍入。根据我所见,任何音频程序通常都是这样做的。 确定很好。我以前从未使用过音频。如果您将其发布为答案,我会接受。 【参考方案1】:

要将任何立体声音频转换为单声道,我一直看到的是以下内容:

对于每一对左右样本:

    以不会溢出的方式将样本的值相加 将结果值除以二 将此结果值用作单声道中的样本 - 如果要将其从浮点值转换为整数值,请确保正确舍入

【讨论】:

【参考方案2】:

我使用 Matlab.python 来处理这个问题也可以。 (左声道+右声道)/2.0

【讨论】:

以上是关于如何将两声道音频转换为一声道音频的主要内容,如果未能解决你的问题,请参考以下文章

我是不是需要将立体声音频转换为单声道以进行 FFT?

Android音视频系列(七):PCM音频单声道与双声道的相互转换

在Javascript中将立体声音频转换为单声道

ue4 将音频从 48 立体声转换为 16 单声道

在Javascript中将立体声音频转换为单声道

音频处理中交织与非交织数据转换的几种方法