林文模,陈飞龙,孙成立,朱祯君
南昌航空大学 信息工程学院,南昌330063
在现实环境中,语音不可避免地会受到来自各种声源的背景噪声的干扰,当房间混响与背景噪音混在一起时,将给语音感知带来较大影响和破坏,加剧了听力受损(hearing impairment,HI)人员的听力困难[1-2]。尤其是当信噪比(signal to noise ratio,SNR)处于较低水平时,这些畸变共同降低了语音的清晰度和质量[3-4]。在这些不利的混响噪声条件下,许多语音处理任务,如自动语音识别(automatic speech recognition,ASR)和说话人识别(speaker identification,SID)将变得更加困难[5-7]。现在逐渐兴盛的智能设备行业,其产品的大部分功能,包括获取实时信息、播放有声读物、设置闹钟和控制其他家庭设备,都是基于强大的ASR和SID系统。如果不能很好地应对背景噪声和室内混响带来的语音失真,智能设备的效用也将受到限制。
语音增强技术的主要目的是最大限度地从带噪语音信号中恢复出干净的语音信号,在噪声条件下改善语音质量并提高可懂度,其在学术界和工业领域中得到了广泛的研究和应用[8]。经过几十年的发展,传统多通道语音增强算法已经相对成熟,主要有波束形成、子空间等算法[9]。传统波束形成算法包括延迟求和波束形成、超指向性波束形成、最小方差无失真响应(minimum variance distortion less response,MVDR)波束形成等[10]。大部分传统波束形成方法都是线性的,当语音信号中含有的噪声比较多时,算法效果将受到较大影响。近十年,基于深度神经网络的语音增强方法有效解决了这一难题,并已成为语音增强的主流方法[11]。因此,后来多用神经网络先将输入信号进行噪声分离再进行波束形成。神经波束形成主要有两种方法:第一种是用时频掩蔽得到频谱图,然后用频谱图去计算信号的空间信息[12],如空间协方差矩阵,其中时频掩蔽的概念来自于计算听觉场景分析(computational auditory scene analysis,CASA)[13];第二种则是基于输出,语音分离部分不一定在时频域进行,而是可能在时域,通过得到的波形以及输出的频谱图去计算空间信息[14]。两者主要是对目标声源估计的方法不同。
L3DAS(learning 3D audio sources)团队近两年举行了L3DAS挑战赛,该挑战赛的第一个任务就是3D语音增强(3D speech enhancement),目标就是设计一个多通道深度神经网络来处理3D语音信号[15]。该挑战赛模拟了人耳在办公室混响环境下听到远场3D语音的场景,开发在现实相近场景中的语音增强技术极具挑战性,且针对此场景的语音增强算法更能投入实际使用。
回顾近几年的研究,3D 语音增强的成果与L3DAS竞赛密不可分。其中,巴西圣保罗大学的参赛团队提出了一种时域全卷积网络(time domain fully convolutional network),该网络以时域语音信号作为输入,重复使用相同核的全卷积块,卷积只采用一维卷积,避免了频谱映射模型信号重建中常见的相位问题,并达到了语音增强的目的,在L3DAS21 3D语音增强竞赛中获得了第二名[16]。快手科技提出的MMUB(MIMO UNet beamforming)[17]采用了多通道神经波束形成。具体地说,它将多通道混合的串联输入到一个U-Net中,以估计每个通道的复杂权值。然后加权混合后的和即为目标信号的估计,以此完成语音增强的任务。它不需要显式的空间特征,如双耳相位差(IPD),最后在L3DAS21 竞赛中夺得了第一名。而在2022 年L3DAS22 的3D 语音增强挑战赛中,腾讯参赛的PCG-AIID 系统则取得了第三名。该系统第一阶段进行多通道语音增强,在保留多信道信号空间特性的同时,去除背景噪声。第二阶段则进行空间滤波和后滤波从期望方向增强语音,其中的空间滤波对前一阶段输出的多通道信号进行了波束形成估计[18]。两个阶段所用网络均是卷积循环网络(convolutional recurrent network,CRN),不同的是,第二阶段的CRN前还多了个频率级长短时记忆网络(frequency-wise LSTM)来进行空间滤波。由卡内基梅隆大学、马奇理工大学、MetaAI、上海交通大学和台北中央研究院合作提出的ESPNET-SE 采用了神经网络和多帧多通道维纳波束形成滤波器相迭代的结构。它使用了两个多输入单输出的TCN-DenseUNet(temporal convolutional network-DenseUNet),两个网络分开训练,用原始信号通过训练后的第一个网络首先生成一个目标估计语音,该目标估计信号与原始信号作为迭代结构的第一代输入,迭代时输入信号先进入多帧多通道维纳波束形成滤波器,波束形成滤波结果与第一个网络的估计信号连同原始信号一起输入第二个网络,用第二个网络的输出代替第一个网络的估计信号,让其与原始信号一起作为下一代迭代结构的输入以逐步细化估计,通过这样的一次次迭代来训练第二个网络。最终其在L3DAS22挑战赛的3D语音增强任务中夺得第一名[19]。
综上所述,本文针对固定几何形状的麦克风阵列,提出了两级UNet 波束形成网络去进行期望方向的3D语音增强。第一级网络进行初步时频滤波,并输出初步波束形成滤波结果;第二级网络则将前一级所估计的信号特征连同原始信号内全向信道的特征信息作为输入,进一步改善波束形成滤波效果。本文方法不需要显式的空间特征,且效果在STOI和WER上明显优于L3DAS21 3D语音增强挑战赛中冠军模型MMUB。
3D 语音信号有a 和b 两种格式,它们都是4 通道信号,且两者可以通过矩阵乘法相互转换[17]。3D 语音与普通多通道语音的区别在于,3D 语音每个通道采集的是来自不同方向的信号,每个通道内的信号是不一样的且包含方位信息。
一个a格式的3D语音,每个通道的信号结构一致,且可表示为:
其中,α表示a 格式3D 语音信号的信道索引,FLU、FRD、BLD、BRU 分别表示前左上、前右下、后左下和后右上方位的通道。通常采用4 个心形麦克风四面体排列来采集3D语音,声场结构如图1所示。
图1 a格式声场麦克风概念结构Fig.1 a-format sound field microphone conceptual structure
声场话筒广泛应用于3D音频行业,例如声场SPS200和Rode NT-SF1。
mα(t)、sα(t)、nα(t)分别表示对应信道内的噪声、干净语音和噪声信号。在短时傅里叶变换(short time Fourier transform,STFT)域中,式(1)可以表示为:
其中,l表示帧数,f表示频率。因此完整的a格式信号可表示为:
b格式信号可以通过式(4)由a格式信号转换得来:
W、Y、Z、X为b格式立体声通道,它们分别表示一个所有方向信道相加的全向信道和部分方向信道相增减后的坐标轴方向的信道。b格式信号具有更好的空间特性,而且对于一些声场麦克风,麦克风前置放大器已经在硬件[20]中完成了a到b格式的转换,本文直接针对b格式信号进行语音增强。
估计b格式干净语音的方法如下:
W(l,f)可被视为b 格式波束形成滤波器[17],可以用神经网络进行估计。神经波束形成网络结构如图2 所示:首先将带噪信号进行短时傅里叶变换,再用U-Net这一经典全卷积网络[21]估计波束形成滤波器的参数,把经过网络的信号与滤波器参数相乘,然后求和得到单通道信号。
图2 b格式神经波束形成网络结构Fig.2 b-format neural beamforming network structure
本文将两个麦克风阵列采集到的b 格式语音信号拼接成一个八通道信号作为输入,其形式为[WA,YA,ZA,XA,WB,YB,ZB,XB],A/B代表两个麦克风阵列,W、Y、Z、X是阵列内麦克风信号的信道索引。
因此一个完整的输入信号可表示为:
第一级估计的波束形成滤波器可表示为:
则第一级波束形成滤波的结果为:
本文将第一级滤波后信号的特征信息与原始信号全向信道中的特征信息拼接成的双通道信息作为第二级的输入。所谓全方位信号是指a格式信号转换为b格式信号时,a 格式信号所有方位信号相加得到的信号。因此该信号所含的信息最全面,本文借此来进行第二级的深层波束形成滤波。
因此第二级的输入可表示为:
第二级的波束形成滤波器可表示为:
因此最终的干净语音估计结果为:
综合所有的波束形成滤波,可以将语音增强的过程表示为:
它可以根据前一级滤波的效果与原始信号的部分信息进行自适应调整,从而逐步改善第一级滤波和总体滤波的效果,最终得到误差最小的两级波束形成滤波器。
图3为本文方法的网络结构,它由两个多通道U-Net波束形成网络串联构成,命名为多通道单输出W-Net(MISO-W-BeamformingNet,MSWB)。它包含三个主要模块:编码器用于逐步提取高级特征;解码器用于从编码器的输出中重构输入特征的大小;跳跃连接用于将编码器中的每一层与解码器中的相应层进行连接。将多路信号的复谱图拼接后送入编码器,用解码器估计目标信号的实部谱图和虚部谱图。每个编码器块由一个二维卷积、二维批归一化和LeakyReLU 激活组成。每个解码器块由二维反卷积、二维批归一化和LeakyReLU激活组成。经过编解码模块后,再用一个二维卷积将特征图重塑为输入时的形状。MSWB 的超参数如表1 所示,其中Cin表示输入通道,两级网络只有Cin不同。第一级的输入是将来自两个麦克风阵列的b 格式音频信号拼接为一个8 通道信号,作为原始的输入信号,因此第一级的Cin设置为8。第二级网络的输入则是第一级波束形成滤波后的信号的特征与原始信号全向信道内信号的特征信息拼接而成的双通道特征信息,故第二级网络的Cin设置为2。
表1 模型超参数Table 1 Model hyperparameters
图3 神经网络模型架构Fig.3 Neural network model architecture
为了减小模型负载,将每条语音信号切成时长为1.912 s的多条短信号依次输入,增强时相邻两条语音切片设置有一半重叠,如图4所示。因为采样速率为16 000 Hz,所以每个通道内的信号有30 592个采样点。采用32 ms帧长,8 ms 帧移的512 点STFT 去提取信号的时频域特征。每个通道内的信号提取240帧信息,每一帧里各有256个复谱图的实部信息和虚部信息,然后将谱图的实部和虚部在频率轴上连接起来作为输入到神经网络的特征。本文提出的这种增强方法同样也可以用在传统的多通道语音增强上。
图4 切片重叠区域示意图Fig.4 Schematic diagram of overlapping area of slices
本文使用MSWB作为神经网络来估计一个自适应权级矩阵。将b 格式噪声信号的复谱图与网络估计的自适应权级参数矩阵进行元素对应相乘,然后将结果在通道轴上相加,估计出一个单通道增强复谱图。然后再进行短时傅里叶逆变换(inverse short time Fourier transform,iSTFT),得到时域增强信号。由这个过程可以将神经网络估计的空间矩阵理解为滤波和波束形成器的权值。图3 中虚线方框中的内容从上到下依次是两级的波束形成过程。两级的增强过程均与传统的波束形成过程相同,不同的是第二级的波束形成增强过程会根据前一阶段的效果和原始信号内信息进行自适应调整,以改善最终增强效果。
鉴于之前MMUB 中进行的损失函数实验,发现多通道波束形成U-Net 网络采用时域内定义的平均绝对误差(mean absolute error,MAE)作为损失函数时,效果最好[17],故本文亦采用MAE作为本系统的损失函数:
其中x与分别是干净语音信号与系统估计语音信号。
本文仅使用L3DAS22 挑战赛提供的最小的一个3D音频数据集(L3DAS Task1 train100)进行模型训练,将该数据集的70%用来训练,剩下的30%用来验证每轮的训练结果。其中的多通道信号是通过对单通道纯净语音和多通道脉冲响应(impulse response,IR)信号进行卷积,再加入与另一种不同脉冲响应信号卷积的背景噪声模拟而成。
干净语音来自Librispeech语料库[22],噪声信号来自FSD50K[23]。
在一个尺寸为长6 m、宽5 m、高3 m 的大办公室里进行信号捕捉。两个Ambionics 麦克风阵列(MicA,MicB)放置在房间的中心。每个麦克风阵列有4个麦克风,并产生4 个通道信号。A 麦克风阵列与B 麦克风阵列之间的距离为20 cm,接近人耳之间的距离。两个麦克风阵列都在高度1.3 m 的位置,这是接近一个坐着的人的耳朵高度。源信号的位置从252 个不同的位置中随机选取。
3D 语音增强的评估指标是STOI 和WER 的组合体。在960h 的Librispeech 语料库上进行预训练,利用Wav2Vec[24]模型计算出语用效率。最后的度量标准定义为:
STOI在0-1范围内,值越大越好。WER值在0-1范围内,值越小越好。因此,最终的度量在0-1范围内,值越高越好。
本文是将两级波束形成网络放在一起作为一个整体模型同时进行训练,具体设置如下:在NVIDIA GTX1660 GPU上训练批量大小为3的模型,并使用Adam梯度优化器更新参数。初始学习率为0.001,当验证损失在2轮内不减少时,它将以每次减半的速度衰减。最低学习率设置为1E-8,且当验证损失在5 轮内不减少时,也停止训练,直接进入测试环节。
本文将所提出的系统与在L3DAS21挑战赛中获得3D语音增强第一名的MMUB和FaSNet-TAC进行了比较。
MMUB[17]使用多通道U-Net估计波束形成滤波器,然后将其与多通道复数频谱图相乘再对滤波后的多通道信号求和,得到目标信号的估计。
FaSNet-TAC[25]是在单级滤波与求和网络(filter-andsum network,FaSNet)中加入转换平均级联(transformaverage-concatenate,TAC)模块形成的。FaSNet 是一种时域波束形成模型,其核心思想是通过基于模型的方法估计波束形成滤波器,而TAC 则可以使系统利用来自所有麦克风的信息进行全局决策。
3.5.1 指标测试结果
首先将本文方法在L3DAS22挑战开发集上与基线方法进行同实验设置对比。不同方法的STOI 和WER结果比较如表2所示。
表2 开发集上不同方法的比较Table 2 Comparison of different methods on development set
表2显示,本文方法(MSWB)在不同麦克风输入数量情况下,在所有的指标上均优于其他两个方法双麦克风输入的结果:与MMUB 相比在STOI 上最多提升了0.025,在WER上最多提升了0.049,与FaSNet-TAC相比则提升得更多,这说明U-Net网络在估计波束形成器上有更好的性能。而本文提出的粗波束形成后借助原始信息自适应细波束形成结构的波束形成滤波效果更出色。且本文模型在单麦克风阵列(4ch)与双麦克风阵列(8ch)信号上的结果表示随着麦克风阵列的数量由1变2,性能也会提升。
接着在盲测试集上对本文模型进行评估。本文方法和L3DAS22挑战最终公布结果的一些参赛模型及基线模型在盲测试集上的表现如表3所示。
表3 盲测试集上不同方法的比较Table 3 Comparison of different methods on blind test set
表3显示,本文方法在STOI上表现非常优秀,可以达到0.923,WER可达13.6%,最终指标则为0.894。
3.5.2 波形及语谱图分析
图5、图6 分别为随机抽出的两条语音在几种方法增强前后以及干净语音的波形及语谱图。图5 中(a)(b)表示A麦克风阵列的4通道含噪语音图形及其语谱图;(c)(d)代表用FaSNet-TAC 增强后的语音波形及语谱图;(e)(f)代表MMUB增强后的语音波形及语谱图;(g)(h)为本文提出的MSWB单麦克风输入增强后的结果;(i)(j)为MSWB双麦克风输入增强后的结果;(k)(l)为目标干净语音的波形及语谱图。其中红色椭圆虚线代表波形变化,白色椭圆虚线代表语音信号的谐波结构。对比红色椭圆内的波形可以发现,MMUB 增强后的波形还残留有噪声波形,而MSWB 增强后的波形则与干净语音信号的波形几乎一致。虽然TAC红色椭圆内没有噪声残留,但它波形图的大部分包络的细微处都与其他波形有差距,比如开头部分就有缺失。
另外图5 语音1,(e)中波形明显还存在有噪声包络,而(c)(g)(i)(k)中则是平直的。因此从波形图上来看,MSWB的增强效果是最好的。
对比图中白色椭圆内的频谱分量可以看出,TAC增强后的语谱图谐波信息很不明显,很多纵向亮条没有显示出来;而MMUB增强后的语谱图含有更多噪声底色;MSWB增强后的语谱图的信息则更清晰且更接近干净语音的语谱图,且双麦克风阵列输入增强后的噪声更少,信息更清晰。
为了将MSWB 与MMUB 做更深的比较,本文又随机挑选了一条语音。图6语音2,(c)中包络从横向看还有包络厚实的情况,而(e)(g)中的包络则要纤细很多,且(c)中波形在细微处与其他两者有所不同,比如红色椭圆内波形是左低右高,而(e)(g)中则是左高右低。语谱图的效果则与图5类似,MSWB去除噪声底色的效果更好且信息更清晰。对比两图白色椭圆内的频谱分量可以看出,MMUB增强后的语谱图含有更多噪声底色,而MSWB增强后的语谱图的信息更清晰且更接近干净语音的语谱图。
从听觉上感受,可以明显听出MMUB 增强后的语音还掺有音量不小的噪声,而MSWB 增强后的语音噪声要小不少,更为清晰。
因此本文模型可以进行更准确的波束形成滤波,达到更好的语音增强效果。
本文提出了一个用于3D语音增强的两级波束形成网络,实验结果表明,仅在L3DAS22 挑战中最小的训练集(train100)参与训练的情况下,本文方法在语音清晰度和语音识别方面均具有良好的性能,并能够在L3DAS22 挑战中最终指标达到0.894,STOI 和WER 也均显著优于MMUB。说明波束形成与多级结构相结合,尤其是第二级的自适应波束形成在3D 语音增强上有可取性。本文所用的基础模型是最简单的U-Net,且两级结构基本一致,如果改进基础模型或用更好的基础网络去分别替换前后两级的滤波网络,可能会取得更好的效果。特别是现如今U-Net 系列网络很多且效果越来越好,这些都是本研究方向前进的一大助力。
虽然参赛的大部分模型都能够达到很高的STOI和很低的WER,但它与实际应用还有一段距离。比如采用的语音数据均是从同一个办公室进行采样,如果换一个不同办公室乃至换一个不同的场景,尚不知这些方法是否仍然可以表现优秀。还有一点,在3D 语音增强方面,显式空间特征并没有得到很好的应用,应用这样的显式空间特征可能会有助于3D 语音增强任务。另外,随着麦克风数量的增多,性能会不会趋于饱和的问题也值得探究。