【论文翻译】Real Time Speech Enhancement in the Waveform Domain
论文路径 Real Time Speech Enhancement in the Waveform Domain
摘要
我们提出了一种基于原始波形的因果语音增强模型,该模型可在笔记本电脑的 CPU 上实时运行。所提出的模型基于编码器-解码器架构,并带有跳跃连接。它在时域和频域上都进行了优化,使用了多种损失函数。实验证明,该模型能够去除各种类型的背景噪声,包括平稳噪声和非平稳噪声,以及房间混响。此外,我们还提出了一套直接应用于原始波形的数据增强技术,进一步提高了模型的性能和泛化能力。我们在几个标准基准上进行了评估,既使用了客观指标,也采用了人类判断。所提出的模型在直接处理原始波形的情况下,与因果和非因果方法的最新性能相当。
关键词:语音增强、语音降噪、神经网络、原始波形
1. 引言
语音增强是旨在最大限度提升语音信号的感知质量的活动,具体而言就是去除背景噪音。大多数录制的对话式语音信号都存在某种形式的噪音,这些噪音会妨碍语音的清晰度,例如街道噪音、狗叫声、键盘敲击声等。因此,对于音频和视频通话[1]、助听器[2]以及自动语音识别(ASR)系统[3]而言,语音增强本身就是一个特别重要的任务。对于许多此类应用而言,语音增强系统的一个关键特性是在通信设备上实时运行,并尽可能减少延迟(在线),最好是在商用硬件上实现。
数十年来在语音增强方面的研究已经找到了可行的解决方案,这些方案能够估计噪声模型,并利用该模型来恢复去噪后的语音[4,5]。尽管这些方法在不同领域中具有良好的泛化能力,但它们在处理诸如非平稳噪声或人群同时交谈时出现的嘈杂声(即“嗡嗡声”)这类常见噪声方面仍存在困难。这类噪声类型的存在极大地降低了人类语音的听觉清晰度[6]。近年来,基于深度神经网络(DNN)的模型在非平稳噪声和嘈杂声方面表现得明显更出色,并且在客观和主观评估中生成的语音质量也优于传统方法[7,8]。此外,基于深度学习的方法在单通道源分离这一相关任务上也明显优于传统方法[9,10,11]。
受到这些最新进展的启发,我们提出了一个适用于语音增强的 DEMUCS [11] 架构的实时版本。它由一个基于卷积和 LSTM 的因果模型组成,帧大小为 40 毫秒,步长为 16 毫秒,能够在单个笔记本电脑 CPU 核心上以高于实时的速度运行。出于音频质量的考虑,我们的模型从波形到波形,通过分层生成(使用类似 U-Net [12] 的跳跃连接)进行操作。我们对模型进行了优化,使其能够直接输出语音信号的“纯净”版本,同时最小化回归损失函数(L1 损失),并辅以频谱图域损失 [13,14]。此外,我们还提出了一组简单且有效的数据增强技术:即频率带掩蔽和信号混响。尽管在模型运行时间上严格限制了关键的实时性要求,但我们的模型在客观和主观评估中都达到了与最先进的模型相当的性能。
虽然存在多种衡量语音增强系统的指标,但这些指标与人类的判断结果并不完全一致[1]。因此,我们不仅报告了客观指标的结果,还报告了人类评估的结果。此外,我们还对损失函数和增强函数进行了消融研究,以更好地突出每个部分的贡献。最后,我们使用自动语音识别(ASR)模型产生的词错误率(WER)来分析增强过程中的伪影。
结果表明,所提出的方法在所有指标上均与当前最先进的模型相当,且其处理方式直接针对原始波形。此外,增强后的样本被发现有助于在有噪声的情况下改善语音识别模型。
2. 模型
2.1 符号表示与问题设定
我们专注于单声道(单麦克风)语音增强技术,该技术能够在实时应用中发挥作用。具体而言,给定一个音频信号 \(x\in \mathbb{R} ^T\),它由干净的语音信号 \(y\in \mathbb{R} ^T\)组成,该信号受到一个加性背景信号 \(n\in \mathbb{R} ^T\)的干扰,使得 \(x = y + n\)。长度\(T\)并非在整个样本中都是固定不变的,因为输入的语音片段可能具有不同的持续时间。我们的目标是找到一个增强函数 \(f\),使得\(f(x) ≈ y\)。在本研究中,我们将\(f\)设为DEMUCS架构[11],该架构最初是为音乐源分离而开发的,并将其应用于因果语音增强任务,该模型的可视化描述可参见图 1a。
2.2 DEMUCS 架构
DEMUCS 由一个多层卷积编码器和解码器组成,其中包含 U-net [12] 跳过连接,以及应用于编码器输出的序列建模网络。其特点在于层数\(L\)、初始隐藏通道数\(H\)、层核大小\(K\)和步长\(S\)以及重采样因子\(U\)。编码器和解码器的层编号从\(1\)到\(L\)(对于解码器为逆序,因此处于相同尺度的层具有相同的索引)。由于我们关注单声道语音增强,模型的输入和输出仅有一个通道。
从形式上讲,编码器网络\(E\)接收原始波形作为输入,并输出一个潜在表示\(E(x) = z\)。每个层由具有卷积核大小\(K\)和步长\(S\)的卷积层组成,其输出通道数为\(2^{(i-1)}H\),随后是 ReLU 激活函数、“1x1”卷积层,其输出通道数为\(2^iH\),最后是 GLU [15] 激活函数,该函数将通道数转换回\(2^{(i-1)}H\),见图 1b 以获得直观描述。
接下来,一个序列建模\(R\)网络将潜在表示\(z\)作为输入,并输出与之大小相同的非线性变换,即 \(R(z) = LSTM(z) + z\),记为\(\hat{z}\)。LSTM 网络由两层和\(2(L - 1)H\)个隐藏单元组成。对于因果预测,我们使用单向LSTM,而对于非因果模型,我们使用双向LSTM,然后通过一个线性层将两者的结果合并。
最后,解码器网络\(D\)接收输入\(\hat{z}\)并输出对原始信号的估计值\(D(\hat{z}) =\hat{y}\)。解码器的第\(i\)层接收\(2^{(i-1)}\)个通道作为输入,并应用一个具有\(2^i\)个通道的1x1卷积,随后是 GLU激活函数,输出\(2^{(i-1)}\)个通道,最后是一个具有\(8\)的卷积核、\(4\)的步长和\(2^{(i-2)}\)个输出通道的转置卷积,并伴有ReLU函数。对于最后一层,输出为单通道且没有ReLU。一个跳跃连接将编码器的第\(i\)层的输出与解码器的第i层的输入相连接,如图1a所示。
我们使用[16]所提出的方案来初始化所有模型参数。最后,我们发现,在将音频以因子\(U\)进行上采样后再将其输入到编码器中,能够提高准确性。我们对模型的输出进行相同的下采样处理。重采样是使用 sinc 插值滤波器[17]来完成的,这是作为端到端训练的一部分,而非预处理步骤。
2.3 目标
我们采用波形的 L1 损失,并结合对频谱图幅度的多分辨率 STFT 损失,其方式与文献[13, 14]中所提出的类似。具体而言,设\(y\)和\(\hat{y}\)分别为原始信号和增强信号。我们将 STFT 损失定义为频谱收敛(sc)损失与幅度损失之和,其表达式如下:
\(L_{sftf}(y,\hat{y})=L_{sc}(y,\hat{y})+L_{mag}(y,\hat{y})\)
$L_{sc}(y,\hat{y})=\frac{\left | \left | STFT(y) \right |-\left | STFT(\hat{y} ) \right | \right | _{F}}{\left | \left | STFT(y) \right | \right | _F} $
\(L_{mag}(y,\hat{y})=\frac{1}{T} \left \| log\left | STFT(y) \right |-log\left | STFT(\hat{y} ) \right | \right \| _{1}\)
其中 \(\left \| \bullet \right \| _F\) 和\(\left \| \bullet \right \| _1\)分别为弗罗贝尼乌斯范数和 L1 范数。我们定义多分辨率短时傅里叶变换损失为使用不同短时傅里叶变换参数的所有短时傅里叶变换损失函数的总和。总体而言,我们希望最小化以下内容:
\(\frac{1}{T} \left [ \left \| y-\hat{y} \right \|_1 +\sum_{i=1}^{M} L_{stft}^{(i)}(y,\hat{y}) \right ]\)
其中 M 表示 STFT 损失的数量,而每个\(L^{i}_{STFT}\)损失分别在不同的分辨率下应用 STFT 损失,其 FFT 采样点数取值为 \(\in \left \{512、1024、2048 \right \}\),跳步大小取值为\(\in \left \{50、120、240 \right \}\),最后窗口长度取值为\(\in \left \{240、600、1200 \right \}\)。
3. 实验
我们进行了多项实验,以评估所提出的方法与多个竞争模型的性能对比情况。我们针对瓦伦蒂尼等人[18]和深度噪声抑制(DNS)[19]基准测试报告了客观和主观的评估指标。此外,我们还对增强和损失函数进行了消融研究。最后,我们评估了增强样本在噪声条件下提高语音识别性能的可用性。代码和样本可在以下链接中找到:https://github.com/facebookresearch/denoiser
3.1 实施细节
评估方法 我们采用客观和主观两种方法来评估增强语音的质量。对于客观评估方法,我们使用以下指标:(i)PESQ:语音质量的感知评估,采用 ITU-T P.862.2 中推荐的宽带版本[24](范围为 0.5 至 4.5);(ii)短时客观可懂度(STOI)[25](范围为 0 至 100);(iii)CSIG:仅针对语音信号的信号失真意见评分(MOS)预测[26](范围为 1 至 5);(iv)CBAK:背景噪声侵入性的 MOS 预测[26](范围为 1 至 5);(v)COVL:整体效果的 MOS 预测[26](范围为 1 至 5)。
对于主观评估,我们按照国际电信联盟电信标准协会 P.835 标准[27]的要求进行了 MOS 测试。为此,我们使用 CrowdMOS 软件包[28]开展了众包评估。我们随机选取了 100 个话语样本,每个样本由 15 名不同的评估者从三个维度进行评分:失真程度、背景噪音的干扰程度以及整体质量。将所有评估者和查询的评分结果进行平均,得出最终得分。
训练 我们在 Valentini [18] 数据集上对 DEMUCS 模型进行了 400 个周期的训练,在 DNS [19] 数据集上进行了 250 个周期的训练。我们使用预测语音波形与真实语音波形之间的 L1 损失,并且对于 Valentini 数据集,还添加了第 2.3 节中描述的 STFT 损失,权重为 0.5。我们使用 Adam 优化器,步长为 3e−4,动量为 \(β_1 = 0.9\),衰减动量 \(β_2 = 0.999\)。对于 Valentini 数据集,我们使用原始验证集并保留最佳模型,对于 DNS 数据集,我们不使用验证集并保留最后的模型。音频采样率为 16 kHz。
模型 我们采用了第 2 节中所描述的 DEMUCS 架构的三种变体。对于非因果型 DEMUCS,我们设定 U=2、S=2、K=8、L=5 和 H=64。对于因果型 DEMUCS,我们设定 U=4、S=4、K=8 以及 L=5,且 H 可取 48 或 64。在将输入数据传递给模型之前,我们先对其标准差进行归一化处理,并在输出结果上按相同的比例进行反向缩放。对于因果模型的评估,我们采用在线估计的标准差值。在这种设置下,因果型 DEMUCS 处理音频的帧大小为 37 毫秒,步长为 16 毫秒。
数据增强 我们总是会在 0 到 S 秒之间随机设定一个偏移时间。混音增强功能会将同一批次中的噪声进行重新排列,从而形成新的噪声混合音。带阻滤波器(BandMask)具有从 f0 到 f1 之间的阻带,其采样值用于在梅尔尺度上均匀地移除 20% 的频率。在波形域中,这相当于用于语音识别训练的 SpecAug 增强功能[29]。Revecho:给定初始增益 λ、早期延迟 τ 和 RT60,它会在噪声信号中添加一系列 N 个衰减的清晰语音和噪声的回声。第 n 个回声具有延迟为 nτ + 噪声抖动以及增益为 ρ nλ 的特性。N 和 ρ 的选择使得当总延迟达到 RT60 时,我们有 ρ N ≤ 1e−3。λ、τ 和 RT60 分别在 [0, 0.3]、[10, 30] 毫秒和 [0.3, 1.3] 秒的范围内均匀采样。
我们对所有数据集都使用随机偏移,对 Valentini [18] 使用 Remix 和 BandMask,而对 DNS [19] 仅使用 Revecho。
因果流式评估 我们保留了一小部分过去的输入/输出数据作为缓冲区,以限制 sinc 重采样滤波器的副作用。对于输入的上采样,我们还使用了 3 毫秒的前瞻机制,这将模型的总帧大小扩展到 40 毫秒。当将模型应用于给定信号帧时,输出的最右侧部分是无效的,因为需要未来的音频才能正确计算转置卷积的输出。然而,我们注意到,将这个无效部分用作流式下采样的填充极大地提高了 PESQ。流式实现完全是基于 PyTorch 的。由于帧之间的重叠,我们特意在需要时缓存不同层的输出。
3.2 结果
表 1 汇总了 Valentini [18] 数据集使用因果模型和非因果模型所得的结果。结果表明,DEMUCS 在采用客观和主观衡量标准的情况下,与当前的 SOTA 模型(DeepMMSE [23])表现相当,同时它直接处理原始波形,且未使用额外的训练数据。此外,DEMUCS 优于其他基准方法(无论其是因果模型还是非因果模型),具有显著的优势。我们还引入了一个干/湿旋钮,即我们输出\(dry·x + (1 - dry)·\hat{y}\),这使得能够控制噪声去除与信号保留之间的权衡。我们注意到少量的渗漏(5%)会提高整体感知质量。
在表 2 中,我们列出了针对 DNS [19] 盲测集的 3 个类别(无混响(不含混响的合成混合)、有混响(包含人工混响的合成混合)和真实录音)的总体 MOS 评估结果。我们针对第 3.1 节中描述的类似混响的 Revecho 增强策略测试了不同的方法。我们要么要求模型去除混响(去混响),要么保留它,要么仅保留其中的一部分。最后,我们要么在语音和噪声中添加相同的混响,要么使用不同的抖动来模拟有两个不同的声源。我们以“去除混响”模型参与挑战,但由于去混响产生的伪影,在有混响的类别中表现不佳。进行部分去混响处理可以提高总体评分,但对于真实录音(通常混响已经较少)则不然。对于真实录音,使用两个声源来模拟混响可以提高评分。
3.3 消融
为了更深入地了解所提出模型中不同组成部分对整体性能的影响,我们对增强函数和损失函数进行了消融研究。我们使用了因果型 DEMUCS 版本,并为每种方法报告了 PESQ 和 STOI。结果列于表 3 中。结果表明,每个组成部分都对整体性能有所贡献,其中 STFT 损失和时间偏移增强对性能的提升作用最大。值得注意的是,令人惊讶的是,重混增强函数对整体性能的贡献较小。
3.4 实时评估
我们在流式传输环境下计算了实时因子(RTF,例如增强一帧所需的时间除以步长),以更好地模拟实际情况。我们在此在四核英特尔 i5 CPU(2.0 GHz,支持 AVX2 指令集)上对该实现进行了基准测试。对于 H=64 版本,RTF 为 1.05,而对于 H=48 版本,RTF 为 0.6。当限制执行在单个核心上时,H=48 模型仍能实现 0.8 的 RTF,这使其在实际条件下(例如在视频通话软件中)使用起来是切实可行的。我们没有为 DeepMMSE [23] 提供 RTF 结果,因为作者未提供其流式实现,因此这使得进行比较不公平。
3.5 对自动语音识别模型的影响
最后,我们评估了增强样本的可用性,以在有噪声的情况下提高自动语音识别(ASR)的性能。为此,我们使用 LIBRISPEECH 数据集[31]以及 DNS[19]基准测试集中的噪声数据,通过合成的方式生成了有噪声的数据。我们在一个可控的环境中创建了这些噪声样本,将干净的和噪声的文件以 SNR 等级 ∈ {0, 10, 20, 30} 的方式混合在一起。对于 ASR 模型,我们使用了一个基于卷积和 Transformer 的声学模型,该模型在 LIBRISPEECH 上取得了最先进的结果,如文献[32]所述。为了计算词错误率(WER),我们采用了一种简单的维特比(argmax)解码方式,既没有语言模型解码也没有束搜索。这样,我们能够更好地理解增强样本对声学模型的影响。结果如表 4 所示。DEMUCS 在 SNR 为 0 时能够恢复多达 51%因添加噪声而损失的 WER,并在开发干净数据集和开发其他数据集上平均恢复 41%的 WER。由于声学模型没有基于去噪数据进行重新训练,这些结果表明语音增强可以直接应用于 ASR 系统,作为黑箱音频预处理步骤。
4. 相关工作
传统的语音增强方法要么生成语音幅度谱的增强版本,要么生成理想二值掩码(IBM)的估计值,然后利用该估计值来增强幅度谱[5, 33]。
在过去几年中,基于深度神经网络的语音增强方法受到了越来越多的关注[34, 35, 36, 37, 20, 38, 39, 22, 40, 7, 41, 8, 42, 21, 37]。在[34]中,使用了一个深度前馈神经网络,在时域中通过一个成本函数生成频域二进制掩码。[43]中的作者建议使用多目标损失函数来进一步提高语音质量。[44, 35]中的作者则使用递归神经网络(RNN)进行语音增强。在[7]中,作者提出了一种端到端的方法,即语音增强生成对抗网络(SEGAN),直接从原始波形进行增强。[41, 8, 42, 21]中的作者进一步改进了这种优化方法。在[37]中,作者建议使用WaveNet[45]模型通过学习一个函数将噪声信号映射为干净信号来实现语音降噪。
在探讨因果方法时,[46] 文中的作者提出了一种在频谱层面的卷积循环网络,用于实时语音增强;而 Xia、Yangyang 等人[30]则建议去掉卷积层,并应用加权损失函数以进一步提升实时环境下的效果。最近,[23] 中的作者们利用一种最小均方误差噪声功率谱密度跟踪器,为因果模型和非因果模型都提供了令人瞩目的结果,该跟踪器采用了时间卷积网络(TCN)作为先验信噪比估计器。
5. 讨论
我们已经展示了如何将 DEMUCS(一种专为波形域音乐源分离而开发的先进架构)转变为一种因果语音增强器,能够在消费级 CPU 上实时处理音频。我们在标准的 Valentini 基准测试中对 DEMUCS 进行了测试,并在不使用额外训练数据的情况下取得了最先进的结果。我们还在具有真实混响条件的 DNS 数据集上测试了我们的模型。我们通过实证研究展示了增强技术(两个声源的混响、部分去混响)如何能在主观评估中产生显著的改进。最后,我们表明我们的模型即使在不重新训练模型的情况下,也能在嘈杂条件下提高 ASR 模型的性能。

浙公网安备 33010602011771号