📄 一句话概括
混音最基础的动作是相加,而相加会溢出——超过 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.0 就是硬削顶,不可逆。
- 只调总音量解决问题。某一路本身过载,就得单独降那一路。
自测三问(点开对答案)
1. 混音为什么容易爆? —— 多路采样值相加后容易超过 1.0 的上限,超出部分被削平。 2. 限幅和缩放有什么区别? —— 限幅削平超出的部分(会失真),缩放整体乘系数(响度都降低)。 3. 混音除了相加还要考虑什么? —— 声像位置、整体响度、频率上的冲突。- ☐ 下一节(4.1.8 音频重采样)
相关笔记
- 音频处理 — 单路处理的那些手段
- 音频重采样 — 混音前的对齐
- 音频使用场景及应用 — 直播场景对混音的要求
- 🎬 FFmpeg入门详解 · 索引