语音增强基础:从鸡尾酒问题到多通道空间滤波
上一份材料把声音讲成了数字波形和 STFT。现在回到会议录音本身:麦克风录到的不是“一个说话人一条轨道”,而是同一时刻所有声源在麦克风位置的叠加结果。
人耳在现场能把注意力集中到某个说话人身上。麦克风没有这种能力。它保存的是混合声音:
这个式子只是一个简化版本。它的意思是:混合录音 里可能有第一个说话人 、第二个说话人 、非语音噪声 ,也有房间反射造成的混响 。
鸡尾酒问题
鸡尾酒问题指的是多人同时说话时,系统要从混合录音中恢复目标声音。这个名字来自聚会或餐厅的场景:周围很多人都在说话,但你仍然想听清某一个人。
在语音处理里,这个问题常常出现在:
| 场景 | 录音里混进了什么 |
|---|---|
| 会议录音 | 多人重叠说话、投影仪或空调噪声、房间反射 |
| 远程课堂 | 老师声音、学生提问、键盘声、网络设备噪声 |
| 车内通话 | 驾驶员、副驾驶、路噪、发动机声 |
| 智能音箱 | 用户声音、电视声、音乐、房间混响 |
难点在于,模型只有混合输入。训练时可以拿到干净参考,部署时通常拿不到。模型必须从混合波形或混合 STFT 里推断哪些成分属于目标说话人,哪些成分应该被压低或分离出去。
音频增强
音频增强是一个大任务,目标是让录音更清楚、更适合人听或机器识别。语音分离、降噪和去混响都可以放在音频增强下面理解。
| 子问题 | 想解决什么 | 常见输入问题 |
|---|---|---|
| 语音分离 | 把多个说话人拆开 | 两个人或多人重叠说话 |
| 降噪 | 去掉非语音噪声 | 空调声、键盘声、街道声、设备底噪 |
| 去混响 | 减弱房间反射的拖尾 | 会议室、教室、走廊的反射声 |
| 联合增强 | 同时处理分离、噪声和混响 | 真实录音常常三者都有 |
从物理上看,混响会把语音沿时间轴拖开,爆破音(如 /p/、/t/)和摩擦音(如 /s/、/sh/)的瞬态边界会变模糊。在时频域中,晚期混响表现为过去若干帧的能量持续拖到当前帧,既影响听感,也会干扰 ASR 对音素边界的判断。常用的混响强度指标是混响时间 RT60,也就是声压级衰减 60 dB 所需的时间。

早期反射通常指直达声后约 50 至 100 毫秒内到达的反射,它可以帮助人耳感知空间,也不一定会降低清晰度。去混响主要抑制晚期拖尾,同时尽量保留直达声和有用的早期反射。真实录音里还混有噪声和重叠语音,因此去混响常与降噪、分离一起处理。
分离不是增强之外的独立类别。更准确的说法是:增强可以包含分离,分离也经常和降噪、去混响一起出现。SpatialNet 这条路线的后期工作,就把多通道语音分离、降噪和去混响放在同一个系统里处理。
深度学习的语音增强结构概括
综述里常用下面这条流水线概括深度学习语音分离系统:
1 | Input -> Encoder -> Separator -> Audio Estimation -> Decoder -> Output |

用更直白的话说:
1 | 混合音频 |
这条线里的每个模块都要先分清楚。
Input:模型拿到什么
Input 是模型的输入,可以是原始波形,也可以是 STFT 谱图。它还可以是单通道,也可以是多通道。
| 输入形式 | 含义 | 对模型意味着什么 |
|---|---|---|
| raw waveform | 原始采样点序列 | 模型直接在时域学习表示 |
| spectrogram / STFT | 频域或时频域特征 | 模型显式看到频率和相位相关信息 |
多通道输入不是简单把声音复制多份。它给模型带来空间线索,这是后面 SpatialNet 关注多通道的原因。
Encoder 和 Decoder:怎样表示和重建声音
Encoder 把输入音频变成模型内部表示。Decoder 把模型估计的结果变回波形。主流前端大致有三条路线。

| 路线 | 做法 | 优点 | 局限 |
|---|---|---|---|
| STFT / iSTFT | 先做短时傅里叶变换,最后反变换 | 物理意义清楚,和传统信号处理兼容 | 需要处理复数和相位 |
| 1D Conv | 用可学习一维卷积直接编码波形 | 可以端到端优化 | 表示不如 STFT 直观,可解释性稍弱 |
| 预训练模型 / 神经音频编解码器 | 使用 Wav2Vec 2.0、HuBERT、EnCodec 等表示 | 可以利用大规模无标签数据 | 系统较重,往往表征的信息为语音中的语义信息而不是声音的音频信息 |
这三类前端分别保留了明确的时频意义、端到端时域建模能力,以及预训练表示带来的先验信息。实际选择仍取决于任务、计算量和是否需要处理相位。
STFT/iSTFT 仍然重要,尤其在多通道任务里。因为相位差、复数空间滤波器、频率维度上的处理,都可以自然地写在 STFT 坐标系里。
Separator:分离器负责建模
Separator 是网络中最主要的建模部分。它要判断每个时间、频率、通道里的信息更像哪个目标,也要处理长时间上下文和局部语音结构。
常见结构可以分成四类:
| 结构 | 适合什么 | 主要问题 |
|---|---|---|
| RNN-based | 沿时间建模,处理前后依赖 | 擅长长程序列建模,但难以并行且计算负担大 |
| CNN-based | 局部模式建模,计算规整 | 计算高效,但难以捕捉全局上下文 |
| Attention-based | 让不同位置直接交换信息 | 适合全局交互,但标准自注意力的计算和内存开销随序列长度呈平方增长 |
| Hybrid / Mixture-based | 组合 RNN、CNN、Attention 等结构 | 性能强,但通常更重 |
TF-GridNet 这类混合架构性能很好,因为它同时处理时间、频率、局部和全局关系。代价是参数量、显存和训练成本通常更高。
Output:网络最后输出什么
Audio Estimation 是最容易混淆的一步。网络最后输出的不一定都是 mask。更清楚的分法是三类:
| 类型 | 代表 | 网络输出 | 怎样得到目标语音 |
|---|---|---|---|
| mask-based | MRM | 一个保留比例 | 把 mask 乘到混合谱上 |
| mapping-based | CC/直接还原音频 | 干净语音的复数 STFT/直接还原音频 | 直接把输出当作目标谱 |
| filter-based | SF / SSF | 多通道复数滤波权重 | 对多麦克风 STFT 加权求和 |
固定一个频率 来看, 表示时间帧数, 表示麦克风通道数。完整 STFT 里还会有频率维 。

MRM:幅度比掩码
MRM 是 Magnitude Ratio Mask,幅度比掩码。mask 可以理解成“保留比例”。接近 表示这个时间帧里的目标成分强,应该保留;接近 表示主要是干扰,应该压低。
固定一个频率时,MRM 的输出维度是:
它使用 Sigmoid 激活:
Sigmoid 会把任意实数压到 。这和 mask 的含义一致,因为 mask 本来就是比例。使用时可以写成:
是混合语音的 STFT, 是估计出来的目标语音谱。MRM 主要处理幅度。相位常常复用混合语音相位,或者交给后续模块处理。
CC:复数 STFT 直接估计
CC 指 Complex Coefficient。这里可以理解成直接预测目标语音的复数 STFT 系数。它不是 mask。它不说“混合谱保留多少”,而是直接给出目标语音在参考通道上的实部和虚部。
固定一个频率时,CC 的输出维度是:
对应实部和虚部:
CC 使用 Identity 激活:
Identity 的意思是不额外限制数值范围。复数 STFT 的实部和虚部可能为正,也可能为负,大小也不固定。把它们压到 不合理。
SF / SSF:空间滤波器
SF 是 Spatial Filter。SSF 可以理解成和空间滤波相关的结构化滤波输出。它们预测的不是普通幅度 mask,而是每个麦克风通道的复数权重。
假设有 个麦克风。某个时频点上,每个麦克风都有一个复数 STFT:
空间滤波器为每个通道预测一个复数权重:
然后加权求和:
一个复数权重有实部和虚部,所以固定一个频率时,SF/SSF 的输出维度是:
SF/SSF 常用 Tanh 激活:
Tanh 允许正负值,适合表示复数权重的实部和虚部。Sigmoid 像比例,Tanh 更像带符号和方向的权重。
说话人标签排列模糊问题
多说话人分离还有一个训练问题:输出顺序没有固定答案。
假设混合语音里有 A、B 两个人。模型输出两条语音:
如果 是 A、 是 B,这是正确的;如果 是 B、 是 A,也是正确的。但训练标签通常有固定顺序。如果直接按固定顺序算损失,模型会被错误惩罚。
PIT,Permutation Invariant Training,排列不变训练,就是为了解决这个问题。它会尝试不同的输出和标签对应关系,选择损失最小的排列。

Deep Clustering 是另一条监督学习思路。它先把每个时频点映射到一个向量空间:属于同一个说话人的点应该靠近,属于不同说话人的点应该分开。之后再根据聚类结果恢复语音。

多麦克风为什么有空间信息
单麦克风只能记录一个位置上的混合结果。多麦克风阵列在不同位置同时记录同一个房间,因此多了空间线索。
可以从双耳听声辨方向理解。一个人站在左边说话,左耳通常会稍早听到,强度也可能更大。麦克风阵列把这个直觉扩展到多个传感器。

样例 136 是单通道音频,图里用延迟副本演示空间概念。真实多麦克风数据会直接包含多个通道。
常见空间线索有四类:
| 概念 | 英文缩写 | 解释 | 模型可能怎样用 |
|---|---|---|---|
| 到达时间差 | TDOA / ITD | 声音到不同麦克风的先后不同 | 判断声源方向 |
| 强度差 | ILD | 近的麦克风可能收到更强声音 | 区分远近和遮挡 |
| 相位差 | IPD | 同一频率在不同麦克风上的相位不同 | 在 STFT 上建模空间结构 |
| 相对传递函数 | RTF | 声源到各麦克风的复数比例 | 估计空间滤波器 |
空间滤波可以先理解成“给每个麦克风分配权重,再把它们加起来”。如果某个通道更有利于目标说话人,权重大一些;如果某个通道里干扰更强,权重小一些。
在复数 STFT 里,权重也是复数。复数权重不只改变强弱,还能改变相位。这样它可以把多个通道对齐后相加,增强目标方向,同时压低干扰方向。
该领域的期刊与课题组
领域期刊会议:
- IEEE International Conference on Acoustics, Speech and Signal Processing(ICASSP)
- Interspeech
- IEEE/ACM Transactions on Audio, Speech, and Language Processing(TASLP)
- IEEE Signal Processing Letters (SPL)
- IEEE Workshop on Applications of Signal Processing to Audio and Acoustics (WASPAA)
- International Workshop on Acoustic Echo and Noise Control(IWAENC)
- NeurIPS/ICML/ICLR、CHiME Workshop
- 各种数据集对应挑战赛
目前查到的相关课题组或人物:
- 西北工业大学 音频语音与语言处理研究组
- 清华大学 语音与音频技术实验室 (SATLab)
- 上海交通大学 AudioCC Lab
- 中国科学院声学研究所
- 西湖大学 音频信号与信息处理实验室
- Kai Li (李凯) https://cslikai.cn/
参考示例
样例 136 有一条混合输入、两条干净参考和两条模型估计结果。混合输入是模型真正拿到的声音。干净参考是训练和评测时用来判断模型好坏的目标。

先听混合输入:
再听第一个说话人的参考和模型估计:
参考:
模型估计:
第二个说话人的参考和模型估计:
参考:
模型估计:
频谱图能补充波形观察。波形看起来接近,不代表听感一定完全一致;频谱图可以看出哪些时间和频率被恢复出来,哪些地方还残留干扰。

SI-SDR 是语音分离里常用的指标,可以先理解成“估计语音和目标语音有多像”。数值越大越好。样例 136 的输入 SI-SDR 是 ,模型输出 SI-SDR 是 ,提升约 。这说明模型把混合输入里两个说话人的可分离程度明显提高了。
扩展阅读
[1] Kai Li, Guo Chen, Wendi Sang, Yi Luo, Zhuo Chen, Shuai Wang, Shulin He, Zhong-Qiu Wang, Andong Li, Zhiyong Wu, and Xiaolin Hu, “Advances in speech separation: Techniques, challenges, and future trends,” arXiv preprint arXiv:2508.10830, Aug. 2025. DOI: 10.48550/arXiv.2508.10830
[2] Sharon Gannot, Emmanuel Vincent, Shmulik Markovich-Golan, and Alexey Ozerov, “A Consolidated Perspective on Multimicrophone Speech Enhancement and Source Separation,” IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 25, no. 4, pp. 692-730, Apr. 2017. DOI: 10.1109/TASLP.2016.2647702




