上一份材料把声音讲成了数字波形和 STFT。现在回到会议录音本身:麦克风录到的不是“一个说话人一条轨道”,而是同一时刻所有声源在麦克风位置的叠加结果。

人耳在现场能把注意力集中到某个说话人身上。麦克风没有这种能力。它保存的是混合声音:

这个式子只是一个简化版本。它的意思是:混合录音 里可能有第一个说话人 、第二个说话人 、非语音噪声 ,也有房间反射造成的混响

鸡尾酒问题

鸡尾酒问题指的是多人同时说话时,系统要从混合录音中恢复目标声音。这个名字来自聚会或餐厅的场景:周围很多人都在说话,但你仍然想听清某一个人。

在语音处理里,这个问题常常出现在:

场景 录音里混进了什么
会议录音 多人重叠说话、投影仪或空调噪声、房间反射
远程课堂 老师声音、学生提问、键盘声、网络设备噪声
车内通话 驾驶员、副驾驶、路噪、发动机声
智能音箱 用户声音、电视声、音乐、房间混响

难点在于,模型只有混合输入。训练时可以拿到干净参考,部署时通常拿不到。模型必须从混合波形或混合 STFT 里推断哪些成分属于目标说话人,哪些成分应该被压低或分离出去。

音频增强

音频增强是一个大任务,目标是让录音更清楚、更适合人听或机器识别。语音分离、降噪和去混响都可以放在音频增强下面理解。

子问题 想解决什么 常见输入问题
语音分离 把多个说话人拆开 两个人或多人重叠说话
降噪 去掉非语音噪声 空调声、键盘声、街道声、设备底噪
去混响 减弱房间反射的拖尾 会议室、教室、走廊的反射声
联合增强 同时处理分离、噪声和混响 真实录音常常三者都有

从物理上看,混响会把语音沿时间轴拖开,爆破音(如 /p/、/t/)和摩擦音(如 /s/、/sh/)的瞬态边界会变模糊。在时频域中,晚期混响表现为过去若干帧的能量持续拖到当前帧,既影响听感,也会干扰 ASR 对音素边界的判断。常用的混响强度指标是混响时间 RT60,也就是声压级衰减 60 dB 所需的时间。

混响示意图

早期反射通常指直达声后约 50 至 100 毫秒内到达的反射,它可以帮助人耳感知空间,也不一定会降低清晰度。去混响主要抑制晚期拖尾,同时尽量保留直达声和有用的早期反射。真实录音里还混有噪声和重叠语音,因此去混响常与降噪、分离一起处理。

分离不是增强之外的独立类别。更准确的说法是:增强可以包含分离,分离也经常和降噪、去混响一起出现。SpatialNet 这条路线的后期工作,就把多通道语音分离、降噪和去混响放在同一个系统里处理。

深度学习的语音增强结构概括

综述里常用下面这条流水线概括深度学习语音分离系统:

1
Input -> Encoder -> Separator -> Audio Estimation -> Decoder -> Output

深度学习增强系统的概括结构

用更直白的话说:

1
2
3
4
5
6
混合音频
-> 变成模型容易处理的表示
-> 建模哪些成分属于哪个目标
-> 输出 mask、干净谱或滤波器
-> 还原成波形
-> 得到分离后的目标说话人

这条线里的每个模块都要先分清楚。

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、CC、SF/SSF 三种输出目标

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,排列不变训练,就是为了解决这个问题。它会尝试不同的输出和标签对应关系,选择损失最小的排列。

说话人分离 PIT 示意图

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