徐庆达 张二华
(南京理工大学计算机科学与工程学院 南京 210094)
语音作为人机交互的主要方式之一,在语音识别系统、说话人识别系统等中得到广泛应用。但实际环境和理想环境存在很大差异,语音信号中往往存在“未知”的干扰,如音乐、汽车鸣笛、动物叫声等。这些干扰很大程度上影响了语音信号分析系统的性能,如何消除噪声并获得纯净的语音信号成为语音技术发展的关键技术之一。
经研究表明,人耳有较强的语音分析能力,在复杂场景下即使只用一只耳朵,也能排除噪声干扰,有选择的听取所需内容[1]。1953年英国科学家Cherry将该现象称为“鸡尾酒会”问题[2]。之后人们对于人耳听觉系统的研究经历了较长时间,Bregman 经过多年的研究,在20 世纪90 年代发表《听觉场景分析》(Auditory Scene Analysis,ASA),听觉场景分析是从人的听觉生理以及心理特征出发,研究人耳在听觉感知过程中的机理[3~4]。
2004 年,Guoning Hu 和Deliang Wang 提出了著名的Hu-Wang 模型,该模型采用基音特性和幅度调制特性分别处理低频和高频区域,分离结果的高频区域得到了改善,分离效果得到了提高[5~6]。2010 年,Guoning Hu 和Deliang Wang 提出了用于基音估计和浊音分离的算法,即tandem 算法,该算法迭代的进行基音估计和二值模估计,可以准确地获得基音和目标语音的二值模[7~8]。2013年,基于tan-dem 算法,Guoning Hu 和Deliang Wang 提出了一种无监督的语音分离系统,该算法在完成浊音分离后,通过多尺度Onset/Offset 分析产生待分离清音段,并利用已分离的浊音的二值模来组织清音段,实现清音分离[9]。
本文首先分析了语音信号的频域特征,语音信号在浊音部分其频谱分布具有明显的谐波特性,在倒谱域上有明显的峰值,由倒谱峰值的位置可以推算出基音周期。本文以语音信号的短时平稳性和基音周期的连续性等作为语音分离的线索,在求取基音频率后采用梳状滤波提取各次谐波的频谱,再进行傅里叶逆变换得到分离后的语音,实验证明了该方法的有效性。
人耳听觉系统对声音的感知主要分为两个阶段,即分解和组合。人耳会将听到的声音分解成不同的感知单元,这些感知单元来自不同的发声源,然后,听觉系统会将来自同一发声源的感知单元重新组合到一起,形成能够表达一定内容的语音片段[10]。其中组合分为“时序组合”和“同时组合”,如图1 所示,B 和C 属于同一时间不同频段的感知单元,两者的组合属于“同时组合”,A 和B 属于同一频段不同时间的感知单元,两者按时间的先后顺序的组合属于“时序组合”。计算听觉场景分析正是用计算机来模拟人耳的听觉系统,并建立相应的语音信号分离模型。
图1 同时组合与时序组合
本文主要使用短时傅里叶分析方法对语音信号的短时谱和语谱图进行研究。通常取10ms~30ms为一帧,第n帧语音信号xn(m)的短时傅里叶变换的定义如式(1),w(n-m)为窗函数。
为了将时域信息与频域信息相互结合,便于系统的分解和组合,可将连续帧的频谱曲线按时间先后“竖”向绘制,再把频率分量在某时间点上的幅值转换为像素灰度值,以此为依据来绘制语谱图。语谱图的绘制过程如下。
1)对输入的语音信号进行短时傅里叶变换,对得到的实部和虚部的平方和开根号,得到振幅谱v={s1,s2,…,sn} ,其中v为二维数组,n为帧号,sn代表第n帧的振幅谱数据。
2)将所有振幅谱数据按照数值大小升序排序,以20 百分位处的数值为低截止阈值smin,80 百分位处的数值为高截止阈值smax,高于smax的像素值为0,即黑色,低于smin的像素值为255,即白色,其余的振幅映射到0~255之间。
图2 给出了纯净语音某男声汉语“那年”的波形图及其语谱图,其中帧长为512 个采样点,采样频率为16kHz,即每16000 个采样点代表1s。观察发现浊音段浊音区域一条条横向的条纹,也就是谐波系结构,这些谐波包含了语音信号中的主要信息,各次谐波的位置将作为语音分离的主要线索。
图2 某男声语音“那年”波形图与语谱图
语音产生的过程可以通过激励源和滤波器模型模拟,激励源代表声带振动,滤波器代表声道,两者在时域通过卷积计算得到语言信号。对语音信号利用倒谱解卷原理,可以得出激励序列的倒谱,倒谱峰反映了基音信息,所以据此可以计算出基音周期[11~12]。
首先按第3 节中的式(1)对第n帧语音信号xn(m)进行短时傅里叶变换得到短时谱Xn(ejω),短时谱Xn(ejω)包含实部和虚部,设
对其取对数得
再对实部ln|Xn(ejω)|做傅里叶逆变换可得到倒谱c(n),如式(4):
图3(a)为语音信号对数振幅谱ln|Xn(ejω)|示意图,虚线对应于频谱包络的慢变化分量,实线对应于谐波的快变化分量,谐波的变化频率就是基音频率。将对数振幅谱做傅里叶逆变换,即可将慢变化分量与快变化分量分离开[13]。图3(b)为倒谱c(n)的示意图,横轴表示倒谱频率,量纲是时间,其中靠近原点的低倒频部分是频谱包络的变换,位于t0处的有明显的峰值,t0对应的时间就是基音周期。
图3 倒谱示意图
设信号采样频率为f,则时间采样间隔为Δt=1f,若帧长为M,某一帧的倒谱数据为c(M),若其在第l个样点序号处产生明显的峰值,则基音周期Tp为
基音频率fp定义如式(6):
语音信号具有短时平稳性,且是渐变的,属于同一声源的基音周期具有一定的连续性。本文以每帧的倒谱数据为依据,将相邻帧的倒谱数据按一定的映射规则转换为像素灰度值,然后在垂直方向上绘制出各帧倒谱的灰度值。其绘制过程与语谱图类似,图4(a)为某男声“那年正月新春”纯净语音波形图,图4(b)为其基音周期轨迹图。基音周期轨迹图中的纵坐标为时间,因采样率为16kHz,即单位Δt=1 16000s。
图4 语音波形图和基音周期轨迹图
在第4 节中已经给出了基音频率确定的方法,而各次谐波的频率fh为基音频率fp的整数倍,即fh=k×fp,按基音频率的整数倍提取各次谐波可得到需要的频谱数据。由于基音频率的计算会产生很小的误差,在高频部分当k较大时误差会被放大,本文使用迭代更新第k-1 次谐波位置的方法来确定第k次谐波位置,以此提取各次谐波,缩小了高频部分的误差,提高了谐波提取的准确性。
设信号采样频率为f,某段语音的振幅谱数据为v={s1,s2,…,sn} ,帧长为N,某一帧的振幅谱数据sn的长度为N,对应于N个点序号,则频率采样间隔Δf=f/N,由4.1 节中式(6)得基音频率fp=f/l,则某一帧的一次谐波位置点序号i1=int(fp/Δf)=int(N/l)。
谐波提取过程如下:
1)将语谱图中灰度值85 对应的振幅作为各次谐波的振幅阈值AH。
2)根据基音频率fp设置谐波搜索范围(R表示要搜索的样点的范围),避免相邻两个谐波位置的交叉。
3)根据基音频率fp确定一次谐波的理论位置i1=int(N/l) ,对i1四 舍 五 入 取 整,并 搜 索[i1-R,i1+R] 范围内的极大值,若找到局部极大值A(ix),且A(ix)≥AH,则本次谐波频率点位置就为ix,更新i1=ix;否则舍去该次谐波频率点,i1=int(N/l)不做更新。
4)经过步骤3)在一次谐波确定的情况下,从第二次谐波开始,以ik=ik-1+i1依次求取剩余各次谐波,ik的更新与确定与步骤3)一致。
图5(a)为纯净语音某男声“那年正月新春”语谱图,图5(b)为其按上述方法提取的谐波结构图。
图5 某男声“那年正月新春”语谱图与谐波提取图
对于提取完谐波的单帧频谱进行傅里叶逆变换可得到分离后的单帧语音信号[14]。短时傅里叶变换是将时域信号转换到频域,而短时傅里叶逆变换 则 是 将 频 域 信 号Xn(ejω)恢 复 为 时 域 信 号x(m)。第3节中式(1)对应的傅里叶逆变换公式为
令m=n,且w( 0 )≠0 时,有
对于分离后的单帧语音信号,由于相邻帧之间在时域上有重合,因此,在同一段基音轨迹对应的时间范围内,将各语音帧按照间隔帧移大小的距离进行对齐。如图6,对于重合部分采用叠加求均值的方式来重构语音信号,可得到分离后的语音。
图6给出了语音重构的过程示意图。
图6 语音重构过程示意图
本实验将原始语音某男声“那年正月新春”与不同噪声混合后做分离试验,选取的噪声分别为电话按键声、白噪声、流水声、水中气泡声、鸟叫声,图7为五种噪声的波形图。
图7 五种噪音的波形
本实验将原始语音与噪音按一定的信噪比(SNR)进行混合,对混合语音进行分离试验,其中信噪比设为5。信噪比(SNR)计算公式如式(9),其中,x(m)为原始语音信号,v(m)为噪音信号。
图8~图12为原始语音与五种噪音混合后的波形以及分离后的语音波形图。
图8 电话按键声与原始语音的混合与分离
图9 白噪声与原始语音的混合与分离
图10 水流声与原始语音的混合与分离
图12 鸟叫声与原始语音的混合与分离
本文主要采用主观评价的评价意见分(Mean Opinion Score,MOS)和信噪比SNR 来对实验结果进行评估[15],MOS评估标准如表1所示。本文对参与本实验评估的60 个人的MOS 分值取均值,得出最后的分数。分离语音的信噪比SNR 的计算公式如式(10),其中x̂(m)为分离后的语音信号,x(m)为原始信号。
表1 MOS值评分标准
上述实验中将五种噪声与原始语音按一定信噪比混合然后进行分离实验,表2 给出了分离前后的MOS评分和信噪比SNR的对比。
表2 分离前后评估表
从分离后的语音波形图和表2 中的数据可以看出,经过分离处理后的语音质量得到了明显的改善,噪音得到大幅度的消减,且听觉效果得到较好的改善。但当噪音干扰过强,人耳已经难以分辨时,分离的效果并不是很好,关于强噪音下的语音分离还有待改善和研究。
本文介绍了计算听觉场景分析的原理和基于该原理的语音分离方法。该方法中较为重要的步骤是基音周期的提取,本文采用倒谱法来确定基音周期,后根据基音周期确定浊音段语音信号频谱上的谐波位置,对提取的频谱做反变换重构原信号。实验表明,该方法可有效提高语音信号的信噪比和可读性。