一种基于移动平台的语音降噪方法与流程

文档序号:16092391发布日期:2018-11-27 23:10阅读:289来源:国知局

本发明属于助听设备技术领域,尤其是一种基于移动平台的语音降噪方法。



背景技术:

在我们身边有比较多的老年人,他们年纪慢慢变大的同时,耳朵的有些功能也会渐渐地衰弱,一些老人年纪大了就会产生耳背、听不清声音的情况,有些家庭会买助听器来帮助老人解决这些问题。对比我们国家的助听器和国外的来说,国外的技术更为先进、方便,但是价格成本也会随之升高,对于一些家里没那么富裕的家庭来说,可能承受不起助听器的价格,给老年人的生活带来了极大的不便。因此亟需一种新的成本低的助听器或相关设备来满足使用需求。

现在市面上的也有一些比较廉价的移动平台,对绝大多数家庭来说可以负担得起,因此本发明通过使用这些移动平台,运用最小均方误差估计(MMSE)的方法实现语音的降噪,通过使用Android Studio用JAVA的语言来写成移动平台,而且要在电脑上通过程序语音显示波形,对比查看效果,表示MMSE可以实现语音增强和消噪的功能。

单通道的语音降噪和增强有比较多的方法,比如谱减法、MMSE。谱减法是一种发展较早且应用较为成熟的语音去噪算法,该算法利用加性噪声与语音不相关的特点,在假设噪声是统计平稳的前提下,用无语音间隙测算到的噪声频谱估计值取代有语音期间噪声的频谱,与含噪语音频谱相减,从而获得语音频谱的估计值。谱减法具有算法简单、运算量小的特点,便于实现快速处理,往往能够获得较高的输出信噪比,所以被广泛采用。

基本原理:假设语音中的噪声只有加性噪声,只要将带噪语音谱减去噪声谱,就可以得到纯净语音幅度。这么做的前提是噪声信号是平稳的或者缓慢变化的。得到纯净信号的幅度谱后,可以结合带噪语音相位(近似带替纯净语音相位),从而得到近似的纯净语音,可以这么做的原因是因为语音信号相位不会对语音可懂度造成影响。

按上述所示,如果设y(n)为受噪声污染的信号,则y(n)由纯净语音信号x(n)和加性噪声d(n)组成,即:y(n)=X(n)+d(n)。其傅里叶变换后表示为:Y(ω)=X(ω)+D(ω),或写为:

X(ω)=Y(ω)–D(ω),如果用功率谱表示可以写为:

这里被称为交叉项,假定d(n)具有0均值,并且与x(n)不相关,则交叉项为0,上述公式简化为:

|Y(ω)|2=|X(ω)|2+|D(ω)|2

或写为:

|X(ω)|2=|Y(ω)|2-|D(ω)|2

谱相减法利用在无声期间统计得到的噪声方差来代替当前帧的噪声频谱时,若该帧某频点上的噪声分量较大,则相减后会有较大的噪声残留,频谱上有相应的随机尖峰出现。增强后的语音会夹杂着残留噪声。

由于MMSE这个方法相对于谱减法更可以有效地实现语音降噪,所以本发明围绕MMSE的方法来设计的。

通过检索,尚未发现与本发明专利申请相关的专利公开文献。



技术实现要素:

本发明的目的在于克服现有技术的不足之处,提供一种基于移动平台的语音降噪方法,该方法通过使用MMSE算法运用移动平台可以有效地进行语音降噪。

本发明解决其技术问题所采用的技术方案是:

一种基于移动平台的语音降噪方法,步骤如下:

步骤1.对带噪声语音信号进行分帧:假设帧长为M,帧间相叠为M/2,某一帧信号表示为:其中k表示这一帧第一个信号点在整个语音序列中序号,表示纯净语音序列,表示噪声序列,表示带噪语音序列;

步骤2.搜索最大自相关函数峰值,求系数αmax:αmax=max{α(l),0<Lmin≤1≤Lmax},其中Lmin与Lmax分别为可能的最小、最大基音周期,αmax为最大自相关峰值;

步骤3.信号预加重:利用最大自相关峰值对信号预加重,得到最大自相关函数峰值后,利用这一数值对当前帧进行加权处理;加权过程使用一个梳状滤波器,由当前帧与最大相关序列加权而成:其中δ为相关大小阈值,lmax为最大峰值位置;

步骤4.计算加权系数β:加权方法在基音过渡的时间会把语音的信号过多削弱,为了消除影响,用平滑系数β代替αmax,β=λβ+(1-λ)αmax,λ为平滑系数,计算β为平滑后的加权系数;

步骤5.对语音加权,得到增强帧:语音在大多数情况下是周期信号,语音得到了加强,噪声一般为非周期信号,就得到削弱;

步骤6.计算输出增强语音:加余弦窗,帧间叠加,得到增强语音,为了最后相叠部分衔接平滑,对每一帧的结果乘以一个余弦窗C,然后前后重叠M/2相叠加;其中C={c1,c2,...cM},

步骤7.重新分帧:语音增强前,要对预加重语音结果重新分帧,设帧长为P,帧间相叠P/2;

步骤8.MMSE增强优化处理:①假设带噪信号y(t)=x(t)+w(t);x(t),w(t)分别代表纯净语音和噪声语音,②Yk=Rk exp(jθk),Wk,Xk=Akexp(jαk)分别代表带噪信号,噪声和纯净语音的第k个频谱分量;③需要由Y0,Y1,...,YN估计出Ak:Γ(·)是伽马函数,I0(·)与I1(·)分别表示零阶和一阶修正贝赛尔函数,

ζ由下式来估计:增益形式:其中:得到后,进行反傅里叶变换得到增强语音;

步骤9.得到需要的降噪语音。

本发明取得的优点和积极效果是:

1、本发明方法通过使用MMSE算法运用移动平台可以有效地进行语音降噪,本发明具有成本低、运用广、方便修改的特点,可以为一些听觉有些许障碍的人提供方便,有时候可以代替助听器的功能,本发明可以在噪声环境下对接收到的语音实现基本降噪的功能。

2、将发明方法使用Android Studio用JAVA的语言来写成APP,而且要在电脑上通过编程语言显示波形,对比查看效果,表明实现的功能,可以比较实时的接收语音,可以改变收到语音音量的大小,十分地方便,还可以针对不同的噪声环境,能够实时地通过移动平台进行语音降噪处理。

3、本发明方法不会对环境造成污染,而且没有安全的隐患,不涉及他人的安全问题,遵守国家的法律法规,不对国家造成任何的影响。

附图说明

图1为利用本发明方法的APP的主界面图;

图2为利用本发明方法的APP的录含噪语音的界面图;

图3为利用本发明方法的APP的点击停止后的界面图;

图4为利用本发明方法的APP的点击退出的界面图;

图5为利用本发明方法的APP的进过处理后的提示图;

图6为利用本发明方法的APP的降噪前和降噪后语音波形对比图。

具体实施方式

下面详细叙述本发明的实施例,需要说明的是,本实施例是叙述性的,不是限定性的,不能以此限定本发明的保护范围。

本发明中所使用的原料,如无特殊说明,均为常规的市售产品;本发明中所使用的方法,如无特殊说明,均为本领域的常规方法。

所提出的系统的输入是0.2-3.2kHz带宽的8kHz采样语音,其被不相关的附加噪声降级。每个分析帧由退化语音的256个样本组成,并与先前的分析帧与192个样本重叠,通过离散的短时傅立叶变换(DSTFT)分析BMMSE,Bw使用汉宁窗口进行频谱分解。然后估计语音信号的STSA,并与噪声相位的复指数组合。

运用MMSE幅度估计器Ak时,通过精确计算以及使用查找表来检查其实现。当输入SNR在[-5,5]dB这个阶段,利用先决SNR的“决策导向”时,使用每个增益函数的961个样本,这些样本是由均匀采样范围-15≤(ξ,γ-1)或(η,γ-1)≤15dB。通过非正式聆听判断,增益函数的这种采样对增强信号产生了可忽略的附加残余噪声。因此,尽管在这里使用更复杂的幅度估计器,但是利用MMSE幅度估计器操作的所提出的系统可以以与其他常用系统类似的复杂度来实现。

这里提出的系统用于增强由静止噪声降级的语音。因此,从具有320毫秒的持续时间的初始噪声段估计噪声频谱分量的方差只有一次。

提出了一种用于在单独有噪声的语音可用时增强由不相关的加性噪声降低的语音的算法。这里采取的基本方法是对语音信号的相位的短时频谱幅度(STSA)和复指数进行最佳估计(在MMSE标准和假设统计模型下)。由于语音信号的STSA而不是其波形在语音感知中是非常重要的,因此使用这种分别优化估计短时傅里叶变换(STFT)的两个分量的方法,而不是最佳地估计STFT本身。可以看出,STSA和复指数不能以最佳方式同时估计。所以,最佳MMSE STSA估计器的运用中,和不影响STSA估计的相位复指数的最优MMSE估计器相结合。

当SNR低时,MMSE STSA估计器导致显着更少的MSE和偏差。这个事实支持本发明方法,从噪声观测中直接估计感知重要的STSA,而不是从另一个估计器(例如,从维纳一个估计器)推导出来。

MMSE STSA估计器取决于其基于的统计模型的参数。可以看出,进过计算对先验SNR使用特征不一样的估计量,可以得到不一样的STSA估计。运用估计先验SNR的“功率谱减法”导致STSA估计器几乎等于“频谱减法”STSA估计器。

在这里提出了一种用于估计先验SNR的“决策导向”方法。当将其应用于MMSE或Wiener STSA估计器时,发现该方法是有用的。通过将该估计与MMSE STSA估计器相结合,考虑到噪声观测中信号存在的不确定性,我们获得了最好的语音增强结果。具体地,可以获得输入噪声的显着降低,并且残留噪声听起来是无色的。

一种基于移动平台的语音降噪方法,步骤如下:

步骤1.对带噪声语音信号进行分帧:假设帧长为M,帧间相叠为M/2,某一帧信号表示为:其中k表示这一帧第一个信号点在整个语音序列中序号,表示纯净语音序列,表示噪声序列,表示带噪语音序列;

步骤2.搜索最大自相关函数峰值,求系数αmax:αmax=max{α(l),0<Lmin≤1≤Lmax},其中Lmin与Lmax分别为可能的最小、最大基音周期,αmax为最大自相关峰值;

步骤3.信号预加重:利用最大自相关峰值对信号预加重,得到最大自相关函数峰值后,利用这一数值对当前帧进行加权处理;加权过程使用一个梳状滤波器,由当前帧与最大相关序列加权而成:其中δ为相关大小阈值,lmax为最大峰值位置;

步骤4.计算加权系数β:加权方法往往在基音过渡的时间会把语音的信号过多削弱,为了消除影响,用平滑系数β代替αmax,β=λβ+(1-λ)αmax,λ为平滑系数,计算β为平滑后的加权系数;

步骤5.对语音加权,得到增强帧:语音在大多数情况下是周期信号,语音得到了加强,噪声一般为非周期信号,就得到削弱;

步骤6.计算输出增强语音:加余弦窗,帧间叠加,得到增强语音,为了最后相叠部分衔接平滑,对每一帧的结果乘以一个余弦窗C,然后前后重叠M/2相叠加;其中C={c1,c2,...cM},

步骤7.重新分帧:预加重后,语音的信噪比有很大提高,进一步增强可消除残余噪声。语音增强前,要对预加重语音结果重新分帧,设帧长为P,帧间相叠P/2;

步骤8.MMSE增强优化处理:①假设带噪信号y(t)=x(t)+w(t);x(t),w(t)分别代表纯净语音和噪声语音,②Yk=Rk exp(jθk),Wk,Xk=Akexp(jαk)分别代表带噪信号,噪声和纯净语音的第k个频谱分量;③需要由Y0,Y1,...,YN估计出Ak:Γ(·)是伽马函数,I0(·)与I1(·)分别表示零阶和一阶修正贝赛尔函数,

ζ由下式来估计:增益形式:其中:得到后,进行反傅里叶变换得到增强语音;

步骤9.得到需要的降噪语音。

具体应用实施例:

通过MMSE的方法实现语音降噪,根据编程程序用Java的语言来开发一个APP,要基本实现实时的语音降噪,而且控制播放音量的大小,UI界面和安卓的程序相互转发,先把录制的语音发到移动平台,通过UI界面控制实现语音的控制,通过UI界面的控制使处理过的语音发到程序里,再发送到耳机,随后耳机会播放出经过处理的语音。

步骤:

1)把安卓的APP放入移动平台,在移动平台中的设置把本发明的录音功能打开;

2)打开APP,UI的界面中点击“边录边放(未消噪)”,对准麦克风的说话,查看耳机是否回传来自己的声音,查看是否正确。

3)点击“单通道消噪”,之后对麦克风说自己要进行降噪的话,之后点击“停止”。录制的语音将会传到移动平台里进行降噪处理。

4)等待5到10秒钟,MMSE的方法处理完成后,界面显示“降噪处理完成,点击降噪结果播放”。

5)点击“消噪后的结果”,进行过处理后的语音会通过耳机传出来。

图1至图5是APP的界面与各个功能使用后的效果显示图。

电脑编程程序通过波形图来显示消噪后的结果,从网上下载了一段包含噪声的语音,对这段语音数据通过仿真。第一条波形为本语音原本的语音波形,是没有进过消噪的,第二条波形为通过MMSE的方法去噪后的波形。降噪前和降噪后语音波形对比如图6所示。

从图6可以看出,经过MMSE处理后波形和处理前的波形差异比较明显,处理前的波形中间部分比较粗壮,而处理后的波形变得基本没有太多的噪声,也证明MMSE的方法可以很好的消噪。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1