语音滤波方法、装置、介质和电子设备与流程
2021-01-28 12:01:09|375|起点商标网
[0001]
本公开涉及语音滤波技术,尤其是一种语音滤波方法、语音滤波装置、存储介质以及电子设备。
背景技术:
[0002]
滤波技术,尤其是自适应滤波技术,已被广泛使用在回声抵消、主动噪声控制以及信道均衡等多种应用中。
[0003]
频域卡尔曼滤波(frequency-domain kalman filter,fkf)技术是一种自适应滤波技术。频域卡尔曼滤波技术能够保证较快的收敛速度和较低的稳态误差,但是频域卡尔曼滤波技术的计算复杂度较高,从而使其时延较长。分块频域卡尔曼滤波(partitioned-block-based frequency-domain kalman filter,pfkf)技术通过分块结构,在保证了较快的收敛速度和较低的稳态误差的同时,降低了计算复杂度,从而降低了时延。然而,分块频域卡尔曼滤波技术在滤波器阶数不足的条件下,不能保证收敛到最优解,从而会影响滤波性能。
技术实现要素:
[0004]
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种语音滤波方法、语音滤波装置、存储介质以及电子设备。
[0005]
根据本公开实施例的一方面,提供一种语音滤波方法,所述方法包括:获取与当前语音帧相邻的上一语音帧中的各语音频域块各自对应的频域滤波参数;根据所述上一语音帧中的各语音频域块各自对应的频域滤波参数以及两个第一时域约束矩阵,确定当前语音帧中的各语音频域块各自对应的频域滤波器估计参数;根据所述当前语音帧中的各语音频域块各自对应的频域滤波器估计参数对所述当前语音帧进行滤波处理,获得所述当前语音帧的频域误差信号。
[0006]
根据本公开实施例的另一方面,提供一种语音滤波装置,所述装置包括:获取模块,用于获取与当前语音帧相邻的上一语音帧中的各语音频域块各自对应的频域滤波参数;确定参数模块,用于根据所述获取模块获取到上一语音帧中的各语音频域块各自对应的频域滤波参数以及两个第一时域约束矩阵,确定当前语音帧中的各语音频域块各自对应的频域滤波器估计参数;确定误差模块,用于根据所述确定参数模块确定出的当前语音帧中的各语音频域块各自对应的频域滤波器估计参数对所述当前语音帧进行滤波处理,获得所述当前语音帧的频域误差信号。
[0007]
根据本公开实施例的再一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述语音滤波方法。
[0008]
根据本公开实施例的又一方面,提供了一种电子设备,该电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述语音滤波方法。
[0009]
基于本公开上述实施例提供的一种语音滤波方法以及装置,通过在获得当前语音帧中的各语音频域块各自对应的频域滤波器估计参数的过程中,使用两个时域约束矩阵,可以实现在对滤波计算复杂度基本无影响的情况下,针对滤波器阶数不足这一现象,使滤波算法可以收敛到最优解。由此可知,本公开提供的技术方案有利于提高语音滤波性能。
[0010]
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
[0011]
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
[0012]
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
[0013]
图1为本公开所适用的一个场景示意图;
[0014]
图2为本公开所适用的另一个场景示意图;
[0015]
图3为本公开的语音滤波方法一个实施例的流程图;
[0016]
图4为本公开的语音滤波方法一个实施例的实现示意图;
[0017]
图5为本公开的语音滤波装置一个实施例的结构示意图;
[0018]
图6为本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
[0019]
下面将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
[0020]
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
[0021]
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
[0022]
还应理解,在本公开实施例中,“多个”可以指两个或者两个以上,“至少一个”可以指一个、两个或两个以上。
[0023]
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
[0024]
另外,本公开中术语“和/或”,仅是一种描述关联对象的关联关系,表示可以存在三种关系,如a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0025]
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
[0026]
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
[0027]
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
[0028]
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
[0029]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0030]
本公开的实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或者专用计算系统环境或配置一起操作。适于与终端设备、计算机系统或者服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境等等。
[0031]
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施。在分布式云计算环境中,任务可以是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0032]
本公开概述
[0033]
在实现本公开的过程中,发明人发现,在现有的分块频域卡尔曼滤波(fkf)技术中,第k+1语音帧中的第b语音频域块对应的频域滤波器估计参数可以表示为下述公式(1)的形式:
[0034][0035]
在上述公式(1)中,a表示声回声路径不确定度,a的取值为常数,如a的取值可以为1;表示第k语音帧中的第b语音频域块对应的频域滤波器估计参数(此处为大写w,对应频域);g
l,0
表示第一时域约束矩阵;μ
b
(k)表示第k语音帧中的第b语音频域块对应的频域滤波器步长矩阵;x
b
(k)表示第k语音帧中的第b语音频域块的频域参考信号(此处为大写x,对应频域);e(k)表示第k语音帧的频域误差信号(大写e对应频域)。
[0036]
为了分析分块频域卡尔曼滤波技术的稳态解特性,发明人假定a=1,并将上述公式(1)等号的两边分别与大小为帧长乘帧长的离散傅里叶变换逆矩阵f-1
相乘,并进行整理,可以获得下述公式(2):
[0037][0038]
在上述公式(2)中,m
b
(k)=fμ
b
(k)f-1
;x
c,b
(k)=fx
b
(k)f-1
;l表示语音帧中的各语音频域块的长度,即块长;i
l
表示大小为l
×
l的单位矩阵;e(k)表示第k语音帧的时域误差信号;c表示循环矩阵,即x
c,b
(k)为循环矩阵。
[0039]
上述公式(2)中的m
b
和x
c,b
(k)均为循环矩阵,且m
b
和x
c,b
(k)可以分别表示为下述公式(3)的形式:
[0040][0041][0042]
上述公式(2)中的e(k)可以表示为下述公式(4)的形式
[0043][0044]
在上述公式(4)中,e(k)表示第k语音帧的时域误差信号(小写e对应时域);y(k)表示第k语音帧的时域期望信号(小写y对应时域);表示第k语音帧中的第b语音频域块对应的时域滤波器估计参数(此处为小写w,对应时域),可以认为时域滤波器估计参数是频域滤波器估计参数的等效时域形式;b表示一语音帧所包含的语音频域块的总数量。
[0045]
对上述公式(2)的等号两边取数学期望,可以获得下述公式(5):
[0046][0047]
在上述公式(5)中,e{*}表示取*的数学期望;b表示语音帧中的第b个语音频域块;表示第k+1语音帧中的第b个语音频域块对应的时域滤波器估计参数;表示第k语音帧中的第b个语音频域块对应的时域滤波器估计参数(此处为小写w,对应时域);λ
b,1
(k)、λ
b,2
(k)、r
b,m
、以及r
b
可以表示为下述公式(6)的形式;b表示一个语音帧所包含的语音频域块的数量。
[0048][0049][0050]
r
b
=e{x
c,b,2
(k)y(k)}
[0051][0052][0053]
在上述公式(6)中,e{*}表示取*的数学期望;c表示循环矩阵;x
c,b,2
(k)和x
c,b,1
(k)均为x
c,b
(k)中一个元素,x
c,b
(k)如上述公式(3)所示;表示x
c,m,2
(k)的转置矩阵;y
(k)表示第k语音帧的时域期望信号;m
b,1
(k)和m
b,2
(k)均为m
b
(k)中的一个元素,m
b
(k)表示如上述公式(3)所示;λ
b,1
(k)表示取m
b,1
(k)的数学期望后的矩阵;λ
b,2
(k)表示取m
b,2
(k)的数学期望后的矩阵。
[0054]
根据上述公式(5)和公式(6)可知,现有分块频域卡尔曼滤波技术中的频域滤波器系数的稳态解可以表示为下述公式(7)的形式:
[0055][0056]
在上述公式(7)中,b表示语音帧中的第b个语音频域块;表示语音帧中的第b个语音频域块对应的时域滤波器估计参数(此处为小写w,对应时域);表示语音帧中的第b个语音频域块对应的时域滤波器估计参数的稳态解;λ
b,1
(∞)、λ
b,2
(∞)、r
b,m
、r
b,b
、以及r
b
可以表示为下述公式(2)的形式;b表示一个语音帧所包含的语音频域块的数量。
[0057]
假定实际使用的自适应滤波器阶数为n',而未知的要匹配的目标系统滤波器阶数为n;如果n'<n,则未知的要匹配的目标系统滤波器输出的信号y(k)可以表示为下述公式(8)的形式:
[0058][0059]
在上述公式(8)中,s(k)表示第k语音帧的背景噪声;b表示一个语音帧所包含的语音频域块的数量;表示x
c,b,1
(k)的转置矩阵,x
c,b,1
(k)为x
c,b
(k)中一个元素,如上述公式(3)所示;w
o,m
表示时域滤波器系数的最优解中的第m块(此处为小写w,对应时域)。
[0060]
将上述公式(8)代入上述公式(7)中,并进行整理,可以得到下述公式(9):
[0061][0062]
由上述公式(9)可知,在声回声路径不确定度a的取值为1,且自适应滤波器阶数充足的情况下,公式(9)可以证明分块频域卡尔曼滤波器系数的稳态解与最优解相等;但是,在自适应滤波器阶数不足的情况下,上述公式(8)不能成立,从而无法获得上述公式(9),上述公式(7)无法使频域卡尔曼滤波器系数收敛到最优解,即频域卡尔曼滤波器系数的最优解与稳态解不一致。
[0063]
示例性概述
[0064]
在现场会议、远程会议以及语音交互等应用中,可以使用本公开的语音滤波技术,实现回声抵消、主动噪声控制以及信道均衡等。
[0065]
一个例子如图1所示。麦克风101设置于讲台100上。麦克风101与数据处理设备102连接,且数据处理设备102可以与至少一个音箱连接。图1中仅示意性的示出了音箱103,且
数据处理设备102与音箱103之间的连接可以无线连接。
[0066]
假定主讲者位于麦克风101前进行发言。主讲者的声音与回声混合在一起被麦克风101采集,获得时域中的音频信号。数据处理设备102将采集到的时域中的音频信号转换为频域中的语音帧,并利用本公开提供的语音滤波技术对各语音帧分别进行处理(可以称为去混响处理),以去除各语音帧中的回声。之后,数据处理设备102可以针对处理后的语音帧进行语音分离处理等,从而获得分离出主讲者的声源信号,数据处理设备102根据主讲者的声源信号形成输出信号,并通过音箱103播放。在上述应用场景中,数据处理设备102可以有效避免将采集到的回声同时播放出去的现象,从而有利于提高主讲者的声音清晰度,使参加现场会议的与会人员可以听到主讲者清晰的讲话。
[0067]
另外,数据处理设备102还可以将其获得的主讲者的声源信号,通过网络实时的传输给异地会场中的设备(如异地会场中的数据处理设备等),由异地会场中的设备根据接收到的声源信号进行播放处理,从而实现远程会议。
[0068]
另一个例子如图2所示。可随身携带的翻译设备200(例如,智能移动电话等)中可以设置有麦克风。翻译设备200用于实现双语翻译。
[0069]
在用户201与用户202对话过程中,用户201使其翻译设备200处于第一语言(如汉语等)与第二语言(如英语等)之间双向翻译的工作状态。
[0070]
翻译设备200将其内部设置的麦克风实时采集到的时域中的音频信号,转换为频域中的语音帧。翻译设备200可以利用本公开提供的语音滤波技术对各语音帧分别进行处理(可以称为抑制噪声处理),以去除语音帧中的背景噪音,从而有利于避免背景噪音对后续语音识别处理的影响,有利于提高当前讲话者的声音清晰度。之后,翻译设备200可以针对前述处理后的语音帧进行语音分离处理以及语音识别处理等,翻译设备200可以根据语音识别处理操作获得的结果,确定出当前讲话者所使用的语言以及当前讲话者讲话的内容。最后,翻译设备200可以将当前讲话者讲话的内容,转换为另一种语言,并输出,例如,翻译设备200将转换后的另一种语言通过其显示屏显示出来,再例如,翻译设备200将转换后的另一种语言通过其扬声器播放。
[0071]
重复上述采集音频信号、去背景噪声处理、语音分离处理、语音识别处理以及语言转换处理等操作,从而可以帮助用户201和用户202之间实现连续对话。
[0072]
示例性方法
[0073]
图3为本公开的语音滤波方法一个实施例的结构示意图。如图3所示,该实施例的方法包括步骤s300、s301以及s302。下面对各步骤分别进行说明。
[0074]
s300、获取与当前语音帧相邻的上一语音帧中的各语音频域块各自对应的频域滤波参数。
[0075]
本公开中的当前语音帧以及上一语音帧均是频域中的语音帧。本公开中的当前语音帧和上一语音帧均可以是通过对音频采集装置采集获得的时域信号进行变换处理(如傅里叶变换等),而获得的语音帧。本公开中的上一语音帧是指在时序上与当前语音帧相邻,并在时序上位于当前语音帧之前的语音帧。本公开中的当前语音帧和上一语音帧分别包括多个语音频域块,且当前语音帧所包含的语音频域块的数量与上一语音帧所包含的语音频域块的数量相同。当前语音帧和上一语音帧所包含的语音频域块的数量通常与滤波器块长相关。本公开中的语音频域块可以是指分块频域卡尔曼滤波(pfkf)算法中的块。
[0076]
本公开中的频域滤波参数可以是指滤波器所使用的参数。频域滤波参数可以称为频域滤波算法参数。一个语音频域块通常对应一组频域滤波参数。不同语音频域块通常对应不同组频域滤波参数。一组频域滤波参数通常包括多个参数。
[0077]
s301、根据上述上一语音帧中的各语音频域块各自对应的频域滤波参数以及两个第一时域约束矩阵,确定当前语音帧中的各语音频域块各自对应的频域滤波器估计参数。
[0078]
本公开中的第一时域约束矩阵可以是指用于将频域滤波参数转换到时域,并对时域中的频域滤波参数进行约束,然后,再将约束后的时域中的滤波参数再转换到频域中的矩阵。上述对时域中的滤波参数进行约束可以是指:对时域中的滤波参数中的部分元素的取值进行限制等,例如,对时频域中的滤波参数中的超出预先设置的滤波器长度的部分元素的取值进行置零等。本公开中的当前语音帧中的各语音频域块各自对应的频域滤波器估计参数可以是指当前语音帧中的各语音频域各自对应的频域滤波器系数。本公开可以根据上一语音帧中的各语音频域块各自对应的频域滤波参数以及两个第一时域约束矩阵,采用相应的频域滤波算法(如基于分块频域卡尔曼滤波的频域滤波器参数迭代算法),进行计算,从而获得当前语音帧中的各语音频域块各自对应的频域滤波器估计参数。在当前语音帧成为上一语音帧的情况下,当前语音帧中的各语音频域块各自对应的频域滤波器估计参数,成为上一语音帧中的各语音频域块各自对应的频域滤波参数中的一部分。
[0079]
s302、根据当前语音帧中的各语音频域块各自对应的频域滤波器估计参数对当前语音帧进行滤波处理,获得当前语音帧的频域误差信号。
[0080]
本公开中的滤波处理可以包括:获得频域中的实际期望信号与频域中的估计期望信号之间的差异的过程。在当前语音帧成为上一语音帧的情况下,上述获得的当前语音帧中的频域误差信号,成为上一语音帧中的各语音频域块各自对应的频域滤波参数中的一部分。上述实际期望信号可以从外部输入信息中获得。
[0081]
本公开通过在获得当前语音帧中的各语音频域块各自对应的频域滤波器估计参数的过程中,使用两个时域约束矩阵,可以在对滤波计算复杂度基本无影响的情况下,针对滤波器阶数不足这一现象,使滤波算法收敛到最优解。因此,本公开提供的技术方案有利于提高语音滤波性能。
[0082]
在一个可选示例中,本公开中的与当前语音帧相邻的上一语音帧中的各语音频域块各自对应的频域滤波参数可以包括:与当前语音帧相邻的上一语音帧中的各语音频域块各自对应的频域滤波器步长矩阵、上一语音帧中的各语音频域块各自对应的频域滤波器估计参数、上一语音帧中的各语音频域块的频域参考信号以及上一语音帧的频域误差信号。本公开中的频域参考信号可以从外部输入的信息中获得。上述频域滤波器步长矩阵也可以称为频域滤波器的等效步长。本公开中的上一语音帧中的各语音频域块各自对应的频域滤波器步长矩阵、频域滤波器估计参数以及上一语音帧的频域误差信号,均可以通过迭代计算的方式获得,也就是说,在下次迭代计算的过程中,当前语音帧会成为上一语音帧,则本次迭代计算获得的当前语音帧中的各语音频域块各自对应的频域滤波器步长矩阵、频域滤波器估计参数以及当前语音帧的频域误差信号,会成为上一语音帧中的各语音频域块各自对应的频域滤波器步长矩阵、频域滤波器估计参数以及上一语音帧的频域误差信号。对于本公开的技术方案而言,上述上一语音帧中的各语音频域块的频域参考信号可以认为是已知信号。例如,本公开可以从外部输入信息中获得上一语音帧中的各语音频域块的频域参
考信号。
[0083]
本公开通过利用上述参数,可以便捷的获得当前语音帧中的各语音频域块各自对应的频域滤波器估计参数,从而有利于使滤波算法收敛到最优解。
[0084]
在一个可选示例中,本公开获取当前语音帧的上一语音帧中的各语音频域块各自对应的频域滤波器步长矩阵的方式的一个例子可以为:对于上一语音帧中的第i语音频域块,根据上一语音帧中的第i语音频域块对应的频域误差的协方差矩阵、上一语音帧中的第i语音频域块的频域参考信号、上一语音帧的背景噪声的自相关矩阵、帧长以及块长,确定上一语音帧中的第i语音频域块对应的频域滤波器步长矩阵。例如,本公开可以采用下述公式(10)确定上一语音帧中的各语音频域块各自对应的频域滤波器步长矩阵:
[0085][0086]
在上述公式(10)中,μ
b
(k+1)表示第k+1语音帧中的第b语音频域块对应的频域滤波器步长矩阵;l表示语音频域块的长度;m表示语音帧的长度;b表示一语音帧所包含的语音频域块的总数量;p
b
(k)表示第k语音帧中的第b语音频域块对应的频域误差的协方差矩阵;x
b
(k)表示第k语音帧中的第b语音频域块的频域参考信号;ψ
ss
(k)表示第k语音帧的背景噪声的自相关矩阵。
[0087]
需要特别说明的是,本公开可以将上述公式(10)中的μ
b
(k+1)作为上一语音帧中的第b语音频域块对应的频域滤波器步长矩阵,也就是说,第k+1语音帧表示当前帧的上一语音帧,第k语音帧表示上一语音帧的上一语音帧。
[0088]
本公开通过利用上一语音帧中的第i语音频域块对应的频域误差的协方差矩阵、上一语音帧中的第i语音频域块的频域参考信号、上一语音帧的背景噪声的自相关矩阵、帧长以及块长,可以便捷的获得当前语音帧的上一语音帧中的各语音频域块各自对应的频域滤波器步长矩阵,从而有利于使滤波算法收敛到最优解。
[0089]
在一个可选示例中,本公开确定上一语音帧中的第i语音频域块对应的频域误差的协方差矩阵的方式的一个例子可以为:对于上一语音帧中的第i语音频域块,根据上一语音帧的上一语音帧中的第i语音频域块对应的频域误差的协方差矩阵、上一语音帧的上一语音帧中的第i语音频域块的频域参考信号、上一语音帧的上一语音帧的第i语音频域块的过程噪声、上一语音帧的上一语音帧中的第i语音频域块的频域参考信号、上一语音帧的上一语音帧中的第i语音频域块对应的频域滤波器步长矩阵、大小为帧长乘帧长的单位矩阵、帧长以及块长,确定上一语音帧中的第i语音频域块对应的频域误差的协方差矩阵。可选的,本公开可以利用下述公式(11)获得上一语音帧中的第i语音频域块对应的频域误差的协方差矩阵:
[0090][0091]
在上述公式(11)中,p
b
(k+1)表示第k+1语音帧中的第b语音频域块对应的频域误差的协方差矩阵;a表示声回声路径不确定度,例如,a的取值可以为1;i
m
表示大小为m
×
m的单位矩阵;l表示语音频域块的长度,即块长;m表示语音帧的长度,即帧长;μ
b
(k)表示第k语音帧中的第b语音频域块对应的频域滤波器步长矩阵;x
b
(k)表示第k语音帧中的第b语音频
域块的频域参考信号;表示x
b
(k)的共轭转置矩阵;p
b
(k)表示第k语音帧中的第b语音频域块对应的频域误差的协方差矩阵;ψ
b,δ
(k)表示第k语音帧中的第b语音频域块的过程噪声。
[0092]
需要特别说明的是,本公开可以将上述公式(11)中的p
b
(k+1)作为上一语音帧中的第b语音频域块对应的频域误差的协方差矩阵,也就是说,第k+1语音帧表示当前帧的上一语音帧,第k语音帧表示上一语音帧的上一语音帧。
[0093]
本公开通过利用上一语音帧的上一语音帧中的第i语音频域块对应的频域误差的协方差矩阵、上一语音帧的上一语音帧中的第i语音频域块的频域参考信号、上一语音帧的上一语音帧的第i语音频域块的过程噪声、上一语音帧的上一语音帧中的第i语音频域块的频域参考信号、上一语音帧的上一语音帧中的第i语音频域块对应的频域滤波器步长矩阵、大小为帧长乘帧长的单位矩阵、帧长以及块长,可以便捷的获得上一语音帧中的各语音频域块各自对应的频域误差的协方差矩阵,从而有利于使滤波算法收敛到最优解。
[0094]
在一个可选示例中,本公开确定当前语音帧中的各语音频域块各自对应的频域滤波器估计参数的过程可以包括:首先,对于当前语音帧的第i语音频域块,将上一语音帧的第i语音频域块对应的频域滤波器步长矩阵、上一语音帧的频域参考信号、上一语音帧的频域误差信号以及两个第一时域约束矩阵,进行矩阵相乘。其次,将上述矩阵相乘获得的结果与上一语音帧的第i语音频域块对应的频域滤波器估计参数相加。最后,根据上述相加的结果以及预设的回声路径不确定度,确定当前语音帧中的第i语音频域块对应的频域滤波器估计参数。本公开确定当前语音帧中的各语音频域块各自对应的频域滤波器估计参数的过程可以表示为下述公式(12)的形式:
[0095][0096]
在上述公式(12)中,表示第k+1语音帧中的第b语音频域块对应的频域滤波器估计参数(此处为大写w,对应频域);a表示声回声路径不确定度,例如,a的取值可以为1;表示第k语音帧中的第b语音频域块对应的频域滤波器估计参数;g
l,0
表示第一时域约束矩阵;μ
b
(k)表示第k语音帧中的第b语音频域块对应的频域滤波器步长矩阵;x
b
(k)表示第k语音帧中的第b语音频域块的频域参考信号(x大写对应频域);e(k)表示第k语音帧的频域误差信号。
[0097]
在上述公式(12)中的a的取值为1的情况下,上述公式(12)可以简化为下述公式(13)的形式:
[0098][0099]
需要特别说明的是,本公开可以将上述公式(12)和(13)中的作为当前语音帧中的第b语音频域块对应的频域误差的协方差矩阵,也就是说,第k+1语音帧表示当前语音帧,第k语音帧表示当前语音帧的上一语音帧。
[0100]
本公开通过利用上述公式(12)或者公式(13),可以便捷的获得当前语音帧中的各语音频域块各自对应的频域滤波器估计参数,从而有利于使滤波算法收敛到最优解。
[0101]
在一个可选示例中,本公开根据当前语音帧中的各语音频域块各自对应的频域滤波器估计参数对所述当前语音帧进行滤波处理,从而获得当前语音帧的频域误差信号的过程的一个例子可以为:首先,将当前语音帧中的各语音频域块的频域参考信号分别与当前语音帧中各语音频域块各自对应的频域滤波器估计参数相乘,获得当前语音帧中的各语音频域块各自对应的相乘结果;其次,累积各语音频域块各自对应的相乘结果,并将累积的结果与第二时域约束矩阵相乘,获得当前语音帧对应的相乘结果;最后,根据当前语音帧的频域期望信号(即实际的频域期望信号)与当前语音帧对应的相乘结果的差,确定当前语音帧的频域误差信号。上述处理过程可以表示为下述公式(14)和公式(15)的形式:
[0102][0103]
在上述公式(14)中,e(k)表示第k语音帧的频域误差信号;y(k)表示第k语音帧的频域期望信号,表示估计的频域期望信号,也可以称为频域期望信号的估计值,且可以表示为下述公式(15)的形式。
[0104][0105]
在上述公式(15)中,g
0,l
表示时域约束矩阵,即第二时域约束矩阵;b表示一语音帧所包含的语音频域块的总数量;x
b
(k)表示第k语音帧中的第b语音频域块的频域参考信号;表示第k语音帧中的第b语音频域块对应的频域滤波器估计参数。
[0106]
本公开通过利用上述公式(14)和公式(15),可以便捷的获得当前语音帧的频域误差信号,从而有利于使滤波算法收敛到最优解。
[0107]
在一个可选示例中,本公开的第一时域约束矩阵可以是根据大小为帧长乘帧长的离散傅里叶变换矩阵、四元素矩阵以及大小为帧长乘帧长的离散傅里叶变换逆矩阵,确定出的矩阵,例如,将大小为帧长乘帧长的离散傅里叶变换矩阵、四元素矩阵以及大小为帧长乘帧长的离散傅里叶变换逆矩阵相乘,第一时域约束矩阵由所述相乘获得的矩阵确定。其中的四元素矩阵的右上角元素、右下角元素和左下角元素均为大小为块长乘块长的全零矩阵,左上角元素为大小为帧长乘帧长的单位矩阵。第一时域约束矩阵可以表示为下述公式(16)的形式:
[0108][0109]
在上述公式(16)中,i
l
表示大小为l
×
l的单位矩阵;l表示语音频域块的长度,即块长;f表示大小为帧长乘帧长的离散傅里叶变换矩阵;f-1
表示大小为帧长乘帧长的离散傅里叶变换逆矩阵。
[0110]
本公开通过利用上述公式(16)所示的第一时域约束矩阵,可以在对滤波计算复杂度基本无影响的情况下,便捷的获得当前语音帧的频域误差信号,从而有利于使滤波算法收敛到最优解。
[0111]
下面对本公开可以获得分块频域卡尔曼滤波器系数(频域滤波器估计参数)的最优解进行分析说明。
[0112]
本公开可以在上述公式(16)的等式两边分别乘f-1
,之后,进行整理,并取期望,可以获得下述公式(17)的形式:
[0113][0114]
上述公式(17)的稳态解可以表示为下述公式(18)的形式:
[0115][0116]
滤波器阶数为n的最优解通常应满足如下述公式(19)所示的维纳-霍夫(wiener-hopf)方程:
[0117][0118]
在上述公式(19)中,r
x
表示n
×
n的参考信号自相关矩阵;表示时域滤波器系数的最优解(此处为小写w,对应时域);p表示n
×
1的时域参考信号和未知的要匹配的目标系统滤波器输出信号之间的互相关向量。
[0119]
将上述公式(19)的等号左右两边拆分成b个长度为l的向量,可以得到下述公式(20):
[0120][0121]
在上述公式(20)中,b表示一个语音帧所包含的语音频域块的数量;b的取值范围为[0,b-1];表示r
x,b,b
的逆矩阵,r
x,b,b
和r
x,b,m
可以通过下述公式(21)表示;p
b
互相关向量p中的第b块,且p
b
=[p
il
,......,p
il+l-1
];w
o,m
表示时域滤波器系数中的第m块的最优解,且l表示块长。
[0122][0123]
在上述公式(21)中,r
x
(i)=e{x(n)x(n-i)},r
x
(i)表示参考信号的自相关函数。
[0124]
本公开可以将上述公式(6)变换为下述公式(22)的形式:
[0125][0126]
r
b
=e{x
c,0,2
(k-b)y(k)}=lp
b
ꢀꢀ
公式(22)
[0127]
本公开通过将上述公式(22)代入上述公式(18)中,可以获得下述公式(23):
[0128]
[0129]
对比上述公式(20)和公式(23)可知,本公开中的滤波算法的稳态解和最优解是一致的,也就是说,本公开提供的语音滤波技术可以在滤波器阶数不足的情况下,使滤波算法收敛到最优解。
[0130]
本公开的语音滤波方法的一个例子的实现流程如图4所示。
[0131]
假定自适应滤波器的阶数n为10阶。假定时域参考信号为均值为零的白噪声通过一个时域滤波器系数为[0.1 0.2
ꢀ-
0.4 0.7]的有限长单位冲激响应(finite impulse response,fir)的滤波器所获得的时域信号,在对该时域信号进行离散傅里叶变换之后,可以获得频域参考信号。假定时域期望信号(即时域实际期望信号)为上述时域参考信号经过一个滤波器系数为[0.01 0.02
ꢀ-
0.04
ꢀ-
0.08 0.15
ꢀ-
0.3 0.45 0.6 0.6 0.45
ꢀ-
0.3 0.15
ꢀ-
0.08
ꢀ-
0.04 0.02 0.01]的16阶fir滤波器滤波后得到的时域信号,在对该时域信号进行离散傅里叶变换之后,可以获得频域参考信号。本公开可以假定频域期望信号中的背景噪声s(k)为不相关的白噪声,其均值为0,方差为10-3
。
[0132]
首先,执行初始化步骤。
[0133]
例如,将第0语音帧中的第b语音频域块对应的频域误差的协方差矩阵p
b
(0)设置为εi,其中的ε的取值可以为10-1
;
[0134]
再例如,将第0语音帧中的第b个语音频域块对应的频域滤波器估计参数设置为0(此处为大写w,对应频域);
[0135]
再例如,将声回声路径不确定度a的值设置为1,并将分块数设置为2(即一语音帧所包含的语音频域块的总数量为2。
[0136]
其次,针对迭代过程中的每一语音帧,分别按照下列步骤进行计算:
[0137]
步骤1、对接收到的第n个采样点的时域参考信号x(n)进行串并转换,并缓存串并转换后的时域参考信号。
[0138]
步骤2、对缓存的第n个采样点的时域参考信号做离散傅里叶变换(如快速离散傅里叶变换),变换到频域,从而获得最新一语音帧中的各语音频域块的频域参考信号。在一语音帧所包含的语音频域块的总数量为2,获得的频域参考信号可以为x
0
(k)和x
1
(k)。
[0139]
步骤3、利用上述公式(15)计算获得最新一语音帧的频域期望信号(即频域中的估计期望信号)y(k)。
[0140]
具体的,图4中的多个延时处理、x
0
(k)与的点乘、x
1
(k)与的点乘、
……
、x
b-1
(k)与的点乘、以及点乘后的多个结果的相加,可以实现上述公式(15)。另外,需要说明的是,在相邻的两个语音帧之间存在信号交叠的情况下,会存在图4中记载的x
1
(k)=x
0
(k-1)、
……
以及x
b-1
(k)=x
0
(k-b+1)的现象。
[0141]
步骤4、对最新一语音帧的频域期望信号y(k)进行离散傅里叶逆变换,获得最新一语音帧的时域期望信号(即时域中的估计期望信号)y(k),该时域期望信号在经过并串转换后,会形成串行的时域期望信号。
[0142]
步骤5、将时域中的实际期望信号与时域中的估计期望信号相减,得到最新一语音帧的时域误差信号e(k),对时域误差信号e(k)进行补零处理,并对补零处理后的时域误差信号进行离散傅里叶变换,从而得到最新一语音帧的频域误差信号e(k)。
[0143]
上述步骤5可以等同于:对最新一语音帧的时域期望信号y(n)进行串并转换,并将
缓存的最新一语音帧(即当前语音帧,下述以第k语音帧为例进行说明)的时域期望信号做离散傅里叶变换(如快速离散傅里叶变换),变换到频域,获得频域期望信号(即频域中的估计期望信号),将频域中的估计期望信号与频域中的实际期望信号相减,获得最新一语音帧的频域误差信号e(k)。
[0144]
步骤6、利用上述公式(12)或(13),更新滤波器系数,更新获得的可以作为下一次迭代过程中的最新一语音帧中的各语音频域块各自对应的频域滤波器估计参数
[0145]
步骤7、利用上述公式(10),更新频域滤波器步长矩阵μ
b
(k+1),获得下一次迭代过程中的最新一语音帧中的各语音频域块各自对应的频域滤波器步长矩阵;利用上述公式(11),更新频域误差的协方差矩阵p
b
(k+1),获得下一次迭代过程中的最新一语音帧中的各语音频域块各自对应的频域误差的协方差矩阵。另外,本公开还可以使用下述公式(24)更新卡尔曼增益:
[0146][0147]
在上述公式(24)中,k
b
(k+1)表示第k+1语音帧中的第b语音频域块对应的卡尔曼增益;μ
b
(k)表示第k语音帧中的第b语音频域块对应的频域滤波器步长矩阵;表示x
b
(k)的共轭转置矩阵;x
b
(k)表示第k语音帧中的第b语音频域块的频域参考信号。
[0148]
通常情况下,频域滤波器系数的最优解应满足维纳-霍夫方程,即最优解应与维纳解应一致。如果在分块频域卡尔曼滤波算法中增加第一时域约束矩阵,则有利于在迭代更新分块频域卡尔曼滤波器系数的过程中,消除非因果部分的影响,因此,有利于使本公开提供的改进后的分块频域卡尔曼滤波算法的等效时域滤波器系数与维纳解一致,从而使滤波算法可以较快的收敛到最优解。
[0149]
示例性装置
[0150]
图5为本公开的语音滤波装置一个实施例的结构示意图。该实施例的装置可用于实现本公开上述各方法实施例。如图5所示,该实施例的装置包括:获取模块500、确定参数模块501以及确定误差模块502。
[0151]
获取模块500用于获取与当前语音帧相邻的上一语音帧中的各语音频域块各自对应的频域滤波参数。
[0152]
可选的,获取模块500可以获取与当前语音帧相邻的上一语音帧中的各语音频域块各自对应的频域滤波器步长矩阵、上一语音帧中的各语音频域块各自对应的频域滤波器估计参数、上一语音帧中的各语音频域块的频域参考信号以及上一语音帧的频域误差信号。例如,对于上一语音帧中的第i语音频域块,获取模块500可以根据上一语音帧中的第i语音频域块对应的频域误差的协方差矩阵、上一语音帧中的第i语音频域块的频域参考信号、上一语音帧的背景噪声的自相关矩阵、帧长以及块长,确定上一语音帧中的第i语音频域块对应的频域滤波器步长矩阵。
[0153]
可选的,获取模块500获得上一语音帧中的第i语音频域块对应的频域误差的协方差矩阵的方式可以为:对于上一语音帧中的第i语音频域块,根据上一语音帧的上一语音帧中的第i语音频域块对应的频域误差的协方差矩阵、上一语音帧的上一语音帧中的第i语音
频域块的频域参考信号、上一语音帧的上一语音帧的第i语音频域块的过程噪声、上一语音帧的上一语音帧中的第i语音频域块的频域参考信号、上一语音帧的上一语音帧中的第i语音频域块对应的频域滤波器步长矩阵、大小为帧长乘帧长的单位矩阵、帧长以及块长,确定上一语音帧中的第i语音频域块对应的频域误差的协方差矩阵。
[0154]
确定参数模块501用于根据获取模块500获取到上一语音帧中的各语音频域块各自对应的频域滤波参数以及两个第一时域约束矩阵,确定当前语音帧中的各语音频域块各自对应的频域滤波器估计参数。
[0155]
可选的,对于当前语音帧的第i语音频域块,确定参数模块501可以将上一语音帧的第i语音频域块对应的频域滤波器步长矩阵、上一语音帧的频域参考信号、上一语音帧的频域误差信号以及两个第一时域约束矩阵,进行矩阵相乘;之后,确定参数模块501将矩阵相乘获得的结果与上一语音帧的第i语音频域块对应的频域滤波器估计参数相加;然后,确定参数模块501根据上述相加的结果以及预设的回声路径不确定度,确定当前语音帧中的第i语音频域块对应的频域滤波器估计参数。
[0156]
可选的,确定参数模块501可以将大小为帧长乘帧长的离散傅里叶变换矩阵、四元素矩阵以及大小为帧长乘帧长的离散傅里叶变换逆矩阵相乘,并根据相乘获得的矩阵确定第一时域约束矩阵。其中的四元素矩阵的右上角元素、右下角元素和左下角元素均为大小为块长乘块长的全零矩阵,左上角元素为大小为帧长乘帧长的单位矩阵。
[0157]
确定误差模块502用于根据确定参数模块501确定出的当前语音帧中的各语音频域块各自对应的频域滤波器估计参数对所述当前语音帧进行滤波处理,获得当前语音帧的频域误差信号。
[0158]
可选的,确定误差模块502可以将当前语音帧中的各语音频域块的频域参考信号分别与当前语音帧中各语音频域块各自对应的频域滤波器估计参数相乘,获得当前语音帧中的各语音频域块各自对应的相乘结果;之后,确定误差模块502累积各语音频域块各自对应的相乘结果,并将累积的结果与第二时域约束矩阵相乘,获得当前语音帧对应的相乘结果;然后,确定误差模块502根据当前语音帧的频域期望信号与当前语音帧对应的相乘结果的差,确定当前语音帧的频域误差信号。
[0159]
示例性电子设备
[0160]
下面参考图6来描述根据本公开实施例的电子设备。图6示出了根据本公开实施例的电子设备的框图。如图6所示,电子设备61包括一个或多个处理器611和存储器612。
[0161]
处理器611可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备61中的其他组件以执行期望的功能。
[0162]
存储器612可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器,例如,可以包括:随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器,例如,可以包括:只读存储器(rom)、硬盘以及闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器611可以运行所述程序指令,以实现上文所述的本公开的各个实施例的语音滤波方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
[0163]
在一个示例中,电子设备61还可以包括:输入装置613以及输出装置614等,这些组
件通过总线系统和/或其他形式的连接机构(未示出)互连。此外,该输入设备613还可以包括例如键盘、鼠标等等。该输出装置614可以向外部输出各种信息。该输出设备614可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
[0164]
当然,为了简化,图6中仅示出了该电子设备61中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备61还可以包括任何其他适当的组件。
[0165]
示例性计算机程序产品和计算机可读存储介质
[0166]
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的语音滤波方法中的步骤。
[0167]
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
[0168]
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的语音滤波方法中的步骤。
[0169]
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列举)可以包括:具有一个或者多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0170]
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势以及效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
[0171]
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0172]
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备以及系统。诸如“包括”、“包含、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
[0173]
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
[0174]
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
[0175]
提供所公开的方面的以上描述,以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改等对于本领域技术人员而言,是非常显而易见的,并且在此定义的一般原理可以应用于其他方面,而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
[0176]
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式中。尽管以上已经讨论了多个示例方面以及实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除
热门咨询
tips