发明内容
本发明目的在于针对上述现有技术的不足,提出一种基于白化短时傅里叶谱哈希重排鲁棒主成分分析算法的语音增强方法,在噪声环境中获取高质量增强语音, 主要应用于语音接收***、语音编码***及语音识别***。
实现本发明目的的具体思路是,首先利用含噪语音的部分样本建立白化模型, 并在时域使用该白化模型对含噪语音进行白化处理,使用短时傅里叶变换对白化后 的含噪语音进行时频分析得到其时频幅度谱和时频相位谱,然后使用哈希函数映射 的方法对时频幅度谱每一列中的谱元素的排列顺序进行打乱重排得到重排时频幅 度谱,再使用鲁棒主成分分析算法将重排时频幅度谱分解得到增强时频幅度谱,并 恢复各列谱元素的排列顺序,接着利用增强时频幅度谱和时频相位谱组成增强时频 谱,并重构出完整的时域白化增强语音信号,最后使用已建立的白化模型对该语音 信号进行逆白化处理得到增强语音。本发明可用于多种语音处理***中的语音增强, 恢复被噪声严重污染的语音的质量和可懂度,达到增强含噪语音的目的。
本发明方法具体包括以下步骤:
(1)生成白化含噪语音xw(n):
(1a)在[1000,1500]的范围内任选一个整数值作为样本点数N,取含噪语音x(n)前N个采样点建立白化滤波器;
(1b)利用(1a)得到的白化滤波器对含噪语音x(n)进行白化处理,得到白化含噪语音xw(n);
(2)生成白化含噪语音xw(n)的时频幅度谱|Dw|和时频相位谱∠Dw:
(2a)在[20,40]毫秒的范围内任选一个值作为每一帧语音信号的时长,并在帧长度 ×[25%,75%]的范围内选取一个值作为后一帧语音相对于前一帧语音的位移量,将白化含 噪语音xw(n)分为多个短时语音帧;
(2b)在所有的短时语音帧中,按照时间顺序依次选取未处理的一帧短时语音作为当前要处理的帧;
(2c)对当前要处理的短时语音帧做傅里叶变换,得到该帧的傅里叶谱,计算傅里叶谱的幅度和相位,获得傅里叶幅度谱与傅里叶相位谱;
(2d)判断是否已处理完所有的短时语音帧,若是,执行步骤(2e),否则,返回 步骤(2b);
(2e)将每一帧的傅里叶幅度谱作为一个列向量,按时间顺序排列,构成白化含噪语音的时频幅度谱|Dw|;将每一帧的傅里叶相位谱作为一个列向量,按时间顺序排列,构成白化含噪语音的时频相位谱∠Dw;
(3)生成重排时频幅度谱|Dw|r:
(3a)在时频幅度谱|Dw|的所有列向量中,按照时间顺序依次选取未处理的一列,作为当前要处理的傅里叶幅度谱;
(3b)利用哈希函数为当前傅里叶幅度谱中的谱元素生成新的排列顺序,并按此顺序重新排列这些谱元素得到重排傅里叶幅度谱;
(3c)判断是否已处理完|Dw|的所有列,若是,执行步骤(3d),否则,返回步骤(3a);
(3d)将所有的重排傅里叶幅度谱均作为列向量,按时间顺序排列,构成重排时频幅度谱|Dw|r;
(4)生成增强时频幅度谱|Sw|:
(4a)在[6,10]的范围内选择一个整数Q,作为估计重排时频幅度谱|Dw|r中噪声强度所使用的列数,使用|Dw|r的前Q列重排傅里叶幅度谱估计|Dw|r中的噪声强度;
(4b)根据(4a)中估计的噪声强度,利用鲁棒主成分分析算法对重排时频幅度谱 |Dw|r进行增强,生成稀疏重排时频幅度谱|Sw|r;
(4c)根据(3b)中生成的排列顺序,恢复|Sw|r的所有列中傅里叶幅度谱元素的排列顺序,得到增强时频幅度谱|Sw|;
(5)组成增强时频谱Sw:
用增强时频幅度谱|Sw|和时频相位谱∠Dw组成增强时频谱Sw;
(6)重构白化增强语音yw(n):
(6a)在增强时频谱Sw的所有列向量中,按照时间顺序依次选取未处理的一列,作为当前要处理的增强傅里叶谱;
(6b)对当前要处理的增强傅里叶谱做逆傅里叶变换得到一帧白化短时增强语音;
(6c)判断是否已处理完Sw的所有列,若是,执行步骤(6d),否则,返回步骤(6a);
(6d)使用重叠相加Overlapped Add法,将所有的白化短时增强语音帧重构成完整的白化增强语音yw(n);
(7)生成增强语音y(n):
利用(1a)中得到的白化滤波器对白化增强语音yw(n)做逆白化处理,得到增强语音 y(n)。
与现有技术相比,本发明具有如下优点:
第一,本发明中增加了白化这一处理过程,当背景噪声为有色噪声时,可以将 该有色噪声转变为白噪声,提升了消除有色噪声的能力;而且白化处理并不影响本 发明在白噪声环境中的降噪能力;
第二,由于本发明在生成增强时频幅度谱之前利用哈希函数映射的方法对原时频幅度谱每一列谱元素的排列顺序进行了打乱重排,使得本发明中低秩语音成分变 为接近满秩而不再具有低秩的特性,有效地将低秩语音成分保留在了增强语音之中, 提高了增强语音的质量。
具体实施方式
下面参照附图1对本发明方法的实现步骤作进一步详细描述。
步骤1,生成白化含噪语音xw(n)。
(1.1)在[1000,1500]的范围内任选一个整数值作为样本点数N,取含噪语音 x(n)前N个采样点建立白化滤波器;建立白化滤波器的具体步骤如下:
第1步,在[30,50]的范围内选择一个整数p作为白化滤波器的阶次,利用含噪语音x(n)前N个采样点建立p阶线性预测器,该线性预测器的传递函数为
并使用自相关法求解线性预测器的系数a
i(i=1,2,…,p);
第2步,使用p阶线性预测器建立p阶白化滤波器,该白化滤波器的传递函数为
(1.2)利用(1.1)得到的白化滤波器对含噪语音x(n)进行白化处理,得到白 化含噪语音xw(n)。对含噪语音x(n)进行白化处理是指:利用本步骤的第(1.1)步中建立 的p阶白化滤波器对含噪语音x(n)进行滤波。
步骤2,生成白化含噪语音xw(n)的时频幅度谱|Dw|和时频相位谱∠Dw。
(2.1)在[20,40]毫秒的范围内任选一个值作为每一帧语音信号的时长,并在帧长度 ×[25%,75%]的范围内选取一个值作为后一帧语音相对于前一帧语音的位移量,将白化含 噪语音xw(n)分为多个短时语音帧。
(2.2)在所有的短时语音帧中,按照时间顺序依次选取未处理的一帧短时语音作为当前 要处理的帧。
(2.3)对当前要处理的短时语音帧做傅里叶变换,得到该帧的傅里叶谱,计算傅里叶谱的幅度和相位获得傅里叶幅度谱与傅里叶相位谱。
(2.4)判断是否已处理完所有的短时语音帧,若是,则执行本步骤的第(2.5)步,否则, 执行本步骤的第(2.2)步。
(2.5)将每一帧的傅里叶幅度谱作为一个列向量,按时间顺序排列,构成白化含噪语音的时频幅度谱|Dw|,将每一帧的傅里叶相位谱作为一个列向量,按时间顺序排列,构成白化含噪语音的时频相位谱∠Dw,这里,时频幅度谱|Dw|和时频相位谱∠Dw均为矩阵且|Dw|∈Rm×n,∠Dw∈Rm×n,其中∈表示元素属于集合,R表示矩阵|Dw|和矩阵∠Dw中的 元素均为实数,m为矩阵|Dw|和矩阵∠Dw的行数,n为矩阵|Dw|和矩阵∠Dw的列数。
步骤3,生成重排时频幅度谱|Dw|r。
(3.1)在时频幅度谱|Dw|的所有列向量中,按照时间顺序依次选取未处理的一列,作为当前要处理的傅里叶幅度谱。
(3.2)利用哈希函数为当前傅里叶幅度谱中的谱元素生成新的排列顺序,并按此顺序重新排列这些谱元素得到重排傅里叶幅度谱,具体步骤如下:
设当前傅里叶幅度谱为X=[x1,x2,…,xm]T∈Rm×1,其中,X为列向量,x1,x2,…,xm是m 个谱元素且各个谱元素的下标1,2,…,m表示其在傅里叶幅度谱中的排列顺序,T表示向量 转置操作,∈表示元素属于集合,R表示谱元素均为实数;
(3.2.1)在[2,m)的范围内选择一个与m互质的整数a,在[0,m)的范围内选择一个整 数b,构造一个哈希函数f(k)=(ak+b)m+1,其中,(·)m表示取模运算,k表示谱元素的 下标,且k=1,2,…,m;
(3.2.2)使用哈希函数f(k)将谱元素原来的下标序列1,2,…,m映射为新的下标序列f(1),f(2),…,f(m);
(3.2.3)根据新的下标序列f(1),f(2),…,f(m)重新排列这些谱元素得到重排傅里叶 幅度谱Xr=[xf(1),xf(2),…,xf(m)]T∈Rm×1。
(3.3)判断是否已处理完|Dw|的所有列,若是,则执行本步骤的第(3.4)步,否则,执行本步骤的第(3.1)步。
(3.4)将所有的重排傅里叶幅度谱均作为列向量,按时间顺序排列,构成重排时频幅度谱|Dw|r。
步骤4,生成增强时频幅度谱|Sw|。
(4.1)在[6,10]的范围内选择一个整数Q,作为估计重排时频幅度谱|Dw|r中噪声强度所使用的列数,使用|Dw|r的前Q列重排傅里叶幅度谱估计|Dw|r中的噪声强度。
(4.2)根据本步骤的第(4.1)步中估计的噪声强度,利用鲁棒主成分分析算法对重排时频幅度谱|Dw|r进行增强,生成稀疏重排时频幅度谱|Sw|r。
所述的鲁棒主成分分析算法是指:利用增广拉格朗日乘子ALM法对重排时频幅 度谱|Dw|r的鲁棒主成分分析算法模型进行优化求解,分解重排时频幅度谱|Dw|r,得 到稀疏重排时频幅度谱|Sw|r和低秩重排时频幅度谱|Lw|r。具体优化过程为:
在|D
w|
r=|L
w|′
r+|S
w|′
r条件下,找到一个稀疏重排时频幅度谱|S
w|
r矩阵和低秩重排 时频幅度谱|L
w|
r矩阵,使得|||L
w|
r||
*+λ|||S
w|
r||
1的值最小,即
其中,|Sw|′r表示包含噪声信息的低秩重排时频幅度谱,|Lw|′r表示包含语音信息的稀疏重排时频幅度谱,||·||*表示核范数操作,λ表示权重,||·||1表示1范数操作。
(4.3)根据步骤3的第(3.2)步中生成的排列顺序,恢复|Sw|r的所有列中傅里叶幅度谱元素的排列顺序,得到增强时频幅度谱|Sw|。
步骤5,组成增强时频谱Sw。
利用步骤4中生成的增强时频幅度谱|Sw|和步骤2的第(2.5)步中得到的时频相位谱∠Dw组成增强时频谱Sw。
步骤6,重构白化增强语音yw(n)。
(6.1)在增强时频谱Sw的所有列向量中,按照时间顺序依次选取未处理的一列,作为当前要处理的增强傅里叶谱。
(6.2)对当前要处理的增强傅里叶谱做逆傅里叶变换得到一帧白化短时增强语音。
(6.3)判断是否已处理完Sw的所有列,若是,则执行本步骤的第(6.4)步,否则, 执行步骤本步骤的第(6.1)步。
(6.4)使用重叠相加Overlapped Add法,将所有的白化短时增强语音帧重构成 完整的白化增强语音yw(n)。
步骤7,生成增强语音y(n)。
利用步骤1第(1.1)步中得到的白化滤波器对步骤6中得到的白化增强语音yw(n)做逆白化处理,得到增强语音y(n)。
所述利用步骤1第(1.1)步中得到的白化滤波器对步骤6中得到的白化增强语音yw(n)做逆白化处理,得到增强语音y(n)的步骤如下。
(7a)利用步骤1第(1.1)步中得到的白化滤波器建立逆白化滤波器,该逆白化 滤波器的传递函数为WI(z)=1/W(z)。
(7b)使用逆白化滤波器对白化增强语音yw(n)进行滤波得到增强语音y(n)。
结合以下的仿真对本发明应用效果作进一步的说明:
1.仿真条件
本发明的仿真实验通过MATLAB仿真软件实现,设定语音采样率为8000赫兹,每帧短时语音时长为32毫秒,后一帧语音相对于前一帧语音的位移量为16毫秒。取含噪语音 前1024个采样点建立40阶白化滤波器。本发明仿真使用Exact ALM(Exact AugmentedLagrange Multiplier)方法求解鲁棒主成分分析算法,其中,鲁棒主成分分析算法的权重参数 与重排傅里叶幅度谱|Dw|r中的噪声强度有关,可通过如下公式自适应确定:
λ=-0.004×ζ+0.1181
其中,λ表示鲁棒主成分分析算法的权重参数,ζ表示重排傅里叶幅度谱|Dw|r中 的信噪比的估计值。具体的,ζ可以通过如下公式确定:
其中,ζ表示重排傅里叶幅度谱|D
w|
r中的信噪比的估计值,log
10(·)表示求取以10为底的对数操作,∑表示求和操作,
表示矩阵|D
w|
r中第i行第j列位置 的谱元素的平方,m为矩阵|D
w|
r的行数,n为矩阵|D
w|
r的列数,Q表示|D
w|
r中无语 音谱的列数,本发明的仿真实验中设定为8.
2.仿真内容
本发明的仿真实验有三个。仿真实验1是有色噪声的白化实验,用来说明本发 明中白化处理的有效性。图2是仿真实验1得到的有色噪声F16噪声的时频幅度谱 俯视图与他的白化信号的时频幅度谱俯视图的对比结果图。图2(a)表示有色噪声F16 噪声的时频幅度谱俯视图,图2(a)表示有色噪声F16经过白化后得到的信号的时频 幅度谱俯视图。图2中每个时频幅度谱中的横轴表示时间轴,单位为秒,纵轴表示 频率轴,单位为千赫兹,并且,每个时频幅度谱以对数谱的形式展现,谱值单位为 分贝。
仿真实验2是对利用本发明的方法与现有的基于鲁棒主成分分析算法的语音增强方法的语音增强效果进行直观对比,得到图3的时频幅度谱直观对比图。本发明 仿真实验2中一段干净语音被有色噪声F16所污染,信噪比为5分贝,分别用本发 明的方法与现有的基于鲁棒主成分分析算法的语音增强方法进行语音增强。图3(a) 表示干净语音的时频幅度谱俯视图,图3(b)表示有色噪声F16的时频幅度谱俯视图, 图3(c)表示基于鲁棒主成分分析算法的语音增强方法所得语音成分的时频幅度谱俯 视图,图3(d)表示基于鲁棒主成分分析算法的语音增强方法所得噪声成分的时频幅 度谱俯视图,图3(e)表示本发明方法所得的语音成分时频幅度谱俯视图,图3(f)表 示本发明方法所得的噪声成分的时频幅度谱俯视图。图3中每个时频幅度谱中的横 轴表示时间轴,单位为秒,纵轴表示频率轴,单位为千赫兹,并且,每个时频幅度 谱以对数谱的形式展现,谱值单位为分贝。
仿真实验3是对利用本发明方法与现有的基于鲁棒主成分分析算法的语音增强方法在六种不同类型的有色噪声(buccaneer1、buccaneer2、f16、factory1、hfchannel 与pink)中的平均语音增强效果进行对比,其结果如图4所示。图4为仿真实验3 本发明与现有的基于鲁棒主成分分析算法的语音增强方法在六种不同类型有色噪 声条件下的平均语音增强效果客观指标对比图,其中语音增强效果分别用两种客观 指标衡量,即源失真比与语音质量感知评估,源失真比衡量的是增强语音中包含的 语音信号能量与噪声能量之比,以分贝为单位,而语音质量感知评估是对增强语音 的主观可懂度进行评估的指标,两种指标的数值越大代表语音增强效果越好。图4(a) 中以圆形标示的曲线表示本发明方法在上述六种有色噪声污染下所得增强语音的 平均信号失真比受信噪比影响的变化曲线。图4(a)中以菱形标示的曲线表示了基于 鲁棒主成分分析算法的语音增强方法,在上述六种有色噪声污染下所得增强语音的 平均信号失真比受信噪比影响的变化曲线。图4(a)中的横坐标表示含噪语音信噪比, 单位为分贝,纵坐标表示源失真比,单位为分贝。图4(b)中以圆形标示的曲线表示 本发明方法,在上述六种有色噪声污染下所得增强语音的平均语音质量感知评估指 标受信噪比影响的变化曲线。图4(b)中以菱形标示的曲线表示基于鲁棒主成分分析 算法的语音增强方法,在上述六种有色噪声污染下,所得增强语音的平均语音质量感知评估指标受信噪比影响的变化曲线。图4(b)中的横坐标表示信噪比,单位为分 贝,纵坐标表示语音质量感知评估。
3.仿真结果分析:
从图2可见,有色噪声F16的能量主要集中在0赫兹~1.5千赫兹和2.5千赫兹 ~3千赫兹频段,在白化后,信号的能量基本均匀分布在0赫兹~4千赫兹整个频段 内,这种能量均匀分布的特点与白噪声相同。因此,本发明中的白化处理步骤在将 色噪声转换为白噪声这一方面是有效的。
从图3可见,其中图3(d)的由基于鲁棒主成分分析算法的语音增强方法所得的 噪声成分时频幅度谱残留了大量的语音成分,而图3(f)本发明方法所得的噪声成分 时频幅度谱中残留的语音成分却极少;同时,图3(e)中的语音成分能量大于图3(c), 直观地体现出了本发明的算法具有更好的语音增强效果。其原因在于,本发明方法 通过将每帧傅里叶谱元素的排列顺序打乱,降低了低秩语音成分的时频幅度谱帧与 帧之间的相似性,缓解了低秩语音成分被错误分解的情况,提高了语音增强的效果。
从图4可见,本发明方法得到的源失真比曲线在基于鲁棒主成分分析算法的语 音增强方法得到的源失真比曲线之上。对于语音质量感知评估指标,在含噪语音信 噪比为0dB和-5dB的情况下,本发明方法的得分稍低于基于鲁棒主成分分析算法的 语音增强方法的得分。以两种指标综合来看,本发明的方法在多种有色噪声环境中, 都具有较好的噪声消除能力,同时尽可能地将更多的语音成分保留在了增强语音之 中,具有良好的语音增强效果。
以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本 领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和 改变仍在本发明的权利求保护范围之内。