🎬 第四章 音频基础
📄 一句话概括

混音最基础的动作是相加,而相加会溢出——超过 1.0 的部分不是变响,是被削平变成破音。

📝 本节和前面几节的关系

4.1.6 讲了单路音频怎么存,这一节讲多路声音怎么合到一起。

一、混音是什么

混音就是把多路音频合成一路——直播里的【人声加伴奏加音效】就是它。 它听着是【加法】,但真正的难点在于:加完之后不能超过上限。 所以混音既是技术活,也是取舍活——你要决定每一路各占多少位置。

二、相加为什么会爆

数字音频的采样值有上限,通常是 1.0。 人声峰值 0.7 加伴奏峰值 0.6 等于 1.30——超出的 0.30 不会保留。 超出部分会被直接削平成 1.0,波形顶部被切掉,听上去就是刺耳的破音。 关键在于:这不是【变响】,而是【失真】,而且不可逆。

三、两种处理办法,代价不同

① 限幅:超过 1.0 的一律拉到 1.0。 优点是不降低整体响度,缺点是波形被切平,会失真。 ② 缩放:整体乘以 1 ÷ 1.3 ≈ 0.77。 人声变 0.54、伴奏变 0.46,合计正好 1.00——不会失真,但听起来都变小了。 专业混音做的事,就是在这两者之间找平衡:该让哪一路保持清晰,该让哪一路退一点。

四、混音不只是加法

除了防止溢出,混音还要处理三件事: 声像:把不同的声音放到左右不同位置,让它们不挤在一起。 响度:保证混完之后整体响度稳定,不会一会儿大一会儿小。 频率冲突:两路人声都在同一频段,听上去就会互相盖住。 所以好的混音不是【把声音加起来】,而是给每一路找一个不打架的位置。

五、动手 Demo:两路声音相加,为什么会【爆】

混音最基础的动作是相加,而相加会溢出。

a, b = 0.7, 0.6
s = a + b
print("人声 %.1f + 伴奏 %.1f = %.2f" % (a, b, s))
print("限幅:超过 1.0 一律拉到 1.0 -> 1.00")
print("缩放:乘 1/%.1f = %.2f -> 人声 %.2f,伴奏 %.2f,合计 %.2f"
      % (s, 1.0 / s, a / s, b / s, 1.0))

实跑输出:

--------------------------------------------------------------------
两路声音相加,为什么会【爆】
--------------------------------------------------------------------

混音最基础的动作是相加,而相加会溢出。

  人声峰值 0.7,伴奏峰值 0.6
  直接相加 = 1.30 —— 超出 1.0 的部分会被【削平】,听上去是刺耳的破音

  两种处理办法:
    ① **限幅**:超过 1.0 的一律拉到 1.0 → 1.00(波形顶部被切平)
    ② **缩放**:整体乘以 1/1.3 = 0.77 → 人声 0.54,伴奏 0.46,合计 1.00

  两种都能避免爆音,但代价不同:
    限幅会失真;缩放会让人声听起来变小。
  **专业混音做的事,就是在这两者之间找平衡。**

两种办法都能避免爆音,但代价不同:限幅会失真;缩放会让人声听起来变小。 专业混音做的事,就是在这两者之间找平衡。

30 秒实验

  1. 找两段音频叠加播放,把音量推大,听什么时候开始破音。
  2. 再用【缩放】的办法把两路都调低再叠,对比听感差别。

常见误区

  1. 相加之后不检查峰值。数字音频超过 1.0 就是硬削顶,不可逆。
  2. 只调总音量解决问题。某一路本身过载,就得单独降那一路。
自测三问(点开对答案) 1. 混音为什么容易爆? —— 多路采样值相加后容易超过 1.0 的上限,超出部分被削平。 2. 限幅和缩放有什么区别? —— 限幅削平超出的部分(会失真),缩放整体乘系数(响度都降低)。 3. 混音除了相加还要考虑什么? —— 声像位置、整体响度、频率上的冲突。

相关笔记