【问题标题】:how to mix two audio channels?如何混合两个音频通道?
【发布时间】:2011-06-01 19:29:57
【问题描述】:

我有两个单声道音频通道(pcm 格式)的音频通话,传入和传出。如何混合它们?如何在空间中定位它们? (例如,传入通道声音在左侧轻微,在右侧传出)

【问题讨论】:

  • 良好的空间立体声需要在其中一个通道上延迟。最多是你两耳之间的空间除以声速。

标签: c++ windows audio mixer


【解决方案1】:

混合只是两个信号的加权相加。因此,如果您希望它们在一个单声道信号中相等,请将两个信号降低 2 倍并相加。如果要将它们定位在立体声空间中,请在左右声道上使用不同的权重。例如,左声道上信号 1 的 0.6 和信号 2 的 0.4 以及右声道上的反之亦然。为了获得更好的结果,需要稍微调整时间,但这取决于您的需求。

【讨论】:

  • 是的,我这样做了 (0.5 + 0.5) 并收到了较低的音量,为什么?所以我只需要添加它们(1 + 1)并检查溢出 - 如果总和不> 32768。在这种情况下,我收到了不错的音量,但我不明白为什么 32768 而不仅仅是 65536,以及 32768 是否是正确的值。
  • @gro:为什么要分工?两把小提琴演奏同样的东西实际上应该比一把小提琴响亮,对吧?
  • 不,第二小提琴手把你从讲台上撞了下来。
  • 添加声音样本在混音中不是一个好的做法。应该对两个通道进行傅里叶变换,对两个光谱求和,然后将结果转换回时域。
  • @groovingandi:这可以避免溢出并避免振铃 - 出现原始光谱中不存在的加法和减法频率
【解决方案2】:

立体声 PCM 只是左右交错,首先是左声道一个样本的所有字节,然后是右声道一个样本的所有字节。

【讨论】:

    猜你喜欢
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2012-03-02
    • 1970-01-01
    • 2016-10-19
    • 2015-04-25
    • 2013-08-29
    相关资源
    最近更新 更多