混合音频通道背后的基本数学

Posted

技术标签:

【中文标题】混合音频通道背后的基本数学【英文标题】:Basic math behind mixing audio channels 【发布时间】:2013-07-26 05:17:31 【问题描述】:

我有一个应用程序,我在其中轻弹触摸屏并释放一个在屏幕上显示动画的点,读取 is 下的像素颜色,然后根据一些参数将其转换为音频。这在大多数情况下都很好用。

目前我正在为每个点创建一个音频通道(iPhone AudioComponent)。这很好用,直到我得到大约 15 个点然后开始变得“​​断断续续”。将音频输入/输出等...

我认为,如果我将所有这些通道的波形混合在一起,然后将该波形发送到一个或两个通道,我可以在大量点的情况下获得更好的性能。这是我寻求建议的地方。

我假设在任何时间 t,我都可以取 ((f1(x) + f2(x)) / 2.0)。这是混合音频信号的典型方法吗?这样我永远不会超过(标准化)1.0 .. -1.0,但是我担心我会得到相反的结果;安静的音频。如果有这么多点,也许就没有那么重要了。

如果有人可以为此删除任何技术的名称,我会去阅读它。或者,任何链接都会很棒。

【问题讨论】:

【参考方案1】:

是的,只需将波形相加即可混合。正如您所说,如果您然后除以波形数,那么您将确保您不会对生成的波形进行剪辑。您显然会降低各个波形的音量,但您建议的是最直接的方法。

有更复杂的方法可以将多个源混合在一起以尝试获得一致的音量输出,这些方法可以计算 RMS/峰值类型参数来改变输出增益。如果您想了解更多信息,请搜索 automixers。

【讨论】:

【参考方案2】:

您可以在混音器的输出上使用 AGC(自动增益控制或自动限制器)算法或处理,以防止在不太安静的混音电平处出现削波。

【讨论】:

以上是关于混合音频通道背后的基本数学的主要内容,如果未能解决你的问题,请参考以下文章

使用 OpenGL 混合音频

在 iOS 上使用音频单元混合多个信号

如何在 java/xuggler 中混音多个音频通道?

FFmpeg 检查音频通道是不是静音

iPhone 上的音频混合:需要建议

如何连接多个音频输出通道以与 PyAudio 一起使用?