自适应语音增强方法和电子设备与流程

文档序号:17440000发布日期:2019-04-17 04:38阅读:253来源:国知局
自适应语音增强方法和电子设备与流程

本申请涉及信息处理技术领域,特别涉及一种自适应语音增强方法和电子设备。



背景技术:

现实生活中,由于说话人经常要处于各种嘈杂的环境中,语音信号不可避免的会受到背景噪声的污染,背景噪声使许多语音处理系统的性能急剧下降。语音增强作为一种信号处理方法,是解决噪声污染的一种高效途径。一方面,通过进行语音增强,可以提高噪声环境下语音的清晰度,可懂度和舒适度,改善人的听觉感知质量;另一方面,语音增强也是语音处理系统中必不可少的环节,在进行各种语音信号处理操作前首先要进行语音增强,以减小噪声对语音处理系统的影响,提高系统的工作技能。

语音增强最主要包括噪声估计和滤波器系数求解两部分。代表性的语音增强方法包括谱减法、维纳滤波法、最小均方误差估计法、子空间法、基于小波变换的增强方法等。这些方法大都基于频率中语音和噪声分量的统计模型,并结合各种估计理论来设计具有针对性的噪声消除技术。

现有技术中的语音增强算法中,存在噪声估计不准确,算法复杂的问题。



技术实现要素:

本申请部分实施例的目的在于提供一种自适应语音增强方法,使得对于噪声的估计更加准确,且降低了算法的复杂度,从而有利于对语音信号进行增强,改善人的听觉感知质量。

本申请实施例提供了一种自适应语音增强方法,包括:在接收到语音信号后,根据语音信号,计算语音信号的当前帧的功率;将当前帧的功率与前一帧的噪声功率进行比较;根据比较的结果和前一帧的噪声功率,获取当前帧的噪声估计值;根据噪声估计值,获取纯净语音信号。

本申请实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的自适应语音增强方法。

本申请实施例相对于现有技术而言,根据接收的语音信号,计算语音信号的当前帧的功率,将当前帧的功率与前一帧的噪声功率进行比较、根据比较的结果和前一帧的噪声功率,获取当前帧的噪声估计值。对于噪声的估计无需利用vad算法以检测区分当前帧是语音帧还是噪声帧,从而可以避免由于vad算法检测的不准确将导致噪声估计的偏差很大,有利于快速估计语音信号中的噪声成分。本申请采用了迭代的估计方法,每一帧的噪声功率都会进行自适应更新,将当前帧的功率与前一帧的噪声功率进行比较,估计当前帧的噪声值,在不断的迭代过程中,也使得估计的噪声值越来越精准。而且,本申请中,对每一帧都重新计算其功率,能够实现噪声的连续估计和不断更新,只需要将当前帧的功率与前一帧的噪声功率对比,不需要存储前d帧数据和按照功率大小进行排序,从而减小了算法资源开销,降低了算法的复杂度。根据噪声估计值,获取纯净语音信号,有利于对语音信号进行增强,改善人的听觉感知质量。

例如,当前帧的功率具体为:当前帧的对数功率谱;前一帧的噪声功率具体为:前一帧的对数分位数。对数坐标能够放大细节,可以提取出一般坐标刻度下提取不出的信号,有利于压缩数值的动态范围,使得在对数坐标系下,当前帧的对数功率谱和前一帧的对数分位数之间的比较更加精确,从而有利于后续的精准处理。

例如,根据比较结果和前一帧的噪声功率,获取当前帧的噪声估计值,具体包括:根据当前帧的对数功率谱与前一帧的对数分位数的比较结果,获取当前帧的增量步长;根据前一帧的对数分位数和当前帧的增量步长获取当前帧的对数分位数;根据所述当前帧的对数分位数,获取当前帧的噪声估计值。当前帧的增量步长为获取当前的帧的对数分位数提供有针对意义的参考,有利于准确的获取当前帧的对数分位数,从而对前帧的噪声值进行准确的估计。

例如,根据前一帧的对数分位数和当前帧的增量步长获取当前帧的对数分位数,具体包括:若当前帧的对数功率谱大于或等于前一帧的对数分位数,则根据增量步长将前一帧的对数分位数自适应增加,得到当前帧的对数分位数;若当前帧的对数功率谱小于前一帧的对数分位数,则根据增量步长将前一帧的对数分位数自适应减小,得到当前帧的对数分位数。通过将前一帧的对数分位数根据增量步长进行自适应的增加或减小,有利于准确的获取当前帧的对数分位数。

例如,根据当前帧的对数功率谱与前一帧的对数分位数的比较结果,获取当前帧的增量步长,具体包括:根据当前帧的对数功率谱与前一帧的对数分位数的比较结果,获取密度函数;根据密度函数获取当前帧的增量步长,提供了一种获取当前帧的增量步长的方式。

例如,获取密度函数,具体用过以下公式获取密度函数density:

其中,所述λ为当前帧的帧号,所述k为频点数,所述β为实验的经验值,所述ξ为预设的门限阈值,所述log(|yw(λ)|2)为当前帧的对数功率谱,所述lq(λ-1,k)为前一帧的对数分位数;提供了一种获取密度函数的具体计算公式,有利于快速准确地获取密度函数。

例如,根据密度函数获取当前帧的增量步长,具体通过以下公式获取增量步长delta:

其中,λ为当前帧的帧号,k为增量步长控制因子,density(λ-1,k)为前一帧的密度函数,提供了一种获取增量步长的具体计算公式,有利于快速准确地获取增量步长。

例如,根据增量步长将前一帧的对数分位数自适应增加,得到当前帧的对数分位数,具体通过以下公式得到当前帧的对数分位数:lq(λ,k)=lq(λ-1,k)+α·delta(λ,k)/β;根据增量步长将前一帧的对数分位数自适应减小,得到当前帧的对数分位数,具体包括:具体通过以下公式得到当前帧的对数分位数:lq(λ,k)=lq(λ-1,k)-(1-α)·delta(λ,k)/β;其中,λ为当前帧的帧号,k为频点数,α为实验的经验值,delta(λ,k)为增量步长。提供了自适应增加和减小对数分位数的计算公式,有利于直接、快速并准确的获取当前帧的对数分位数。

例如,根据噪声估计值,获取纯净语音信号,具体包括:获取语音信号的当前帧的功率谱;根据噪声估计值,获取谱增益系数;根据谱增益系数获取当前帧的纯净语音信号,有利于自适应的跟踪每一帧噪声的变化,对每一帧均进行语音增强,提高噪声环境下语音的清晰度,可懂度和舒适度,减小噪声对语音处理系统的影响,提高系统的工作技能。

例如,根据噪声估计值,获取谱增益系数,具体包括:根据前一帧的噪声估计值和前一帧的纯净语音信号,计算先验信噪比;根据当前帧的噪声估计值和当前帧的功率,计算后验信噪比;根据先验信噪比和后验信噪比获取谱增益系数,提供了一种获取谱增益系数的方式。

例如,根据先验信噪比和后验信噪比获取谱增益系数,具体包括:根据以下公式获取谱增益系数:

其中,γk为后验信噪比,ξk为先验信噪比,p为感知加权阶数,β为高阶幅度谱的阶数。提供了一种获取谱增益系数的具体计算公式,有利于准确快速的获取谱增益系数。

例如,计算若干个子带的信噪比,具体包括:通过以下公式计算所述若干个子带的信噪比:

其中,b为子带的序号,k为频点数,blow(b)为bark域第b个子带的频点起点,bup(b)为bark域第b子带的频点终点,考虑到了人耳对语音在bark域更加的敏感和人耳掩蔽机制,有利于改善人的听觉感知质量。

例如,根据若干个子带的信噪比计算感知加权阶数,具体为:通过以下公式计算所述感知加权阶数p:

p(b,k)=max{min[α1snr(b,k)+α2,pmax],pmin}

其中,α1,α2,pmin和pmax均为实验经验值。提供了一种获取感知加权阶数的具体计算公式,有利于准确快速的获取感知加权阶数。

例如,具体通过以下方式得到:根据预存的γ函数的输入输出对应关系查询具体通过以下方式得到:根据预存的φ函数的输入输出对应关系查询采用根据对应关系查询的方式,使得该方法的计算复杂度大大降低,减小了运算量,更加具有工程适用性。

例如,根据谱增益系数获取纯净语音信号,具体通过以下公式获取:

其中,所述yw(k)为当前帧的信号幅值,提供了获取纯净语音信号的具体公式,有利于快速准确的得到当前帧的纯净语音信号。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是根据本申请第一实施例中的自适应语音增强方法的流程图;

图2是根据本申请第一实施例中的kaiser窗函数示意图;

图3是根据本申请第一实施例中的步骤104的子步骤的示意图;

图4是根据本申请第二实施例中的自适应语音增强方法的流程图;

图5是根据本申请第二实施例中的实现自适应语音增强方法的模块示意图;

图6是根据本申请第三实施例中的自适应语音增强方法的流程图;

图7是根据本申请第四实施例中的电子设备的结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请部分实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。

本申请第一实施例涉及一种自适应语音增强方法,包括:在接收到语音信号后,根据语音信号,计算语音信号的当前帧的功率;将当前帧的功率与自适应更新的噪声功率进行比较;其中,自适应更新的噪声功率为所述语音信号的前一帧的噪声功率;根据比较的结果,获取当前帧的噪声估计值;根据噪声估计值,获取纯净语音信号,使得对于噪声的估计更加准确,且降低了算法的复杂度,从而有利于对语音信号进行增强,改善人的听觉感知质量。下面对本实施方式的自适应语音增强方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。

本实施例的自适应语音增强方法能够运用于语音信号处理技术领域并适用于低功耗语音增强、语音识别、语音交互产品中,包括但不限于耳机、音响、手机、电视、汽车、可穿戴设备、智能家居等电子设备。

本实施例中自适应语音增强方法的具体流程如图1所示,包括:

步骤101:在接收到语音信号后,根据语音信号,计算语音信号的当前帧的功率。

具体的说,在接收到语音信号后可以对语音信号进行时域和频域的变换,得到频域语音,频域语音是描述语音信号在频率方面特性时用到的一种坐标系。语音信号从时间域变换到频率域主要通过傅立叶级数和傅立叶变换实现。周期信号靠傅立叶级数,非周期信号靠傅立叶变换。通常,语音信号的时域越宽,其频域越短。根据频域语音信号的当前帧的幅值得到当前帧的功率。

在一个例子中,假设对语音信号的采样速率为fs=8000hz,数据长度一般处理数据为8ms~30ms之间,对语音信号进行处理可以为64点并且重叠上一帧64个点,则实际一次处理128个点,即当前帧与上一帧的重叠率为50%,但在实际应用中,并不以此为限。对接收的语音信号进行预加重处理,提高语音信号的高频成分,具体的运算可以为:其中,α为平滑因子,本实施例中α可取值为0.98,但在实际应用中可根据实际需求进行不同的设置。y(n)为采样的当前帧的语音信号,y(n-1)为采样得到的上一帧的语音信号。

进一步的,在预加重处理后,为了减少频谱能量泄漏,可采用截取函数对信号进行截断,截断函数称为窗函数,即对语音信号进行加窗处理,窗函数设计可以根据不同运用场景可选择矩形窗、汉明窗、汉宁窗和高斯窗函数等,实际设计中可灵活选择,本实施例采用如图2所示的kaiser窗函数,重叠50%。

另外,由于计算语音信号的当前帧的功率通常在频域进行处理,所以可以将加窗数据通过以下公式,进行快速傅里叶变换fft,得到频域信号。

其中,k代表频点数,w(n)为kasier窗函数,n为128,即实际一次处理128个点,本实施例只是以n=128为例,但在实际应用中并不以此为限。m为帧数,n的取值可以为1到128。对于当前帧的功率的计算,可以对变换后的128个频点的频域信号求幅值,并分别对128个频点的幅值求平方得到。

步骤102:将当前帧的功率与前一帧的噪声功率进行比较。

具体的说,前一帧的噪声功率为自适应更新的噪声功率。在实际应用中,首先可以根据实验值初始化噪声功率,如果当前帧为第一帧,那么可以将当前帧的功率与初始化的噪声功率进行比较。自适应更新的噪声功率是指不同帧的噪声功率是不同的,设置噪声功率的初始值后,在迭代的过程中可自适应的更新当前帧的噪声功率。比如说,分别将当前帧的128个频点的功率和前一帧的128个频点的功率进行比较,自适应的更新当前帧中每一个频点对应的噪声功率。

步骤103:根据比较的结果和前一帧的噪声功率,获取当前帧的噪声估计值。

具体的说,如果当前帧的功率大于前一帧的噪声功率,则可以自适应的增大前一帧的噪声功率,以此作为当前帧的噪声估计值,比如说,可以预设增量步长,根据增量步长进行自适应的增加。较佳的,增量步长也可以在迭代的过程中自适应的更新。如果当前帧的功率小于前一帧的噪声功率,则可以自适应的减小前一帧的噪声功率,将减小后的噪声功率作为当前帧的噪声估计值。

步骤104:根据噪声估计值,获取纯净语音信号。

具体的说,步骤104可以包括如图3所示的如下子步骤:

步骤1041:根据前一帧的噪声估计值和前一帧的纯净语音信号,计算先验信噪比。

具体的说,先验信噪比的计算可以采用经典的改进判决引导方法,可以根据以下公式计算先验信噪比

其中,a为平滑因子,ξmin为预设的经验值,为所述前一帧的纯净语音信号功率,λ为当前帧的帧号。在一个例子中,a的取值可以为0.98,ξmin可根据经验取值为-15db,但在实际应用中并不以此为限。

需要说明的是,本实施方式以通过上述公式计算先验信噪比为例,但在实际应用中并不以此为限。

步骤1042:根据当前帧的噪声估计值和当前帧的功率,计算后验信噪比。

具体的说,可以根据以下公式计算后验信噪比:

其中,为当前帧的功率,λd(k)为当前帧的噪声估计值。

需要说明的是,本实施方式以通过上述公式计算后验信噪比为例,但在实际应用中并不以此为限。而且本实施例中并不限定步骤1041与步骤1042的执行顺序,在实际应用中,也可以先执行步骤1042再执行步骤1041,或者同时执行步骤1041和步骤1042。

步骤1043:计算感知加权阶数p。

具体的说,可以根据子带信噪比和bark域的特性自适应的计算参数p。具体的,在语音信号的频率谱中,可以将bark域划分为若干个子带,比如说:可以将bark域分为18个子带,每个子带的上限频率为:[100,200,300,400,510,630,770,920,1080,1270,1480,1720,2000,2320,2700,3150,3700,4400],根据人耳对语音在bark域更加的敏感,计算子带的信噪比,

通过以下公式计算若干个子带的信噪比:

其中,b为子带的序号,子带的序号1≤b≤18,k为频点数,blow(b)为bark域第b子带的频点起点,bup(b)为bark域第b子带的频点终点。进一步的,可以通过以下公式计算参数p:

p(b,k)=max{min[α1snr(b,k)+α2,pmax],pmin}

其中,α1,α2,pmin和pmax均为实验经验值,在本实施例中,比如说实验经验值的取值可以如下所示:α1=0.251,α2=-1.542,pmax=4,pmin=-1,但在实际应用中并不以此为限。

步骤1044:计算高阶幅度谱的阶数β。

具体的说,通过以下公式计算高阶幅度谱的阶数β:

其中,fs为采样频率,f(k)=kfs/n,代表fft以后每个频点代表的频率数,βmax和a为实验经验值。比如说,在本实施例中,上述经验值的取值可以分别如下:βmax=0.8,βmin=0.2,a=165.4hz,但在实际应用中并不以此为限。

需要说明的是,本实施方式并不限定步骤1043和步骤1044的执行顺序,在实际应用中,也可以先执行步骤1044再执行步骤1043,或者同时执行步骤1043和步骤1044。

步骤1045:根据先验信噪比、后验信噪比、感知加权阶数和高阶幅度谱的阶数获取谱增益系数。

具体的说,得到谱增益系数的核心思想可以为贝叶斯短时幅度谱估计,其代价函数为:

类似经典的mmse估计器的推导过程,可以得到:

假设xk和dk都是复高斯随机分布,可以得到:

其中,为先验信噪比的理论公式,由于实际中很难得到当前帧的纯净语音功率λx(k),所以通常可以采用以下公式来估计和近似求解先验信噪比ξk:

由以上推导公式可以得到谱增益系数g的计算公式如下:

由上述谱增益系数g的表达式可知,根据先验信噪比ξk,后验信噪比γk,参数β和p可以计算谱增益系数。

进一步的,考虑到γ函数和φ函数的复杂性,可以采用查表的形式计算谱增益系数,具体的可以预存的γ函数和φ函数的输入输出对应关系,比如说:根据预存的γ函数的输入输出对应关系表进行查询,当输入为时,对应的输出值当输入为时,对应的输出值在预存的φ函数的输入输出对应关系表中进行查询:当输入为时,对应的输出值当输入为对应的输出值最后将查找到的输出值带入谱增益系数的计算表达式中可以得到谱增益系数,这样使得该方法的计算复杂度大大降低。

需要说明的是,本实施例中只是以通过谱增益系数g的表达式得到谱增益系数为例,但在实际应用中并不以此为限。

步骤1046:根据谱增益系数获取当前帧的纯净语音信号。

具体的说,在得到谱增益系数后,可以根据以下公式计算得到当前帧的纯净语音信号

其中,yw(k)为当前帧的信号幅值。

需要说明的是,本实施例中只是以通过纯净语音信号的上述计算公式得到的到纯净语音信号为例,在实际应用中任何通过谱增益系数获取当前帧的纯净语音信号的方法均在本实施例保护范围之内。

本实施例相对于现有技术而言,具有以下技术效果:第一、与传统噪声估计相比,不需要进行语音有声无声检测,在噪声帧和语音帧同时更新噪声,能够自适应的跟踪噪声的变化。第二、与传统的分位数噪声估计相比,不需要存储前d帧数据和按照功率大小进行排序,降低了算法资源开销。第三、在计算谱增益系数时同时考虑人耳掩蔽机制和对噪声与频谱振幅的敏感程度,自适应的更新参数p和β,与传统的广义加权高阶谱估计量的语音增强相比,减小了运算量,更加具有工程适用性。

本申请第二实施例涉及一种自适应语音增强方法,本实施例中的当前帧的功率,具体为:当前帧的对数功率谱;本实施例中的噪声功率具体为对数分位数。在对数坐标系下,当前帧的对数功率谱和前一帧的对数分位数之间的比较更加精确,从而有利于后续的精准处理。

本实施例中自适应语音增强方法的具体流程如图4所示,包括:

步骤201:在接收到语音信号后,根据语音信号,计算语音信号的当前帧的对数功率谱。

具体的说,步骤201与步骤101大致相同,不同之处在于,步骤101计算的为当前帧的功率,而本步骤中计算的为当前帧的对数功率谱,即还需对计算得到的当前帧的功率取对数。比如说,对当前帧的语音信号进行处理可为64个点并且重叠上一帧64个点,则实际一次处理128个点,即可以得到128个点的功率值,对128个点的功率值分别取对数可以得到128个频点对应的对数功率,128个对数功率组成当前帧的对数功率谱。

步骤202:根据当前帧的对数功率谱与前一帧的对数分位数的比较结果,获取密度函数。

具体的说,本实施例中,可以预先设置初始对数分位数和初始密度函数。

即首先可以根据实验值初始化密度函数和对数分位数,比如说,根据实验值初始化后的对数分位数可以为:lq(1,k)=8。如果当前帧为第一帧,则可以将第一帧的对数功率谱与初始对数分位数进行比较。在之后的处理中可以根据当前帧的对数功率谱和前一帧的对数分位数,对当前帧的密度函数进行更新,具体可以根据以下公式进行更新:

其中,λ为当前帧的帧号,k为频点数,β为实验的经验值,ξ为预设的门限阈值,log(|yw(λ)|2)为当前帧的对数功率谱,lq(λ-1,k)为前一帧的对数分位数。

需要说明的是,本实施例只是以通过上述密度函数的计算公式得到当前帧的密度函数为例,但在实际应用中并不以此为限。

步骤203:根据密度函数获取当前帧的增量步长。

具体的说,可以预先设置初始增量步长。比如说,根据实验值初始化后得到的初始增量步长可以为:delta(1,k)=40。在之后的处理中,根据前一帧的密度函数对当前帧的增量步长进行更新,具体可以根据以下公式进行更新:

其中,k为增量步长控制因子。如果当前帧为第一帧,则增量步长控制因子k即为初始增量步长。

需要说明的是,本实施例只是以通过上述增量步长的计算公式得到当前帧的增量步长为例,在实际应用中任何根据密度函数获取当前帧的增量步长的方法均在本实施例保护范围之内。

步骤204:根据前一帧的对数分位数和当前帧的增量步长获取当前帧的对数分位数。

具体的说,若当前帧的对数功率谱大于或等于前一帧的对数分位数,则可以根据增量步长将前一帧的对数分位数自适应增加,得到当前帧的对数分位数;若当前帧的对数功率谱小于前一帧的对数分位数,则可以根据增量步长将前一帧的对数分位数自适应减小,得到当前帧的对数分位数。

步骤205:根据当前帧的对数分位数,获取当前帧的噪声估计值。

具体的说,在得到当前帧的对数分位数lq(λ,k)后,可以通过以下公式计算噪声估计值:

步骤206:根据噪声估计值,获取纯净语音信号。

步骤206与第一实施例中步骤104大致相同,为避免重复在此不再赘述。

为方便说明,本实施例提供如图5所示的框图对本实施例中的自适应语音增强方法进行说明:

预加重模块301,主要实现高通滤波器的功能,滤除低频成分,增强高频语音成分,即对接收的带噪语音信号y(n)=x(n)+d(n),滤除低频成分,其中,x(n)为纯净语音信号,d(n)为噪声信号。去预加重模块310,主要是低通滤波器,去预加重模块310和预加重模块301为互逆过程,两者结合可以达到去混响的效果。

加窗模块302,主要是避免重叠信号出现突变的情况。窗口合成模块309主要是去除窗函数对输出纯净语音信号的影响。本实施例中加窗模块302和窗口合成模块309在实现的过程中,采用同一窗函数,因此,窗函数必须为保幂映射,即语音信号重叠部分的窗口平方和必须为1,如下公式所示:

w2(n)+w2(n+m)=1

其中,n是fft处理的点数,取值为128,m是帧长度取值为64。

快速傅里叶变换fft模块303,主要是进行时域信号与频域信号之间的互相转换。fft模块303与逆fft模块308互为逆过程,fft模块303将时域信号转换为频域信号,转换为频域信号后可以根据频域信号得到信号幅值yw。逆fft模块308将频域信号转换为时域信号。

功率谱计算模块304,用于通过对频域信号求得的幅值进行平方运算得到当前帧的功率p。对数功率谱计算模块305,用于对当前帧的功率取对数得到当前帧的对数功率谱。功率谱计算模块304和对数计算模块305主要是噪声估计之前的预处理过程。

噪声值估计模块306,主要是对带噪语音信号进行噪声估计,尽可能估计准确的噪声信号,主要根据自适应分位数噪声估计原理进行噪声估计得到噪声估计值

计算谱增益系数模块307,主要是完成根据噪声估计值和带噪语音信号的功率进行谱增益系数的计算得到谱增益系数g。具体的,谱增益系数的计算主要根据广义加权高阶短时频谱振幅估计器原理。

进一步的,根据谱增益系数g和信号幅值yw得到频域纯净语音信号接着再经过逆fft模块308将频域信号转换为时域信号,通过窗口合成模块309和去预加重模块310的处理,输出时域纯净语音信号从而完成对语音信号的增强。

本实施例相对于现有技术而言,将带噪语音的当前帧的对数功率谱与前一帧的对数分位数比较来修改对数分位数以得到噪声估计值,这种做法可以避免现有技术中语音信号有无检测、大量数据存储和功率谱排序操作,减小算法资源开销。而且对数坐标能够放大细节,可以提取出一般坐标刻度下提取不出的信号,有利于压缩数值的动态范围,使得在对数坐标系下,当前帧的对数功率谱和前一帧的对数分位数之间的比较更加精确,从而有利于后续的精准处理。

本申请第三实施例涉及一种自适应语音增强方法,在本实施例中,提供了一种具体公式,用以根据增量步长将前一帧的对数分位数自适应增加,得到当前帧的对数分位数,有利于直接、快速并准确的获取当前帧的对数分位数。

本实施例中自适应语音增强方法的具体流程如图6所示,包括:

步骤401:在接收到语音信号后,根据语音信号,计算语音信号的当前帧的对数功率谱。

步骤402:根据当前帧的对数功率谱与前一帧的对数分位数的比较结果,获取密度函数。

步骤403:根据密度函数获取当前帧的增量步长。

步骤401至步骤403与第二实施例中步骤201至步骤203大致相同,为避免重复在此不再一一赘述。

步骤404:判断当前帧的对数功率谱是否大于或等于前一帧的对数分位数,如果是则执行步骤405,否则执行步骤406。

步骤405:根据公式lq(λ,k)=lq(λ-1,k)+α·delta(λ,k)/β计算当前帧的对数分位数。

也就是说,当log(|yw(λ)|2)≥lq(λ-1,k)时,当前帧的对数分位数为:将前一帧的对数分位数根据增量步长自适应增加,具体通过以下公式自适应增加,计算得到当前帧的对数分位数:lq(λ,k)=lq(λ-1,k)+α·delta(λ,k)/β。其中,λ为当前帧数,k为频点数,α和β都是实验的经验值,本实施例中实验的经验值可以为:α=0.25,β=67,但在实际应用中并不以此为限。

步骤406:根据公式lq(λ,k)=lq(λ-1,k)-(1-α)·delta(λ,k)/β计算当前帧的对数分位数。

也就是说,当log(|yw(λ)|2)<lq(λ-1,k)时,当前帧的对数分位数为:将前一帧的对数分位数根据增量步长自适应减小,具体通过以下公式自适应减小,计算得到当前帧的对数分位数:lq(λ,k)=lq(λ-1,k)-(1-α)·delta(λ,k)/β。

步骤407:根据公式获取当前帧的噪声估计值。

步骤408:根据噪声估计值,获取纯净语音信号。

步骤407至步骤408与第二实施例中步骤205至步骤206大致相同,为避免重复此处不再赘述。

本实施例相对于现有技术而言,提供了根据增量步长将前一帧的对数分位数自适应增加,得到当前帧的对数分位数的具体公式,有利于根据当前帧的增量步长直接、快速并准确的获取当前帧的对数分位数,从而有利于根据当前帧的对数分位数进行噪声估计。

本申请第四实施例涉及一种电子设备,如图7所示,包括至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502;其中,存储器502存储有可被所述至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行上述的自适应语音增强方法。

其中,存储器502和处理器501采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器501和存储器502的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器501处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器501。

处理器501负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器502可以被用于存储处理器501在执行操作时所使用的数据。

本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施例是实现本申请的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

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