音频信号处理方法及装置、存储介质与流程
本公开涉及信号处理领域,尤其涉及一种音频信号处理方法及装置、存储介质。
背景技术:
相关技术中,智能产品设备拾音多采用麦克风阵列,应用麦克风波束形成技术提高语音信号处理质量,以提高真实环境下的语音识别率。但多个麦克风的波束形成技术对麦克风位置误差敏感,性能影响较大,另外麦克风个数增多了也会导致产品成本升高。
因此,目前越来越多的智能产品设备只配置两个麦克风;两个麦克风常采用完全不同于多个麦克风波束形成技术的盲源分离技术对语音进行增强,而如何使得基于盲源分离技术分离后信号的语音质量更高是目前迫切需要解决的问题。
技术实现要素:
本公开提供一种音频信号处理方法及装置、存储介质。
根据本公开实施例的第一方面,提供一种音频信号处理方法,包括:
由至少两个麦克风获取至少两个声源各自发出的音频信号,以获得所述至少两个麦克风各自的原始带噪信号;
对于时域上的每一帧,根据所述至少两个麦克风各自的所述原始带噪信号,获取所述至少两个声源各自的频域估计信号;
在预定的频带范围确定包含多个预定的静态频点与动态频点的频点集合;其中,所述动态频点为频点数据满足筛选条件的频点;
根据所述频点集合内各频点的所述频域估计信号,确定所述频点集合包含的各频点的加权系数;
根据所述加权系数,确定各频点的分离矩阵;
基于所述分离矩阵及所述原始带噪信号,获得至少两个声源各自发出的音频信号。
在一些实施例中,所述在预定的频带范围确定包含多个预定的静态频点与动态频点的频点集合,包括:
在所述预定的频带范围中确定多个谐波子集,其中,每个谐波子集包含多个频点数据;所述多个谐波子集包含的频点为所述预定的静态频点;
根据所述预定的频带范围中各频点的先验分离矩阵的条件数,确定动态频点集合;其中,所述先验分离矩阵包括:预定的初始分离矩阵或上一帧各频点的分离矩阵;
根据所述谐波子集与所述动态频点集合的合集,确定所述频点集合。
在一些实施例中,所述在所述预定的频带范围中确定多个谐波子集,包括:
确定所述各频带范围中的基频点、前m个倍频点和各所述倍频点所在的第一预设带宽内的频点;
根据所述基频点、所述前m个倍频点和各所述倍频点所在的第一预设带宽内的频点组成的集合,确定所述谐波子集。
在一些实施例中,所述确定所述各频带范围中的基频点、前m个倍频点和各所述倍频点所在的第一预设带宽内的频点,包括:
根据所述预定的频带范围和划分所述谐波子集的预定个数,确定各所述谐波子集的基频点与各基频点对应的前m个倍频点;
根据各所述谐波子集的所述基频点与所述前m个倍频点,确定所述第一预设带宽内的频点。
在一些实施例中,所述根据所述预定的频带范围中各频点的先验分离矩阵的条件数,确定动态频点集合,包括:
确定所述频带范围中各频点的先验分离矩阵的条件数;
确定所述条件数大于预定阈值的第一类病态频点;
将以所述第一类病态频点为中心,且带宽为第二预设带宽的频带内的频点,确定为第二类病态频点;
根据所述第一类病态频点与所述第二类病态频点,确定所述动态频点集合。
在一些实施例中,所述根据所述频点集合内各频点的所述频域估计信号,确定所述频点集合包含的各频点的加权系数,包括:
根据所述频点集合内各频点的所述频域估计信号,确定所述频域估计信号的分布函数;
根据所述分布函数,确定所述各频点的所述加权系数。
在一些实施例中,所述根据所述频点集合内各频点的所述频域估计信号,确定所述频域估计信号的分布函数,包括:
确定所述频点集合中各频点的所述频域估计信号与标准差比值的平方;
对各频带范围的所述频点集合的所述比值的平方求和,确定第一和;
获取所述频点集合对应的所述第一和的开方和,得到第二和;
根据所述第二和为变量的指数函数,确定所述分布函数。
在一些实施例中,所述根据所述频点集合内各频点的所述频域估计信号,确定所述频域估计信号的分布函数,包括:
确定所述频点集合中各频点的所述频域估计信号与标准差之间比值的平方;
对各频带范围的所述频点集合的各所述比值的平方求和,确定第三和;
根据所述频点集合对应的所述第三和的预定次方,确定第四和;
根据所述第四和为变量的指数函数,确定所述分布函数。
根据本公开实施例的第二方面,提供一种音频信号处理装置,包括:
第一获取模块,用于由至少两个麦克风获取至少两个声源各自发出的音频信号,以获得所述至少两个麦克风各自的原始带噪信号;
第二获取模块,用于对于时域上的每一帧,根据所述至少两个麦克风各自的所述原始带噪信号,获取所述至少两个声源各自的频域估计信号;
第一确定模块,用于在预定的频带范围确定包含多个预定的静态频点与动态频点的频点集合;其中,所述动态频点为频点数据满足筛选条件的频点;
第二确定模块,用于根据所述频点集合内各频点的所述频域估计信号,确定所述频点集合包含的各频点的加权系数;
第三确定模块,用于根据所述加权系数,确定各频点的分离矩阵;
第三获取模块,用于基于所述分离矩阵及所述原始带噪信号,获得至少两个声源各自发出的音频信号。
在一些实施例中,所述第一确定模块,包括:
第一确定子模块,用于在所述预定的频带范围中确定多个谐波子集,其中,每个谐波子集包含多个频点数据;所述多个谐波子集包含的频点为所述预定的静态频点;
第二确定子模块,用于根据所述预定的频带范围中各频点的先验分离矩阵的条件数,确定动态频点集合;其中,所述先验分离矩阵包括:预定的初始分离矩阵或上一帧各频点的分离矩阵;
第三确定子模块,用于根据所述谐波子集与所述动态频点集合的合集,确定所述频点集合。
在一些实施例中,所述第一确定子模块,包括:
第一确定单元,用于确定所述各频带范围中的基频点、前m个倍频点和各所述倍频点所在的第一预设带宽内的频点;
第二确定单元,用于根据所述基频点、所述前m个倍频点和各所述倍频点所在的第一预设带宽内的频点组成的集合,确定所述谐波子集。
在一些实施例中,所述第一确定单元,具体用于:
根据所述预定的频带范围和划分所述谐波子集的预定个数,确定各所述谐波子集的基频点与各基频点对应的前m个倍频点;
根据各所述谐波子集的所述基频点与所述前m个倍频点,确定所述第一预设带宽内的频点。
在一些实施例中,所述第二确定子模块,包括:
第三确定单元,用于确定所述频带范围中各频点的先验分离矩阵的条件数;
第四确定单元,用于确定所述条件数大于预定阈值的第一类病态频点;
第五确定单元,用于将以所述第一类病态频点为中心,且带宽为第二预设带宽的频带内的频点,确定为第二类病态频点;
第六确定单元,用于根据所述第一类病态频点与所述第二类病态频点,确定所述动态频点集合。
在一些实施例中,所述第二确定模块,包括:
第四确定子模块,用于根据所述频点集合内各频点的所述频域估计信号,确定所述频域估计信号的分布函数;
第五确定子模块,用于根据所述分布函数,确定所述各频点的所述加权系数。
在一些实施例中,所述第四确定子模块,具体用于:
确定所述频点集合中各频点的所述频域估计信号与标准差比值的平方;
对各频带范围的所述频点集合的所述比值的平方求和,确定第一和;
获取所述频点集合对应的所述第一和的开方和,得到第二和;
根据所述第二和为变量的指数函数,确定所述分布函数。
在一些实施例中,所述第四确定子模块,具体用于:
确定所述频点集合中各频点的所述频域估计信号与标准差之间比值的平方;
对各频带范围的所述频点集合的各所述比值的平方求和,确定第三和;
根据所述频点集合对应的所述第三和的预定次方,确定第四和;
根据所述第四和为变量的指数函数,确定所述分布函数。
根据本公开实施例的第三方面,提供一种音频信号处理装置,所述装置至少包括:处理器和用于存储能够在所述处理器上运行的可执行指令的存储器,其中:
处理器用于运行所述可执行指令时,所述可执行指令执行上述任一项音频信号处理方法中的步骤。
根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述任一项音频信号处理方法中的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:本公开实施例根据筛选出的静态频点与动态频点对应的频域估计信号,确定加权系数。相对于相关技术中,直接根据各频点确定加权系数的方式,本公开实施例以预定的规则筛选频带内频点的方式,结合了反应声波的声学特性的静态频点以及反应信号自身特性的动态频点。如此,更加符合声波信号的实际规律,从而增强了各频点信号分离的准确性,提升了识别性能,减小了分离后的语音损伤。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种音频信号处理方法的流程图一;
图2是根据一示例性实施例示出的一种音频信号处理方法的流程图二;
图3是根据一示例性实施例示出的一种音频信号处理方法的应用场景的框图。
图4是根据一示例性实施例示出的一种音频信号处理方法的流程图三;
图5是根据一示例性实施例示出的一种音频信号处理装置的结构框图;
图6是根据一示例性实施例示出的一种音频信号处理装置的实体结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种音频信号处理方法的流程图,如图1所示,包括以下步骤:
步骤s101、由至少两个麦克风获取至少两个声源各自发出的音频信号,以获得所述至少两个麦克风各自的原始带噪信号;
步骤s102、对于时域上的每一帧,根据所述至少两个麦克风各自的所述原始带噪信号,获取所述至少两个声源各自的频域估计信号;
步骤s103、在预定的频带范围确定包含多个预定的静态频点与动态频点的频点集合;其中,所述动态频点为频点数据满足筛选条件的频点;
步骤s104、根据所述频点集合内各频点的所述频域估计信号,确定所述频点集合包含的各频点的加权系数;
步骤s105、根据所述加权系数,确定各频点的分离矩阵;
步骤s106、基于所述分离矩阵及所述原始带噪信号,获得至少两个声源各自发出的音频信号。
本公开实施例所述的方法应用在终端中。这里,所述终端为集成了两个或两个以上麦克风的电子设备。例如,所述终端可以为车载终端、计算机、或服务器等。
在一实施例中,所述终端还可以是:与集成了两个或两个以上麦克风的预定设备连接的电子设备;所述电子设备基于所述连接接收所述预定设备采集的音频信号,且基于所述连接将处理后的音频信号发送给所述预定设备。例如,所述预定设备为音箱等。
在实际应用中,所述终端中包括至少两个麦克风,所述至少两个麦克风同时检测至少两个声源各自发出的音频信号,以获得所述至少两个麦克风各自的原始带噪信号。这里,可以理解的是,本实施例中所述至少两个麦克风对所述两个声源发出的音频信号是同步进行检测的。
在本公开实施例中,所述麦克风为2个或2个以上,所述声源为2个或2个以上。
在本公开实施例中,所述原始带噪信号为:包括至少两个声源发出的声音的混合信号。例如,所述麦克风为2个,分别为麦克风1和麦克风2;所述声源为2个,分别为声源1和声源2;则所述麦克风1的原始带噪信号为包括声源1和声源2的音频信号;所述麦克风2原始带噪信号同样也是均包括声源1和声源2音频信号。
例如,所述麦克风为3个,分别为麦克风1、麦克风2和麦克风3;所述声源为3个,分别为声源1、声源2和声源3;则所述麦克风1的原始带噪信号为包括声源1、声源2和声源3的音频信号;所述麦克风2和所述麦克风3的原始带噪信号同样也是均包括声源1、声源2和声源3的音频信号。
可以理解的是,若一个声源发出的声音在一个对应的麦克风中信号为音频信号,则其它声源在所述麦克风中的信号为噪声信号。本公开实施例是需要从至少两个麦克风中恢复至少两个声源发出的声源。
可以理解的是,一般声源个数是与麦克风个数相同的。若在一些实施例中,麦克风的个数小于所述声源的个数,可以对所述声源的个数进行降维,以降到与所述麦克风个数相等的维度。
可以理解的是,麦克风采集声源发出声音的音频信号时,可以采集至少一帧音频帧的音频信号,此时采集到的音频信号为每一个麦克风的原始带噪信号。原始带噪信号可以是时域信号也可以是频域信号。如果原始带噪信号为时域信号,则可以根据时频转换的运算将时域信号转换为频域信号。
这里,可以基于快速傅里叶变换(fastfouriertransform,fft),将时域信号进行频域变换。或者,可以基于短时傅里叶变换(short-timefouriertransform,stft),将时域信号进行频域变换。或者,还可以基于其它傅里叶变换,将时域信号进行频域变换。
示例性的,若第p个麦克风在第n帧的时域信号为:
根据上述频域的原始带噪信号,可以通过先验估计的方式获得初始的频域估计信号。
示例性的,可以根据初始化的分离矩阵,如单位矩阵;或者根据上一帧得到的分离矩阵,对原始带噪信号进行分离,得到各声源每一帧的频域估计信号。如此,为后续基于频域估计信号及分离矩阵分离出各声源的音频信号提供了依据。
在本公开实施例中,在预定的频带范围内,筛选出预定的静态频点与动态频点构成频点集合。然后仅根据频点集合中的各频点,来进行后续的计算,而不是直接根据所有频点依次进行处理。这里,预定的频带范围可以是音频信号的常见范围,也可以是根据音频处理需求确定的频带范围。例如,人类语言的频带范围或者人类听力的频带范围等。
在本公开实施例中,筛选出的频点包括预定的静态频点,静态频点可以是根据预定的规则,例如,固定间隔的基频点或者基频点的倍频点等等,其中,所述固定间隔可以是根据声波的谐波特性确定的。动态频点则是根据各频点自身的特性进行筛选,将频带范围内的频点满足预定筛选条件的频点加入到上述频点集合中。例如,根据频点对于噪声的敏感性,或者频点的音频数据的信号强弱以及各频点在每帧上的分离情况等等,来筛选出对应的频点。
通过本公开实施例的技术方案,根据预定的静态频点以及动态频点来共同确定频点集合,并根据频点集合中的各频点对应的频域估计信号确定上述加权系数。相对于现有技术中,直接根据每个频点的频域估计信号确定加权系数的方式,既考虑到了声波信号的依赖性规律,又考虑到了信号自身的数据特点,从而实现根据不同的依赖性对频点进行处理。如此,增强了各频点信号分离的准确性,提升了识别性能,减小了分离后的语音损伤。
此外,本公开实施例所提供的音频信号处理方法,相对于现有技术中,利用多个麦克风的波束形成技术实现对声源信号进行分离来说,无需考虑这些麦克风的位置,从而能够实现更高精准度的声源发出声音的音频信号的分离。若所述音频信号处理方法应用在两个麦克风的终端设备中,相对于现有技术中至少3个以上的多个麦克风的波束形成技术来提高语音质量来说,还大大减少了麦克风的个数,降低了终端的硬件成本。
在一些实施例中,所述在预定的频带范围确定包含多个预定的静态频点与动态频点的频点集合,包括:
在所述预定的频带范围中确定多个谐波子集,其中,每个谐波子集包含多个频点数据;所述多个谐波子集包含的频点为所述预定的静态频点;
根据所述预定的频带范围中各频点的先验分离矩阵的条件数,确定动态频点集合;其中,所述先验分离矩阵包括:预定的初始分离矩阵或上一帧各频点的分离矩阵;
根据所述谐波子集与所述动态频点集合的合集,确定所述频点集合。
在本公开实施例中,对于上述静态频点,是将预定的频带范围划分为多个谐波子集。这里,预定的频带范围可以是音频信号的常见范围,也可以是根据音频处理需求确定的频带范围。例如,根据基音频率范围,将整个频带划分为l个谐波子集。示例性的,基音频率范围为55hz至880hz,l=49,则第l个谐波子集中,基频为:fl=f1·2(l-1)/12。其中,fl=55hz。
在本公开实施例中,每个谐波子集包含多个频点数据,根据在各所述谐波子集内各频点的所述频域估计信号,可以确定所述谐波子集包含的各频点的加权系数。根据加权系数,可以进一步确定分离矩阵,然后根据确定各频点的分离矩阵。根据分离矩阵对原始带噪信号进行分离,得到各声源的后验频域估计信号。这里,后验频域估计信号相对于先验的频域估计信号,考虑到了各频点的加权系数,因此能够能加接近各声源的原始信号。
这里,令cl代表第l个谐波子集所包含的频点的集合。示例性的,该集合由基频fl以及基频fl的前m个倍频点。或者,该集合由基频fl倍频点附近带宽内的至少部分频点构成。
由于谐波子集体现谐波结构的频点集合是基于基频以及基频的前m个倍频点确定的,在倍频点范围内的频点间具有更强的依赖性。因此,根据各谐波子集中各频点对应的频域估计信号,确定上述加权系数,相对于相关技术中,直接根据各频点确定加权系数的方式,本公开实施例的上述静态部分,通过划分谐波子集的方式,将各频点按照不同的依赖性进行处理。
在本公开实施例中,还根据各频点的数据对应的先验分离矩阵的条件数,来确定动态频点集合。条件数是根据矩阵的范数与逆矩阵的范数的乘积确定的,用于判断矩阵的病态程度。病态程度也就是矩阵对于误差的敏感性,病态程度越高,频点之间的依赖性就越强。此外,由于先验分离矩阵包括上一帧各频点的分离矩阵,因此,体现了在当前音频信号中,各频点的数据特性,相比于静态部分谐波子集中的频点,考虑到了音频信号自身的数据特性,将谐波结构以外具有强依赖性的频点也添加到频点集合中。
在一些实施例中,所述在所述预定的频带范围中确定多个谐波子集,包括:
确定所述各频带范围中的基频点、前m个倍频点和各所述倍频点所在的第一预设带宽内的频点;
根据所述基频点、所述前m个倍频点和各所述倍频点所在的第一预设带宽内的频点组成的集合,确定所述谐波子集。
在本公开实施例中,确定各谐波子集内包含的频点,可以根据每个谐波子集的基频点,以及倍频点来确定。谐波子集内前m个倍频点,以及各倍频点附近的频点具有更强的依赖性,因此,谐波子集的上述频点集合cl包含上述基频点、前m个倍频点和各倍频点所在的预设带宽内的频点。
在一些实施例中,所述确定所述各频带范围中的基频点、前m个倍频点和各所述倍频点所在的第一预设带宽内的频点,包括:
根据所述预定的频带范围和划分所述谐波子集的预定个数,确定各所述谐波子集的基频点与各基频点对应的前m个倍频点;
根据各所述谐波子集的所述基频点与所述前m个倍频点,确定所述第一预设带宽内的频点。
上述谐波子集,也就是静态频点的集合可以由
其中,fk为第k个频点代表的频率,单位为hz;
第m个频点mfl附近的带宽为2δmfl。δ是一个参数控制带宽,即上述预设带宽,示例性的,δ=0.2。
如此,通过上述预设带宽的控制,确定各谐波子集的频点集合,基于谐波结构将整个频带上的频点按照不同的依赖性进行了分组,进而提升了后续处理的准确性。
在一些实施例中,所述根据所述预定的频带范围中各频点的先验分离矩阵的条件数,确定动态频点集合,包括:
确定所述频带范围中各频点的先验分离矩阵的条件数;
确定所述条件数大于预定阈值的第一类病态频点;
将以所述第一类病态频点为中心,且带宽为第二预设带宽的频带内的频点,确定为第二类病态频点;
根据所述第一类病态频点与所述第二类病态频点,确定所述动态频点集合。
在本公开实施例中,对于动态部分,对每帧音频信号中的各频点求条件数condw(k),其中,condw(k)=cond(w(k)),k=1,..,k,可将整个频带中的各频点k=1,..,k划分为d个子频带,分别在各子频带中确定条件数大于预定阈值,如,子频带内条件数最大的频点kmaxd,即上述第一类病态频点;并取该频点两侧δd带宽内频点,δd可根据实际需求确定,例如,δd=20hz。
对于各子频带中,挑选出的频点包括:od={k∈{1,...,k}|abs(k-kmaxd)<δd},d=1,2,…,d。则上述动态频点集合为各自频带上的动态频点的集合:o={o1,...,od}。
在本公开实施例中,可以分别在每个上述谐波子集中添加上述动态频点的集合,这样,对应于每个谐波子集中都加入了动态频点,即col={cl,o},l=1,...,l。
如此,根据预定的谐波结构以及频点的数据特点挑选出病态频点,从而可以对具有强依赖性的频点进行处理,提升了处理效率,并且更加符合音频信号的结构特点,因此具有更强的分离性能。
在一些实施例中,如图2所示,上述步骤s104中,所述根据所述频点集合内各频点的所述频域估计信号,确定所述频点集合包含的各频点的加权系数,包括:
步骤s201、根据所述频点集合内各频点的所述频域估计信号,确定所述频域估计信号的分布函数;
步骤s202、根据所述分布函数,确定所述各频点的所述加权系数。
在本公开实施例中,可以基于频点集合的各频点的加权系数、及每一帧的频域估计信号等,来不断对各频域估计分量所对应的频点不断更新,使得频域估计分量中各频点更新到的分离矩阵能够具有更好的分离性能,从而能够进一步提高分离出的音频信号的精确度。
这里,根据频点集合内各频点的频域估计信号,可以构建出频域估计信号的分布函数。由于频点集合包含了各基频以及基频的前若干个倍频点,形成了频点之间具有强依赖性的谐波子集,以及根据条件数确定的具有强依赖性的动态频点。因此,构建分布函数的过程中,可以基于音频信号的中具有强依赖性的频点的基础上进行构建。
示例性的,上述分离矩阵可以基于协方差矩阵解得的特征值确定得到。协方差矩阵vp(k,n)满足如下关系
在本公开实施例中,通过上述分布函数,可以基于筛选出的频点集合中的频域估计信号确定的加权系数进行构建。如此确定的加权系数,相对于相关技术中考虑整个频带所有频点的先验概率密度的方式来说,只需要考虑筛选出的具有强依赖性的频点的先验概率密度。这样,一方面能够简化计算,另一方面对于整个频带中相隔较远或者依赖性较弱的频点则无需考虑。有效提升了处理效率的同事,提升分离矩阵的分离性能,有利于后续基于分离矩阵分离出高质量的音频信号。
在一些实施例中,所述根据所述频点集合内各频点的所述频域估计信号,确定所述频域估计信号的分布函数,包括:
确定所述频点集合中各频点的所述频域估计信号与标准差比值的平方;
对各频带范围的所述频点集合的所述比值的平方求和,确定第一和;
获取所述频点集合对应的所述第一和的开方和,得到第二和;
根据所述第二和为变量的指数函数,确定所述分布函数。
在本公开实施例中,可以根据上述频点集合中频点的频域估计信号来构造分布函数。对于静态部分,可整个频带可以被划分为l个谐波子集,其中,每个谐波子集中包含有若干个频点。令cl代表第l个谐波子集所包含的频点的集合。
对于动态部分,令od表示第d个子频带的动态频点的集合,上述动态频点集合则表示为:o={o1,...,od}。
在本公开实施例中,频点集合中包括上述谐波子集中的静态频点的集合以及上述动态频点集合,表示为:col={cl,o},l=1,...,l。
基于此,上述分布函数可以根据如下公式(1)定义:
上述公式(1)中,k为频点,yp(k,n)为第p个声源的频点k在第n帧的频域估计信号,
在本公开实施例中,上述公式基于各谐波子集中所包含的频点进行运算,然后再基于各谐波子集进行运算,由此,相对于现有技术中,直接对整个频带上的所有频点进行运算,如,
在一些实施例中,所述根据所述频点集合内各频点的所述频域估计信号,确定所述频域估计信号的分布函数,包括:
确定所述频点集合中各频点的所述频域估计信号与标准差之间比值的平方;
对各频带范围的所述频点集合的各所述比值的平方求和,确定第三和;
根据所述频点集合对应的所述第三和的预定次方,确定第四和;
根据所述第四和为变量的指数函数,确定所述分布函数。
在本公开实施例中,与上一实施例类似,可以根据上述频点集合中频点的频域估计信号来构造分布函数。对于静态部分,可整个频带可以被划分为l个谐波子集,其中,每个谐波子集中包含有若干个频点。令cl代表第l个谐波子集所包含的频点的集合。
对于动态部分,令od表示第d个子频带的动态频点的集合,上述动态频点集合则表示为:o={o1,...,od}。
在本公开实施例中,频点集合中包括上述谐波子集中的静态频点的集合以及上述动态频点集合,表示为:col={cl,o},l=1,...,l。
基于此,上述分布函数还可以根据如下公式(2)定义:
上述公式(2)中,k为频点,yp(k,n)为第p个声源的频点k在第n帧的频域估计信号,
上述公式(2)与公式(1)类似,均以谐波子集中所包含的频点以及动态频点集合中的频点进行运算,与上述实施例中的公式(1)相对于现有技术具有相同的技术效果,这里不再赘述。
本公开实施例还提供以下示例:
图4是根据一示例性实施例示出的一种音频信号处理方法的流程图;其中,所述音频信号处理方法中,如图3所示,声源包括声源1和声源2,麦克风包括麦克风1和麦克风2。基于所述音频信号处理方法,从麦克风1和麦克风2的原始带噪信号中恢复出声源1和声源2的音频信号。如图4所示,所述方法包括以下步骤:
步骤s401:初始化w(k)和vp(k);
其中,初始化包括以下步骤:设系统帧长为nfft,则频点k=nfft/2+1。
1)初始化各个频点的分离矩阵;
2)初始化各声源在各个频点的加权协方差矩阵vp(k)。
步骤s402:获得第p个麦克风在第n帧的原始带噪信号;
对
则所述xp(k,)n的观测信号为:x(k,n)=[x1(k,n),x2(k,n)]t;其中,[x1(k,n),x2(k,n)]t为转置矩阵。
步骤s403:利用上一帧的w(k)获得两个声源信号的先验频域估计;
令两个声源信号的先验频域估计y(k,n)=[y1(k,n),y2(k,n)]t,其中y1(k,n),y2(k,n)分别为声源1和声源2在时频点(k,n)处的估计值。
通过分离矩阵w(k)对观测矩阵x(k,n)进行分离得到:y(k,n)=w(k)'x(k,n);其中,w'(k)为上一帧(即当前帧的前一帧)的分离矩阵。
则第p个声源在第n帧的先验频域估计为:
步骤s404:更新加权协方差矩阵vp(k,n);
计算更新的加权协方差矩阵:
其中,所述
但是这种概率密度分布假设了所有频点间都存在相同的依赖性。实际情况是,频点间距离间隔远时依赖性要弱,距离间隔近时依赖性要强。因此,本公开实施例中基于语音的谐波结构以及挑选的动态频点实现
具体地,对于静态部分,按照基音频率范围,将整个频带划分成l(示例性的,l=49)个谐波子集。其中,第l个谐波子集中基频为:fl=f1·2(l-1)/12,f1=55hz,fl范围为55hz到880hz,涵盖了整个人类语音基音频率的范围。
令cl代表第h个谐波子集所包含的频点的集合。它由基频fl的前m(特别m=8)个倍频点及倍频点附近带宽内的频点构成:
其中,fk为第k个频点代表的频率,单位为hz;
第m个频点mfl附近的带宽为2δmfl;
δ是一个参数控制带宽即预设带宽,示例性的,δ=0.2。
对于动态部分,每帧求每个频点w(k)的条件数condw(k)。
其中,condw(k)=cond(w(k)),k=1,..,k。将整个频带k=1,..,k平均划分为d个子频带,分别在各个子频带内搜索出条件数最大的频点记为kmaxd。
分别取其两侧δd带宽内频点,δd可根据实际需求进行调整,例如δd=20。
各频带内挑选出的频点可由od={k∈{1,...,k}|abs(k-kmaxd)<δd},d=1,…,d进行表示。所有od中的频点集合则为:o={o1,...,od}。
这里,o就为我们实时的每帧根据各个频点的分离情况挑选出的病态频点的集合。分别在每个cl中添加进所有病态频点:col={cl,o},l=1,...,l。
最终,根据col确定的分布模型有如下两种定义:
其中,α代表系数,
步骤s405:解特征问题,以求得特征向量ep(k,n);
这里,所述ep(k,n)为第p个麦克风对应的特征向量。
其中,求所述特征问题:v2(k,n)ep(k,n)=λp(k,n)v1(k,n)ep(k,n),得到,
其中,h(k,n)=v1-1(k,n)v2(k,n)。
步骤s406:获得各个频点的更新后的分离矩阵w(k);
基于上述特征问题的特征向量,求得更新后的当前帧的分离矩阵
步骤s407:利用当前帧的w(k)获得两个声源信号的后验频域估计;
利用当前帧的w(k)对原始带噪信号进行分离得到两个声源信号的后验频域估计y(k,n)=[y1(k,n),y2(k,n)]t=w(k)x(k,n)。
步骤s408:根据后验频域估计进行时频转换得到分离后的时域信号。
分别对
通过本公开实施例提供的方法,可以提升分离性能,减小分离后的语音损伤度,提高识别性能。同时,还可以用更少的麦克风达到相当的干扰抑制性能,降低智能产品的成本。
图5是根据一示例性实施例示出的一种音频信号的处理装置的框图。参照图5,该装置500包括第一获取模块501,第二获取模块502,第一确定模块503,第二确定模块504、第三确定模块505以及第三获取模块506。
第一获取模块501,用于由至少两个麦克风获取至少两个声源各自发出的音频信号,以获得所述至少两个麦克风各自的原始带噪信号;
第二获取模块502,用于对于时域上的每一帧,根据所述至少两个麦克风各自的所述原始带噪信号,获取所述至少两个声源各自的频域估计信号;
第一确定模块503,用于在预定的频带范围确定包含多个预定的静态频点与动态频点的频点集合;其中,所述动态频点为频点数据满足筛选条件的频点;
第二确定模块504,用于根据所述频点集合内各频点的所述频域估计信号,确定所述频点集合包含的各频点的加权系数;
第三确定模块505,用于根据所述加权系数,确定各频点的分离矩阵;
第三获取模块506,用于基于所述分离矩阵及所述原始带噪信号,获得至少两个声源各自发出的音频信号。
在一些实施例中,所述第一确定模块,包括:
第一确定子模块,用于在所述预定的频带范围中确定多个谐波子集,其中,每个谐波子集包含多个频点数据;所述多个谐波子集包含的频点为所述预定的静态频点;
第二确定子模块,用于根据所述预定的频带范围中各频点的先验分离矩阵的条件数,确定动态频点集合;其中,所述先验分离矩阵包括:预定的初始分离矩阵或上一帧各频点的分离矩阵;
第三确定子模块,用于根据所述谐波子集与所述动态频点集合的合集,确定所述频点集合。
在一些实施例中,所述第一确定子模块,包括:
第一确定单元,用于确定所述各频带范围中的基频点、前m个倍频点和各所述倍频点所在的第一预设带宽内的频点;
第二确定单元,用于根据所述基频点、所述前m个倍频点和各所述倍频点所在的第一预设带宽内的频点组成的集合,确定所述谐波子集。
在一些实施例中,所述第一确定单元,具体用于:
根据所述预定的频带范围和划分所述谐波子集的预定个数,确定各所述谐波子集的基频点与各基频点对应的前m个倍频点;
根据各所述谐波子集的所述基频点与所述前m个倍频点,确定所述第一预设带宽内的频点。
在一些实施例中,所述第二确定子模块,包括:
第三确定单元,用于确定所述频带范围中各频点的先验分离矩阵的条件数;
第四确定单元,用于确定所述条件数大于预定阈值的第一类病态频点;
第五确定单元,用于将以所述第一类病态频点为中心,且带宽为第二预设带宽的频带内的频点,确定为第二类病态频点;
第六确定单元,用于根据所述第一类病态频点与所述第二类病态频点,确定所述动态频点集合。
在一些实施例中,所述第二确定模块,包括:
第四确定子模块,用于根据所述频点集合内各频点的所述频域估计信号,确定所述频域估计信号的分布函数;
第五确定子模块,用于根据所述分布函数,确定所述各频点的所述加权系数。
在一些实施例中,所述第四确定子模块,具体用于:
确定所述频点集合中各频点的所述频域估计信号与标准差比值的平方;
对各频带范围的所述频点集合的所述比值的平方求和,确定第一和;
获取所述频点集合对应的所述第一和的开方和,得到第二和;
根据所述第二和为变量的指数函数,确定所述分布函数。
在一些实施例中,所述第四确定子模块,具体用于:
确定所述频点集合中各频点的所述频域估计信号与标准差之间比值的平方;
对各频带范围的所述频点集合的各所述比值的平方求和,确定第三和;
根据所述频点集合对应的所述第三和的预定次方,确定第四和;
根据所述第四和为变量的指数函数,确定所述分布函数。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种音频信号的处理装置600的实体结构框图。例如,装置600可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。
参照图6,装置600可以包括以下一个或多个组件:处理组件601,存储器602,电源组件603,多媒体组件604,音频组件605,输入/输出(i/o)接口606,传感器组件607,以及通信组件608。
处理组件601通常控制装置600的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件601可以包括一个或多个处理器610来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件601还可以包括一个或多个模块,便于处理组件601和其他组件之间的交互。例如,处理组件601可以包括多媒体模块,以方便多媒体组件604和处理组件601之间的交互。
存储器610被配置为存储各种类型的数据以支持在装置600的操作。这些数据的示例包括用于在装置600上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、快闪存储器、磁盘或光盘。
电源组件603为装置600的各种组件提供电力。电源组件603可以包括:电源管理系统,一个或多个电源,及其他与为装置600生成、管理和分配电力相关联的组件。
多媒体组件604包括在所述装置600和用户之间提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件604包括一个前置摄像头和/或后置摄像头。当装置600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和/或后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件605被配置为输出和/或输入音频信号。例如,音频组件605包括一个麦克风(mic),当装置600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器610或经由通信组件608发送。在一些实施例中,音频组件605还包括一个扬声器,用于输出音频信号。
i/o接口606为处理组件601和外围接口模块之间提供接口,上述外围接口模块可以是键盘、点击轮、按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件607包括一个或多个传感器,用于为装置600提供各个方面的状态评估。例如,传感器组件607可以检测到装置600的打开/关闭状态、组件的相对定位,例如所述组件为装置600的显示器和小键盘,传感器组件607还可以检测装置600或装置600的一个组件的位置改变,用户与装置600接触的存在或不存在,装置600方位或加速/减速和装置600的温度变化。传感器组件607可以包括接近传感器,被配置为在没有任何的物理接触时检测附近物体的存在。传感器组件607还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件607还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
通信组件608被配置为便于装置600和其他设备之间有线或无线方式的通信。装置600可以接入基于通信标准的无线网络,如wifi、2g或3g,或它们的组合。在一个示例性实施例中,通信组件608经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件608还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术、红外数据协会(irda)技术、超宽带(uwb)技术、蓝牙(bt)技术或其他技术来实现。
在示例性实施例中,装置600可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器602,上述指令可由装置600的处理器610执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行上述实施例中提供的任一种方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除