噪音处理方法与装置
技术领域
本发明涉及到通讯领域,特别是涉及到噪音处理方法与装置。
背景技术
现有语音通信过程中环境噪声的干扰是不可避免的,周围的环境噪音干扰将导致通讯设备最终接收到的是受噪声污染的语音信号,影响语音信号的质量。特别在汽车、飞机、船只、机场、商场等噪音严重的公众环境下,强背景噪声严重影响通讯质量,引发用户的听觉疲劳,影响用户的日常心情和神经活动,迫切需求对通话语音进行降噪处理以提高语音清晰度。但现有双麦克降噪方法中,频域处理量较大,且通过降噪增强语音的效果还有待提升。
因此,现有技术还有待改进。
发明内容
本发明的主要目的为提供一种噪音处理方法,旨在解决现有语音通话的噪音处理中没有监控噪音的变化而进行动态调整去除噪音的平滑因子的技术问题。
本发明提出一种噪音处理方法,包括:
获取当前语音信号的频域信号;
按照预设规则将所述频域信号划分为多个依次排布的子频带;
在各所述子频带内分别通过语音激活检测,获取当前时间相邻的两个非语音段的功率比;
根据所述功率比获取相应的去除所述非语音段的平滑因子;
根据所述平滑因子得到各所述子频带内的频带特征的协方差矩阵;
根据所述协方差矩阵进行特征分解,得到各所述子频带的输出权向量。
优选地,所述在各所述子频带内分别通过语音激活检测,获取相邻的两个非语音段的功率比的步骤,包括:
通过在非说话时段对各所述子频带分别进行语音激活检测,得到当前第一非语音段的第一时间的第一功率、与第二时间的第二功率以及与第三时间的第三功率,其中,第一时间、第二时间、第三时间按照发生时间依次倒序衔接;
则通过计算所述第一功率与所述第二功率的比值,获得各所述子频带分别对应的当前功率变化,通过计算所述第二功率与所述第三功率的比值,获得各所述子频带分别对应的前时刻功率变化;
通过计算所述当前功率变化与所述前时刻功率变化的第一比值,获取相邻的两个非语音段的功率比。
优选地,所述根据所述功率比获取相应的去除所述非语音段的平滑因子的步骤,包括:
判断所述第一比值是否在预设范围内;
若是,选定初始化平滑因子为当前时刻的平滑因子。
优选地,所述判断所述第一比值是否在预设范围内的步骤之后,还包括:
若否,则计算所述初始化平滑因子与所述第一比值的第二比值;
设定所述第二比值为当前时刻的平滑因子。
优选地,所述根据所述平滑因子得到各所述子频带内的频带特征的协方差矩阵的步骤,包括:
获取当前时间的所述子频带的下边界下标到上边界上标的频点向量;
根据所述当前时刻的平滑因子以及所述频点向量对所述子频带的协方差矩阵进行更新。
本发明还提供了一种噪音处理装置,包括:
第一获取模块,用于获取当前语音信号的频域信号;
划分模块,用于按照预设规则将所述频域信号划分为多个依次排布的子频带;
第一获取子模块,用于在各所述子频带内分别通过语音激活检测,获取当前时间相邻的两个非语音段的功率比;
第二获取子模块,用于根据所述功率比获取相应的去除所述非语音段的平滑因子;
第一得到子模块,用于根据所述平滑因子得到各所述子频带内的频带特征的协方差矩阵;
第二得到子模块,用于根据所述协方差矩阵进行特征分解,得到各所述子频带的输出权向量。
优选地,所述第一获取子模块,包括:
检测单元,用于通过在非说话时段对各所述子频带分别进行语音激活检测,得到当前第一非语音段的第一时间的第一功率、与第二时间的第二功率以及与第三时间的第三功率,其中,第一时间、第二时间、第三时间按照发生时间依次倒序衔接;
获得单元,用于则通过计算所述第一功率与所述第二功率的比值,获得各所述子频带分别对应的当前功率变化,通过计算所述第二功率与所述第三功率的比值,获得各所述子频带分别对应的前时刻功率变化;
第一获取单元,用于通过计算所述当前功率变化与所述前时刻功率变化的第一比值,获取相邻的两个非语音段的功率比。
优选地,所述第二获取子模块,包括:
判断单元,用于判断所述第一比值是否在预设范围内;
选定单元,用于若所述第一比值在预设范围内,选定初始化平滑因子为当前时刻的平滑因子。
优选地,所述第二获取子模块,还包括:
计算单元,用于若所述第一比值不在预设范围内,则计算所述初始化平滑因子与所述第一比值的第二比值;
设定单元,用于设定所述第二比值为当前时刻的平滑因子。
优选地,所述第一得到模块,包括:
第二获取单元,用于获取当前时间的所述子频带的下边界下标到上边界上标的频点向量;
更新单元,用于根据所述当前时刻的平滑因子以及所述频点向量对所述子频带的协方差矩阵进行更新。
本发明有益技术效果:本发明通过将双麦克采集的语音信号的宽带频域信号分解为多个互不重叠的窄带,并通过MVDR(Minimum Variance Distortionless Response,最小方差失真响应)算法计算各子频带的MVDR波束输出,并将多个子频带的MVDR波束输出进行加和求平均,得到整个宽带频域信号的MVDR波束输出,避免了传统的DAS(延迟直接相加)、GSC(旁瓣对消)、MVDR(最小方差失真响应)方法对于宽带频域信号的降噪效果不佳的问题;而且本发明在通过MVDR算法计算各子频带的MVDR波束输出时,在各子频带内通过跟踪环境噪音变化,对起伏较大的噪音通过动态调整平滑因子以提高噪音处理效果;本发明在处理双麦克采集的语音信号的宽带频域信号时,只选择通话语音段的频率范围进行处理,提高处理速度,提高降噪增强语音的实时性,满足在较低信噪比状况下,人能接听到较为清晰且不失真的通话语音,具有实际应用价值。
附图说明
图1本发明一实施例的语音增强的方法流程示意图;
图2本发明一实施例的语音增强的方法中的减少频域处理量的方法流程示意图;
图3本发明一实施例的语音增强的方法中的噪音处理方法流程示意图;
图4本发明一实施例的语音增强的装置结构示意图;
图5本发明一实施例的划分模块的结构示意图;
图6本发明一实施例的计算模块的结构示意图;
图7本发明一实施例的第一获取模块的结构示意图;
图8本发明一实施例的语音增强的装置优化结构示意图;
图9本发明另一实施例的语音增强的装置结构示意图;
图10本发明另一实施例的划分模块的结构示意图;
图11本发明再一实施例的划分模块的结构示意图;
图12本发明一实施例的噪音处理***的结构示意图;
图13本发明又一实施例的第一获取子模块的结构示意图;
图14本发明又一实施例的第二获取子模块的结构示意图;
图15本发明又一实施例的第一得到子模块的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本发明一实施例的语音增强的方法,通过双麦克语音通道采集语音信号,且各语音通道分别进行语音增强处理,包括:
S1:获取当前语音信号的频域信号。
本实施例中,频域信号指将双麦克语音通道采集的语音信号的时域信号通过FFT(Fast Fourier Transformation,离散傅氏变换)变换后的信号数据,由于本实施例中的语音信号通过双麦克语音通道采集,所以对双麦克的左右通道采集的同一时域帧的语音信号分别同步做同样的处理,比如,本实施例的双麦克语音通道分别连接有FFT,并将经FFT变换后的信号数据缓存于两个相同长度的缓存器中,以便分别进一步作后续处理,以增强语音处理效果。
S2:按照预设规则将上述频域信号划分为多个依次排布的子频带。
MVDR算法宽带频域信号的处理效果不理想,会导致语音失真严重,影响输出语音的质量。本实施例通过将宽带频域信号划分为多个互不重叠依次排布的子频带,通过对上述子频带分别进行MVDR算法,以降低语音失真度,提高处理后的语音质量。
S3:根据最小方差失真响应算法分别计算各上述子频带的第一波速输出。
本实施例的MVDR算法,通过相关联的协方差矩阵得到各子频带的输出权向量。本实施例的MVDR波束形成器中由多个完全一样的空间传感器的线性阵列组成,通过阵列的接收数据得到数据的协方差矩阵,以找出极大值点对应的角度,即语音信号入射方向,以使在期望方向上的阵列输出功率最小,同时信噪比最大。本实施例通过对各子频带分别进行MVDR算法,以获得各子频带分别对应的第一波速输出(即频率数据),以提高对语音信号的频域信号进行MVDR算法后的效果,减少语音失真。
S4:通过对各上述第一波速输出进行平均值计算,获取上述频域信号的第二波速输出。
本实施例通过将把该语音信号的时域帧对应的所有子频带缓存内的频率数据相加然后求平均值,就得到该时域帧对应的频域信号的输出频率数据,并通过与双麦克语音通道的左右通道分别输出。然后通过循环上述步骤S1至S4,直至将语音信号的所有时域帧数据处理完毕。
进一步地,步骤S2,包括:
S200:区分上述频域信号中的敏感频段,其中,上述敏感频段为第一频段,上述频域信号中除上述敏感频段之外的频段为第二频段;
本实施例的敏感频段根据语音信号的用途确定,比如,通话语音的频段为200Hz至3400Hz,其中的敏感频段为1KHz到2KHz;再比如,听音乐的频段为50Hz到15000Hz,其敏感频段为2KHz到5KHz或1KHz到4KHz。
S201:将上述第一频段均匀划分为多个第一子频带,将上述第二频段均匀划分为多个第二子频带,其中,上述第二子频带的带宽大于上述第一子频带的带宽。
本实施例通过将敏感频段的子频带划分的更细致,而对敏感频段之外的频段进行较粗狂的划分,即敏感频段的子频带的带宽小于敏感频段之外的频段的子频段带宽,使敏感频段的语音失真更少,且通过对敏感频段之外的频段进行较粗狂的划分减少因子频带数量过多引起的计算量增大的弊端。
进一步地,上述根据最小方差失真响应算法分别计算各上述子频带的第一波速输出的步骤S3,包括:
S300:在各上述子频带内分别通过语音激活检测,获取相邻的两个非语音段的功率比。
本实施例通过语音激活检测在语音信号间隙期对非语音段(即噪音)的功率谱进行估计,以便及时判断周边环境噪音的变化趋势,以便对噪音进行详细跟踪。本实施例通过两个非语音段的功率比的变化跟踪非语音段的功率变化,功率比变大表示噪音强度增强,反之噪音强度减弱。
S301:根据上述功率比获取相应的去除上述非语音段的平滑因子;
本实施例根据跟踪获得的噪音功率的变化动态调整去除非语音段的平滑因子,当环境噪音的时变速度相对采样速率较快时,平滑因子应设置的小一些,当环境噪音的时变速度相对采样速率较慢时或者噪声功率比较强时候,平滑因子应该大一些,以及时跟踪空间声场的变化,更好的跟踪环境噪音变化而改变去噪音的程度,有效的平滑噪声的起伏,减小噪音起伏的影响,进一步改善双麦克降噪的信噪比,改善输出语音信号的音质。
S302:根据上述平滑因子得到各上述子频带内的频带特征的协方差矩阵;
根据动态变化的平滑因子及时更新协方差矩阵,以便更精准地判断语音信号入射方向,进一步降低周围噪音对双麦克语音通道采集的影响。
S303:根据上述协方差矩阵进行特征分解,得到各上述子频带的输出权向量。
本实施例的MVDR算法输出的数据为协方差矩阵,通过特征分解获得协方差矩阵对应的输出权向量,即第一波速输出。
进一步地,上述获取当前语音信号的频域信号的步骤S1,包括:
S100:获取上述双麦克语音通道分别采集的当前语音信号的第一时域信号。
本实施例的双麦克语音通道采集的为语音信号的时域信号,上述时域信号以时间顺序依次排布的各时域帧数据。本实施例的第一时域信号为区域于其他时域信号而设定,此处的“第一”仅为区别,不作限定,本申请中其他处的“第一”、“第二”等的作用相同,不赘述。
S101:将上述第一时域信号分别输入到上述双麦克语音通道分别对应的带通滤波器,分别得到指定频率范围的优选时域信号。
本实例通过只选择处理关注的语音频段数据,以减少数据处理量,提高实时处理效果。本实施例关注的语音频段数据为人说话声音的频率范围,即200Hz至3400Hz,以满足对通话语音增强的效果,且避免了正常语音的失真。本实施例通过将200Hz至3400Hz频段之外的语音信号通过预处理过程全部过滤掉,且确保200Hz至3400Hz全覆盖,实现较少数据处理量且确保语音不失真的效果。
S102:将上述优选时域信号分别通过与上述双麦克语音通道分别关联的傅氏变换,分别转换为当前语音信号的上述指定频率范围的频域信号。
本实施例的子频带划分、噪音处理等操作过程需要在频域信号上进行,本实施例通过FFT变换将各时域信号转变为频域信号。双麦克语音通道的语音信号同步进行同样的转换操作,并分别将转换后的数据缓存于两个相同的缓存器中。
进一步地,上述通过对各上述第一波速输出进行平均值计算,获取上述频域信号的第二波速输出的步骤S4之后,包括:
S5:通过将上述频域信号的第二波速输出分别输入到与上述双麦克语音通道分别关联的反傅氏变换器中,将上述频域信号转换为输出时域信号;
本实施例将双麦克语音通道采集的为语音信号的时域信号,通过转变为频域信号,然后经过降噪音、增语音等处理后,需要通过反傅氏变换器将处理后的频域信号转换为相应的时域信号,才被人耳接听与识别。
S6:通过上述双麦克语音通道分别输出对应的上述输出时域信号。
本实施例的双麦克语音通道采集的语音信号在经过过滤筛选频率段、FFT变换、子频带划分、降噪音增语音、反FFT变换的过程中,均为左右语音通道分别同步进行,在输出端合成为一体。
参照图2,本发明另一实施例中语音增强方法中,首先通过对语音通道采集语音信号进行预处理以减少频域处理量,本实施例减少频域处理量的方法包括:在步骤S2之前,进行如下操作:
S20:根据频域处理平台的计算量水平,选择指定频点的傅氏变换方式;
本实施例中的指定频点包括1024点、2048点、256点等FFT变换,本实施例优选1024点,在合适计算量的限定下满足处理效果的需求。
S21:将双麦克语音通道分别采集的当前语音信号的第一时域信号经过预处理后,分别通过上述指定频点的傅氏变换方式得到的上述第一时域信号对应的频域信号;
本实施例通过1024点FFT变换对频率范围为200Hz至3400Hz的语音信号进行变换,则获得约144点的频点分布的频域信号。而相比于对包括200Hz至3400Hz的全语音段进行处理时,需要处理约512点的频点分布的全频域信号,大幅减少了计算量。
进一步地,上述将上述频域信号按照预设规则进行划分为多个依次排布的子频带的步骤S2,包括:
S202:获取经过上述指定频点的傅氏变换方式得到的上述第一时域信号对应的频域信号的频点总量;
举例地,本实施第一时域信号的频点总量为144点,然后根据144点进行子频带划分的依据。
S203:根据上述频点总量对上述频域信号均匀划分为多个依次排布的子频带。
本实施例的子频带划分过程中,可通过配置每个子频带上的频点数量进行划分。举例地,将各子频带包含的频点数量配置为24,即第一时域信号的子频带的数量为144除以24,为6个子频带。本发明其他实施例可将各子频带包含的频点数量配置为8、6等,以便均匀划分子频带。各子频带包含的频点数量配置为8时,子频带数量为18;各子频带包含的频点数量配置为6时,子频带数量为24。本实施例优选各子频带包含的频点数量配置为6,子频带数量为24的子频带划分方案,以便优化语音降噪增强的效果。因为子频带划分的越多,子频带的带宽越窄,则经过MVDR算法后语音失真越少,但计算量略微增加;相反子频带越少,计算量小,但子频带带宽越大,相对子频带数量多的,失真则会更大。
进一步地,上述将上述第一频段均匀划分为多个第一子频带,将上述第二频段均匀划分为多个第二子频带的步骤S201之后,包括:
S204:分别计算各上述第一子频带和各上述第二子频带一一对应的频带中心频率;
本实施例通过子频带的中心频率,以获得子频带的方向向量,以便更好的控制采集语音信号的最佳角度,避免在采集语音信号时携带最强噪音干燥。本实施例的第一子频带与第二子频带的处理原理相同,只是带宽不同。举例地,本实施例以均匀划分的子频带的处理过程为例,进行详细说明。本实施例的宽带频域信号经过1024点FFT变换后,每个频点的分辨率为16000/1024点,则200Hz至3400Hz对应的频率下标为:12至207。以均匀划分为24个子频带作为举例,则每个子频带的带宽为:band_siz=(up-low)/numband,其中up为3400Hz对应的频率下标,而low对应的200Hz的频率下标,numband为子频带的数量参数,按照24个子频带划分,则每个子频带带宽包含8个频点的下标。第K个子频带的中心频率下标为:fv(k)=((low+(k-1)*band_siz)+(low+(k-1)*band_siz+band_siz-1))/2;于是对应的子频带的中心频率为:F_center=fv(k)/FFT_siz*Fs,其中FFT_siz表示傅里叶变换长度,即1024点,Fs表示采样频率,即16000。
S205:根据上述频带中心频率分别计算得到各上述第一子频带和各上述第二子频带一一对应的方向向量。
本实施例通过将以上计算得到的中心频率,代入如下公式计算方向向量。vssL=e((delay)*(-j)*2*pi*F_center),其中,vssL为计算的方向向量,j是复数标志,j是-1的平方根,pi是常数3.1415926,e为常数数值,e=2.71828183,而exp(a)为指数函数,其中delay为双麦克的左右两个语音通道的延迟时间点向量。通常取左边语音通道为参考点,则右边语音通道相对左边语音通道的时间延迟为tao,delay=[0,tao]。时间延迟估计tao可以采用双麦克语音通道采集的数据进行互相关计算得到。
S206:根据上述方向向量分别获得各上述第一子频带和各上述第二子频带一一对应的频带特征的协方差矩阵以及协方差矩阵的逆矩阵对应的最优权系数。
本实施例通过双麦克语音通道采集信号,其协方差矩阵是2行2列。求该协方差矩阵的逆矩阵,以r_inv表示为协方差矩阵的逆矩阵,W_opt为当前子频带的最优权系数,则W_opt=r_inv*vssL/(vssL'*r_inv*vssL),其中,vssL表示方向向量,vssL'表示方向向量转置,比如原向量为一行两列,转置后为两行一列。最优权系数是指在扫描角度范围内寻找用户说话时双麦克语音通道的最优角度,比如,从-45o扫描至45o时,60o时用户说话的语音信号中携带的噪音强度最低,则60o为最优角度。
S207:根据上述最优权系数分别计算各上述第一子频带和各上述第二子频带一一对应的第一信号输出。
本实施例中,Out_L=W_opt*S_L;Out_R=W_opt*S_R;其中Out_L为左通道输出频率数据,Out_R为右通道的输出频率数据,S_L为左通道采集的当前时域帧数据FFT变换后的第Fbin_loL点频率到Fbin_hiL点的频率向量,S_R为右通道采集的当前时域帧数据FFT变换后的第Fbin_loL点频率到Fbin_hiL点的频率向量,即S_L或S_R为对应的子频带内的频率数据。其中Fbin_loL为该子频带的频率下边界的下标,而Fbin_hiL为该子频带的频率上边界的上标,最后将左右两通道的频率输出数据保存在缓存中,将第一时域信号对应的所有子频带缓存内的频率数据相加,就得到双麦克语音通道的左右两个语音通道的各自的输出的第一信号输出。
进一步地,上述根据上述最优权系数分别计算各上述第一子频带和各上述第二子频带一一对应的信号输出的步骤S207之后,包括:
S208:按照接收的语音信号的时间顺序,接收距离上述第一时域信号时间差最小的第二时域信号;
本实施例按照接收的语音信号的时间顺序,即先接收到的先处理,后接收到的后处理,依次按照时间顺序逐一处理各时域帧数据。
S209:将上述第二时域信号经过与上述第一时域信号相同的处理过程,得到与上述第二时域信号对应的第二信号输出。
本实施例的第二信号输出处理过程同第一信号输出。
参照图3,本发明一实施例中语音增强方法中,根据最小方差失真响应算法分别计算各上述子频带的第一波速输出的过程中,通过噪音处理提高语音强度。
进一步地,步骤S300,包括:
S3001:通过在非说话时段对各上述子频带分别进行语音激活检测,得到当前第一非语音段的第一时间的第一功率、与第二时间的第二功率以及与第三时间的第三功率,其中,第一时间、第二时间、第三时间按照发生时间依次倒序衔接。
本实施例在每个子频带内都会进行VAD检测(Voice Activity Detection,语音激活检测),在VAD检测的非语音期(即无用户说话信息)对该子频带内的噪音做估计,通过保留最近三个阶段的噪音功率值进行估计。设最近一次的噪声功率估计时间为第一时间,相应的第一功率为P1,第一时间的前一时刻为第二时间,第二时间对应的第二功率为P2,第二时间的前一时刻为第三时间,第三时间对应的第三功率为P3。
S3002:则通过计算上述第一功率与上述第二功率的比值,获得各上述子频带分别对应的当前功率变化,通过计算上述第二功率与上述第三功率的比值,获得各上述子频带分别对应的前时刻功率变化。
本实施例中第一功率与第二功率的比值表示为:Vr_cur=P1/P2,第二功率与上述第三功率的比值表示为:Vr_pre=P2/P3。
S3003:通过计算上述当前功率变化与上述前时刻功率变化的第一比值,获取相邻的两个非语音段的功率比。
本实施例的当前功率变化与前时刻功率变化的第一比值表示为:Value=Vr_cur/Vr_pre。如果Vr_cur明显大于Vr_pre,则表明噪音干扰降低,则应降低平滑因子,以避免过度平滑引起的语音失真。
进一步地,本实施例的步骤S301,包括:
S3011:判断上述第一比值是否在预设范围内;
本实施例的预设范围为Value的值在0.8至1.2的范围区间。
S3012:若是,选定初始化平滑因子为当前时刻的平滑因子。
本实施例若Value的值在0.8至1.2的范围区间内,则设定平滑因子为初始化值,比如初始化值为1.0。
进一步地,上述步骤S3011之后,还包括:
S3013:若否,则计算上述初始化平滑因子与上述第一比值的第二比值;
本实施例中若Value的值不在0.8至1.2的范围区间内,如果Value的值大于1.2或者小于0.8时,则将计算第二比值,并将第二比值作为平滑因子。比如,当前Value的值为1.1,则第二比值为1.0/1.1,则当前时刻的平滑因子为1.0/1.1。
S3014:设定上述第二比值为当前时刻的平滑因子。
本实施例通过动态实时调整去除噪音的平滑因子,减小噪音起伏的影响,进一步改善双麦克降噪的信噪比,改善输出语音信号的音质。
进一步地,本实施例的步骤S302,包括:
S3021:获取当前时间的上述子频带的下边界下标到上边界上标的频点向量;
本实施例的频点向量与
S3022:根据上述当前时刻的平滑因子以及上述频点向量对上述子频带的协方差矩阵进行更新。
本实施例的协方差矩阵按照如下公式进行实时更新,以双麦克左通道采集的时域信号的处理过程为例,对时域信号对应的频域信号划分子频带后,协方差矩阵更新方式如下:R_SUBBAND_new=R_SUBBAND_old*alfa+S_L*S_L'*(1-alfa),其中alfa为当前时刻的平滑因子,R_SUBBAND_new为更新后的协方差矩阵,R_SUBBAND_old为更新前一时刻的原协方差矩阵,S_L表示S_L为左通道采集的当前时域帧数据FFT变换后的第Fbin_loL点频率到Fbin_hiL点的频率向量,S_L'表示频率向量转置。
参照图4,本发明一实施例的语音增强的装置,通过双麦克语音通道采集语音信号,且各语音通道分别进行语音增强处理,包括:
第一获取模块1,用于获取当前语音信号的频域信号。
本实施例中,频域信号指将双麦克语音通道采集的语音信号的时域信号通过FFT(Fast Fourier Transformation,离散傅氏变换)变换后的信号数据,由于本实施例中的语音信号通过双麦克语音通道采集,所以对双麦克的左右通道采集的同一时域帧的语音信号分别同步做同样的处理,比如,本实施例的双麦克语音通道分别连接有FFT,并将经FFT变换后的信号数据缓存于两个相同长度的缓存器中,以便分别进一步作后续处理,以增强语音处理效果。
划分模块2,用于按照预设规则将上述频域信号划分为多个依次排布的子频带。
MVDR算法宽带频域信号的处理效果不理想,会导致语音失真严重,影响输出语音的质量。本实施例通过将宽带频域信号划分为多个互不重叠依次排布的子频带,通过对上述子频带分别进行MVDR算法,以降低语音失真度,提高处理后的语音质量。
计算模块3,用于根据最小方差失真响应算法分别计算各上述子频带的第一波速输出。
本实施例的MVDR算法,通过相关联的协方差矩阵得到各子频带的输出权向量。本实施例的MVDR波束形成器中由多个完全一样的空间传感器的线性阵列组成,通过阵列的接收数据得到数据的协方差矩阵,以找出极大值点对应的角度,即语音信号入射方向,以使在期望方向上的阵列输出功率最小,同时信噪比最大。本实施例通过对各子频带分别进行MVDR算法,以获得各子频带分别对应的第一波速输出(即频率数据),以提高对语音信号的频域信号进行MVDR算法后的效果,减少语音失真。
第二获取模块4,用于通过对各上述第一波速输出进行平均值计算,获取上述频域信号的第二波速输出。
本实施例通过将把该语音信号的时域帧对应的所有子频带缓存内的频率数据相加然后求平均值,就得到该时域帧对应的频域信号的输出频率数据,并通过与双麦克语音通道的左右通道分别输出。然后通过循环上述步骤S1至S4,直至将语音信号的所遇时域帧数据处理完毕。
参照图5,上述划分模块2,包括:
区分子模块200,用于区分上述频域信号中的敏感频段,其中,上述敏感频段为第一频段,上述频域信号中除上述敏感频段之外的频段为第二频段;
本实施例的敏感频段根据语音信号的用途确定,比如,通话语音的频段为200Hz至3400Hz,其中的敏感频段为1KHz到2KHz;再比如,听音乐的频段为50Hz到15000Hz,其敏感频段为2KHz到5KHz或1KHz到4KHz。
第一划分子模块201,用于将上述第一频段均匀划分为多个第一子频带,将上述第二频段均匀划分为多个第二子频带,其中,各上述第二子频带的带宽大于各上述第一子频带的带宽。
本实施例通过将敏感频段的子频带划分的更细致,而对敏感频段之外的频段进行较粗狂的划分,即敏感频段的各子频带的带宽小于敏感频段之外的频段的子频段带宽,使敏感频段的语音失真更少,且通过对敏感频段之外的频段进行较粗狂的划分减少因子频带数量过多引起的计算量增大的弊端。
参照图6,上述计算模块3,包括:
第一获取子模块300,用于在各上述子频带内分别通过语音激活检测,获取相邻的两个非语音段的功率比。
本实施例通过语音激活检测在语音信号间隙期对非语音段(即噪音)的功率谱进行估计,以便及时判断周边环境噪音的变化趋势,以便对噪音进行详细跟踪。本实施例通过两个非语音段的功率比的变化跟踪非语音段的功率变化,功率比变大表示噪音强度增强,反之噪音强度减弱。
第二获取子模块301,用于根据上述功率比获取相应的去除上述非语音段的平滑因子;
本实施例根据跟踪获得的噪音功率的变化动态调整去除非语音段的平滑因子,当环境噪音的时变速度相对采样速率较快时,平滑因子应设置的小一些,当环境噪音的时变速度相对采样速率较慢时或者噪声功率比较强时候,平滑因子应该大一些,以及时跟踪空间声场的变化,更好的跟踪环境噪音变化而改变去噪音的程度,有效的平滑噪声的起伏,减小噪音起伏的影响,进一步改善双麦克降噪的信噪比,改善输出语音信号的音质。
第一得到子模块302,用于根据上述平滑因子得到各上述子频带内的频带特征的协方差矩阵;
根据动态变化的平滑因子及时更新协方差矩阵,以便更精准地判断语音信号入射方向,进一步降低周围噪音对双麦克语音通道采集的影响。
第二得到子模块303,用于根据上述协方差矩阵进行特征分解,得到各上述子频带的输出权向量,即第一波速输出。
本实施例的MVDR算法输出的数据为协方差矩阵,通过特征分解获得协方差矩阵对应的输出权向量,即第一波速输出。
参照图7,上述第一获取模块1,包括:
第三获取子模块100,用于获取上述双麦克语音通道分别采集的当前语音信号的第一时域信号。
本实施例的双麦克语音通道采集的为语音信号的时域信号,上述时域信号以时间顺序依次排布的各时域帧数据。本实施例的第一时域信号为区域于其他时域信号而设定,此处的“第一”仅为区别,不作限定,本申请中其他处的“第一”、“第二”等的作用相同,不赘述。
输入子模块101,用于将上述第一时域信号分别输入到上述双麦克语音通道分别对应的带通滤波器,分别得到指定频率范围的优选时域信号。
本实例通过只选择处理关注的语音频段数据,以减少数据处理量,提高实时处理效果。本实施例关注的语音频段数据为人说话声音的频率范围,即200Hz至3400Hz,以满足对通话语音增强的效果,且避免了正常语音的失真。本实施例通过将200Hz至3400Hz频段之外的语音信号通过预处理过程全部过滤掉,且确保200Hz至3400Hz全覆盖,实现较少数据处理量且确保语音不失真的效果。
转换子模块102,用于将上述优选时域信号分别通过与上述双麦克语音通道分别关联的傅氏变换,分别转换为当前语音信号的上述指定频率范围的频域信号。
本实施例的子频带划分、噪音处理等操作过程需要在频域信号上进行,本实施例通过FFT变换将各时域信号转变为频域信号。双麦克语音通道的语音信号同步进行同样的转换操作,并分别将转换后的数据缓存于两个相同的缓存器中。
参照图8,本发明另一实施例的语音增强的装置,包括:
转换模块5,用于通过将上述频域信号的第二波速输出分别输入到与上述双麦克语音通道分别关联的反傅氏变换器中,将上述频域信号转换为输出时域信号;
本实施例将双麦克语音通道采集的为语音信号的时域信号,通过转变为频域信号,然后经过降噪音、增语音等处理后,需要通过反傅氏变换器将处理后的频域信号转换为相应的时域信号,才被人耳接听与识别。
输出模块6,用于通过上述双麦克语音通道分别输出对应的上述输出时域信号。
本实施例的双麦克语音通道采集的语音信号在经过过滤筛选频率段、FFT变换、子频带划分、降噪音增语音、反FFT变换的过程中,均为左右语音通道分别同步进行,在输出端合成为一体。
参照图9,本发明另一实施例中语音增强装置中,首先通过对语音通道采集语音信号进行预处理以减少频域处理量,划分模块2的前端连接有:
选择模块20,用于根据频域处理平台的计算量水平,选择指定频点的傅氏变换方式;
本实施例中的指定频点包括1024点、2048点、256点等FFT变换,本实施例优选1024点,在合适计算量的限定下满足处理效果的需求。
得到模块21,用于将双麦克语音通道分别采集的当前语音信号的第一时域信号经过预处理后,分别通过上述指定频点的傅氏变换方式得到的上述第一时域信号对应的频域信号;
本实施例通过1024点FFT变换对频率范围为200Hz至3400Hz的语音信号进行变换,则获得约144点的频点分布的频域信号。而相比于对包括200Hz至3400Hz的全语音段进行处理时,需要处理约512点的频点分布的全频域信号,大幅减少了计算量。
参照图10,本实施例的划分模块2,包括:
第三获取子模块202,用于获取经过上述指定频点的傅氏变换方式得到的上述第一时域信号对应的频域信号的频点总量;
举例地,本实施第一时域信号的频点总量为144点,然后根据144点进行子频带划分的依据。
第二划分子模块203,用于根据上述频点总量对上述频域信号均匀划分为多个依次排布的子频带。
本实施例的子频带划分过程中,可通过配置每个子频带上的频点数量进行划分。举例地,将各子频带包含的频点数量配置为24,即第一时域信号的子频带的数量为144除以24,为6个子频带。本发明其他实施例可将各子频带包含的频点数量配置为8、6等,以便均匀划分子频带。各子频带包含的频点数量配置为8时,子频带数量为18;各子频带包含的频点数量配置为6时,子频带数量为24。本实施例优选各子频带包含的频点数量配置为6,子频带数量为24的子频带划分方案,以便优化语音降噪增强的效果。因为子频带划分的越多,子频带的带宽越窄,则经过MVDR算法后语音失真越少,但计算量略微增加;相反子频带越少,计算量小,但子频带带宽越大,相对子频带数量多的,失真则会更大。
参照图11,本发明再一实施例的划分模块2,包括:
第一计算子模块204,用于分别计算各上述第一子频带和各上述第二子频带一一对应的频带中心频率;
本实施例通过子频带的中心频率,以获得子频带的方向向量,以便更好的控制采集语音信号的最佳角度,避免在采集语音信号时携带最强噪音干燥。本实施例的第一子频带与第二子频带的处理原理相同,只是带宽不同。举例地,本实施例以均匀划分的子频带的处理过程为例,进行详细说明。本实施例的宽带频域信号经过1024点FFT变换后,每个频点的分辨率为16000/1024点,则200Hz至3400Hz对应的频率下标为:12至207。以均匀划分为24个子频带作为举例,则每个子频带的带宽为:band_siz=(up-low)/numband,其中up为3400Hz对应的频率下标,而low对应的200Hz的频率下标,numband为子频带的数量参数,按照24个子频带划分,则每个子频带带宽包含8个频点的下标。第K个子频带的中心频率下标为:fv(k)=((low+(k-1)*band_siz)+(low+(k-1)*band_siz+band_siz-1))/2;于是对应的子频带的中心频率为:F_center=fv(k)/FFT_siz*Fs,其中FFT_siz表示傅里叶变换长度,即1024点,Fs表示采样频率,即16000。
第二计算子模块205,用于根据上述频带中心频率分别计算得到各上述第一子频带和各上述第二子频带一一对应的方向向量。
本实施例通过将以上计算得到的中心频率,代入如下公式计算方向向量。vssL=e((delay)*(-j)*2*pi*F_center),其中,vssL为计算的方向向量,j是复数标志,j是-1的平方根,pi是常数3.1415926,e为常数数值,e=2.71828183,而exp(a)为指数函数,其中delay为双麦克的左右两个语音通道的延迟时间点向量。通常取左边语音通道为参考点,则右边语音通道相对左边语音通道的时间延迟为tao,delay=[0,tao]。时间延迟估计tao可以采用双麦克语音通道采集的数据进行互相关计算得到。
获得子模块206,用于根据上述方向向量分别获得各上述第一子频带和各上述第二子频带一一对应的频带特征的协方差矩阵以及协方差矩阵的逆矩阵对应的最优权系数。
本实施例通过双麦克语音通道采集信号,其协方差矩阵是2行2列。求该协方差矩阵的逆矩阵,以r_inv表示为协方差矩阵的逆矩阵,W_opt为当前子频带的最优权系数,则W_opt=r_inv*vssL/(vssL'*r_inv*vssL),其中,vssL表示方向向量,vssL'表示方向向量转置,比如原向量为一行两列,转置后为两行一列。最优权系数是指在扫描角度范围内寻找用户说话时双麦克语音通道的最优角度,比如,从-45o扫描至45o时,60o时用户说话的语音信号中携带的噪音强度最低,则60o为最优角度。
第三计算子模块207,用于根据上述最优权系数分别计算各上述第一子频带和各上述第二子频带一一对应的第一信号输出。
本实施例中,Out_L=W_opt*S_L;Out_R=W_opt*S_R;其中Out_L为左通道输出频率数据,Out_R为右通道的输出频率数据,S_L为左通道采集的当前时域帧数据FFT变换后的第Fbin_loL点频率到Fbin_hiL点的频率向量,S_R为右通道采集的当前时域帧数据FFT变换后的第Fbin_loL点频率到Fbin_hiL点的频率向量,即S_L或S_R为对应的子频带内的频率数据。其中Fbin_loL为该子频带的频率下边界的下标,而Fbin_hiL为该子频带的频率上边界的上标,最后将左右两通道的频率输出数据保存在缓存中,将第一时域信号对应的所有子频带缓存内的频率数据相加,就得到双麦克语音通道的左右两个语音通道的各自的输出的第一信号输出。
进一步地,上述划分模块2,包括:
接收子模块208,用于按照接收的语音信号的时间顺序,接收距离上述第一时域信号时间差最小的第二时域信号;
本实施例按照接收的语音信号的时间顺序,即先接收到的先处理,后接收到的后处理,依次按照时间顺序逐一处理各时域帧数据。
第三得到子模块209,用于将上述第二时域信号经过与上述第一时域信号相同的处理过程,得到与上述第二时域信号对应的第二信号输出。
本实施例的第二信号输出处理过程同第一信号输出。
参照图12,本发明又一实施例中语音增强方法中,根据最小方差失真响应算法分别计算各上述子频带的第一波速输出的过程中,包括噪音处理***,通过噪音处理提高语音强度。
参照图13,第一获取子模块300,包括:
检测单元3001,用于通过在非说话时段对各上述子频带分别进行语音激活检测,得到当前第一非语音段的第一时间的第一功率、与第二时间的第二功率以及与第三时间的第三功率,其中,第一时间、第二时间、第三时间按照发生时间依次倒序衔接。
本实施例在每个子频带内都会进行VAD检测(语音激活检测),在VAD检测的非语音期(即无用户说话信息)对该子频带内的噪音做估计,通过保留最近三个阶段的噪音功率值进行估计。设最近一次的噪声功率估计时间为第一时间,相应的第一功率为P1,第一时间的前一时刻为第二时间,第二时间对应的第二功率为P2,第二时间的前一时刻为第三时间,第三时间对应的第三功率为P3。
获得单元3002,用于则通过计算上述第一功率与上述第二功率的比值,获得各上述子频带分别对应的当前功率变化,通过计算上述第二功率与上述第三功率的比值,获得各上述子频带分别对应的前时刻功率变化。
本实施例中第一功率与第二功率的比值表示为:Vr_cur=P1/P2,第二功率与上述第三功率的比值表示为:Vr_pre=P2/P3。
第一获取单元3003,用于通过计算上述当前功率变化与上述前时刻功率变化的第一比值,获取相邻的两个非语音段的功率比。
本实施例的当前功率变化与前时刻功率变化的第一比值表示为:Value=Vr_cur/Vr_pre。如果Vr_cur明显大于Vr_pre,则表明噪音干扰降低,则应降低平滑因子,以避免过度平滑引起的语音失真。
参照图14,本实施例的第二获取子模块301,包括:
判断单元3011,用于判断上述第一比值是否在预设范围内;
本实施例的预设范围为Value的值在0.8至1.2的范围区间。
选定单元3012,用于若上述第一比值在预设范围内,选定初始化平滑因子为当前时刻的平滑因子。
本实施例若Value的值在0.8至1.2的范围区间内,则设定平滑因子为初始化值,比如初始化值为1.0。
进一步地,上述第二获取子模块301,还包括:
计算单元3013,用于若上述第一比值不在预设范围内,则计算上述初始化平滑因子与上述第一比值的第二比值。
本实施例中若Value的值不在0.8至1.2的范围区间内,如果Value的值大于1.2或者小于0.8时,则将计算第二比值,并将第二比值作为平滑因子。比如,当前Value的值为1.1,则第二比值为1.0/1.1,则当前时刻的平滑因子为1.0/1.1。
设定单元3014,用于设定上述第二比值为当前时刻的平滑因子。
本实施例通过动态实时调整去除噪音的平滑因子,减小噪音起伏的影响,进一步改善双麦克降噪的信噪比,改善输出语音信号的音质。
参照图15,本实施例的第一得到子模块302,包括:
第二获取单元3021,用于获取当前时间的上述子频带的下边界下标到上边界上标的频点向量;
本实施例的频点向量与上述S_L或S_R的获取方法原理相同,不赘述。
更新单元3022,用于根据上述当前时刻的平滑因子以及上述频点向量对上述子频带的协方差矩阵进行更新。
本实施例的协方差矩阵按照如下公式进行实时更新,以双麦克左通道采集的时域信号的处理过程为例,对时域信号对应的频域信号划分子频带后,协方差矩阵更新方式如下:R_SUBBAND_new=R_SUBBAND_old*alfa+S_L*S_L'*(1-alfa),其中alfa为当前时刻的平滑因子,R_SUBBAND_new为更新后的协方差矩阵,R_SUBBAND_old为更新前一时刻的原协方差矩阵,S_L表示S_L为左通道采集的当前时域帧数据FFT变换后的第Fbin_loL点频率到Fbin_hiL点的频率向量,S_L'表示频率向量转置。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。