HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

基于端到端深度神经网络的音频信号处理方法及装置与流程

2021-01-28 17:01:34|389|起点商标网
基于端到端深度神经网络的音频信号处理方法及装置与流程

本申请涉及特征提取技术领域,具体涉及一种基于端到端深度神经网络的音频信号处理方法、装置、存储介质及计算机设备。



背景技术:

目前,利用深度神经网络进行音频信号处理,例如语音识别、语音分类、语音增强等,大多需要以音频的频域或者听觉域的信号作为输入。现有技术中,将音频信号从时域信号转换成频域或听觉域的信号,有两种方式:第一种方式是该转换过程独立于深度神经网络之外,对音频信号进行分帧、加窗、傅里叶变换等处理得到频域信号,或者在傅里叶变换后通过听觉域滤波器组的处理得到听觉域信号。第二种方式是把时域信号转化为频域或听觉域信号的过程,作为深度神经网络的前端层,使该过程的参数可训练化,该网络是“端到端”的形式。第一种方式可以节省计算机的运算资源消耗,但是被证实其效果不如第二种方式,而第二种方式主要采用全连接的方式来实现,由于其巨大的参数量以及时间复杂度,需耗费大量的运算资源。



技术实现要素:

本申请的主要目的为提供一种基于端到端深度神经网络的音频信号处理方法、装置、存储介质、计算机设备,旨在解决现有技术中通过深度神经网络的前端层将时域信号转换成听觉域信号时需耗费大量运算资源的技术问题。

基于上述发明目的,本申请实施例提出一种基于端到端深度神经网络的音频信号处理方法,包括:

获取音频信号;

对所述音频信号进行分帧处理,得到分帧后的时域信号;

将所述时域信号输入预设的第一加窗层进行处理,得到第一输出信号,所述第一输出信号为通过所述第一加窗层处理后已增加帧与帧之间的连续性的时域信号;

将所述第一输出信号输入预设的第一傅里叶变换层进行计算,得到变换成频域信号的第二输出信号;

将所述第二输出信号输入预设的听觉滤波层进行计算,得到已转换成听觉域的第三输出信号,其中所述第一加窗层、第一傅里叶变换层以及听觉滤波层为可训练的且作为深度神经网络的一部分。

进一步地,所述时域信号帧长为k,所述将所述时域信号输入预设的第一加窗层进行处理的步骤,包括:

对各所述时域信号按数字自然顺序进行编号,得到各所述时域信号的序列,所述时域信号的序列为x={x(0),x(1),x(2),...,x(k-1)};

对所述时域信号按编号的奇偶数分别调整序号,得到偶数部分的所述时域信号序列为x1={x(0),x(k/2),x(2),x(k/2+2),...,x(k/2-2),x(k-2)},以及奇数部分的所述时域信号序列为x2={x(1),x(k/2+1),x(3),x(k/2+3),...,x(k/2-1),x(k-1)};

将调完序号的所述奇数部分拼接于所述偶数部分之后,得到各所述时域信号的序列为x'={x(0),x(k/2),x(2),x(k/2+2),...,x(k/2-2),x(k-2),x(1),x(k/2+1),x(3),x(k/2+3),...,x(k/2-1),x(k-1)},其中,k=2n,n为正整数;

对调序后的时域信号采用如下公式做加窗处理:x''=x'▫w0,x'为调完序号后的时域信号,w0为窗系数,▫为哈达玛积符号。

进一步地,所述第一傅里叶变换层包括n层网络运算层,其中,,k为所述第二输出信号的频点数,所述第二输出信号的频点数与所述时域信号的帧长一致。

进一步地,所述将所述第一输出信号输入预设的第一傅里叶变换层进行计算,得到变换成频域信号的第二输出信号的步骤,包括:

将所述第一输出信号输入到所述第一傅里叶变换层中的第一预设公式进行计算,得到所述第二输出信号;

其中,所述第一预设公式为:x=wn·wn-1…w1·x'',x表示所述第二输出信号,wn为所述第一傅里叶变换层中第n层网络运算层的权值矩阵,x''为经过调序及加窗处理后的第一输出信号。

进一步地,所述听觉滤波层包括多个节点,每一所述节点分别对应一个频率区间,所述将所述第二输出信号输入预设的听觉滤波层进行计算,得到已转换成听觉域的第三输出信号的步骤之前,包括:

获取各所述第二输出信号的信号频率以及各所述节点对应的频率区间;

判断出所述信号频率所属的频率区间;

依据所述判断结果将所述第二输出信号输入至与所述频率区间对应的节点。

进一步地,所述听觉滤波层包括b个节点,所述将所述第二输出信号输入预设的听觉滤波层进行计算的步骤,包括:

将所述第二输出信号输入所述听觉滤波层中第二预设公式进行计算,得到所述第三输出信号;

其中,所述第二预设公式为:,x(k)为所述第二输出信号的计算公式,为第一傅里叶变换层输出层第k个节点连接到听觉滤波层第m个节点上的权值。

进一步地,所述音频信号为混合语音的音频信号,所述混合语音为多个纯净语音混合而得到的语音;所述听觉滤波层之后依次连接有u-net神经网络层、第二傅里叶变换层以及第二加窗层;所述将所述第一输出信号输入预设的第一傅里叶变换层进行计算,得到变换成频域信号的第二输出信号的步骤之后,还包括:

分别通过预设的功率谱公式以及相位谱公式求得所述第二输出信号的功率谱以及相位谱,并根据预设的公式求得所述第三输出信号的功率谱;

将所述第三输出信号的功率谱输入到所述u-net神经网络层中,依据第二输出信号的功率谱计算得到多个纯净语音的功率谱;

将各所述纯净语音的功率谱与所述第二输出信号的相位谱进行计算得到各所述纯净语音的频谱数据;

把各不同所述纯净语音的频谱输入所述第二傅里叶变换层,通过所述第二傅里叶变换层对输入数据的虚部求相反数得到所述第二傅里叶变换层的输出数据,并所述第二傅里叶变换层的输出数据输入所述第二加窗层,得到各所述纯净语音的时域数据。

本申请还提供一种基于端到端深度神经网络的音频信号处理装置包括:

获取音频单元,用于获取音频信号;

分帧处理单元,用于对所述音频信号进行分帧处理,得到分帧后的时域信号;

加窗处理单元,用于将所述时域信号输入预设的第一加窗层进行处理,得到第一输出信号,所述第一输出信号为通过所述第一加窗层处理后已增加帧与帧之间的连续性的时域信号;

变换处理单元,用于将所述第一输出信号输入预设的第一傅里叶变换层进行计算,得到变换成频域信号的第二输出信号;

滤波处理单元,用于将所述第二输出信号输入预设的听觉滤波层进行计算,得到已转换成听觉域的第三输出信号,其中所述第一加窗层、第一傅里叶变换层以及听觉滤波层为可训练的且作用深度神经网络的一部分。

进一步地,所述听觉滤波层包括多个节点,每一所述节点分别对应一个频率区间,所述处理装置还包括:

获取频率单元,用于获取各所述第二输出信号的信号频率以及各所述节点对应的频率区间;

判断区间单元,用于判断出所述信号频率所属的频率区间;

输入节点单元,用于依据所述判断结果将所述第二输出信号输入至与所述频率区间对应的节点。

本申请还提供本申请实施例还提出了一种存储介质,其为计算机可读的存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述基于端到端深度神经网络的音频信号处理方法。

本申请实施例还提出了一种计算机设备,其包括处理器、存储器及存储于所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被执行时实现上述基于端到端深度神经网络的音频信号处理方法。

本申请的有益效果:

本申请提出了一种基于端到端深度神经网络的音频信号处理方法、存储介质及计算机设备,该方法中将预设的第一加窗层、第一傅里叶变换层以及听觉滤波层作为深度神经网络一部分,对其进行训练使用,以便将输入深度神经网络的时域信号转换成听觉域信号,再通过深度神经网络的其他部分来进行语音识别或语音增强等,这样可以直接从时域信号到输出结果,不但实现了深度神经网络的端到端计算,而且与现有技术中全连接方式的网络前端相比,其网络连接稀疏化,使得参数量、运算量大大减小。

附图说明

图1是本申请一实施例的基于端到端深度神经网络的音频信号处理方法的流程示意图;

图2是本申请一实施例的基于端到端深度神经网络的音频信号处理方法的信号流向示意图;

图3是本申请一实施例的基于端到端深度神经网络的音频信号处理装置的结构示意框图;

图4是本申请的存储介质的一实施例的结构示意框图;

图5是本申请的计算机设备的一实施例的结构示意框图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

另外,在本申请中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

参照图1,本申请提供的一种基于端到端深度神经网络的音频信号处理方法的流程示意图,该方法,包括:

步骤s1:获取音频信号;

步骤s2:对所述音频信号进行分帧处理,得到分帧后的时域信号;

步骤s3:将所述时域信号输入预设的第一加窗层进行处理,得到第一输出信号,所述第一输出信号为通过所述第一加窗层处理后已增加帧与帧之间的连续性的时域信号;

步骤s4:将所述第一输出信号输入预设的第一傅里叶变换层进行计算,得到变换成频域信号的第二输出信号;

步骤s5:将所述第二输出信号输入预设的听觉滤波层进行计算,得到已转换成听觉域的第三输出信号,其中所述第一加窗层、第一傅里叶变换层以及听觉滤波层为可训练的且作为预设的深度神经网络的一部分。

需知采用深度神经网络对语音进行识别时,需要对输入该深度神经网络的语音进行处理,将其转换成听觉域信号再输入,上述对音频信号的处理方法主要用于将音频信号转换成听觉域信号,本申请中,为了减少网络的运算量,依次采用第一加窗层、第一傅里叶变换层以及听觉滤波层搭建,以及训练得到深度神经网络的网络前端,一般而言,网络前端用于对信号进行处理,如对信号进行变换,或进行特征优化等处理,本实施例中的网络前端用于将输入网络的时域信号转换成听觉域信号,本实施例中,将上述第一加窗层、第一傅里叶变换层以及听觉滤波层作为深度神经网络的一部分,连接于cnn或rnn等网络之前,这样只需将信号输入该深度神经网络,即可直接得到输出结果,实现端到端获取计算结果。

如上述步骤s1-s2所述,首先获取需要进行处理的音频信号,这些音频信号可以通过爬取或用户输入得到,在分帧之前,用户可自行设置帧移或帧叠,以及帧长,其中,在一帧数据中帧叠的数据为为上一帧的数据,帧移的数据为新数据;当获取到音频信号时,同时获取预设的帧长,由于帧长由帧移与帧叠相加得到,当帧移已设定,则依据帧长以及预设的帧移,可得到帧叠,当帧叠已设定,则可依据帧长以及预设的帧叠得到帧移,然后按照帧长、帧移与帧叠进行分帧,得到相应的时域信号。

举例地,设置输入音频信号的帧长为l、帧移为l2,帧叠为l1,其中l=l1+l2,上述l2取值可为。一帧音频信号的时间,其中为采样频率,例如一段音频时长为20ms左右,采样频率为16khz的时候,则可以设定帧长为256点,当设定帧长以及帧移后,即可得到帧叠,然后按照设定的值进行分帧,得到相应的时域信号。

如上述步骤s3所述,将分帧后的时域信号输入第一加窗层进行处理,上述第一加窗层用于提高信号分帧后的连续性,即经第一加窗层处理后,上述第一输出信号为已增加帧与帧之间的连续性的时域信号,训练时第一加窗层的初始值可采用hanning、hamming、blackman中的任一种窗函数来进行运算,且可通过训练窗函数中的系数作为该第一加窗层的权值。

在一个实施例中,为了减小后续运算量,使输入信号与第一傅里叶变换层适配,在加窗处理同时对时域信号进行调序,即对时域信号的输入顺序进行调整,例如先可按奇偶性对时域信号进行调序,再进行加窗,以得到提高连续性的第一输出信号,上述时域信号帧长为k,具体地,上述步骤s3包括:

步骤s31:对各所述时域信号按数字自然顺序进行编号,得到各所述时域信号的序列,所述时域信号的序列为x={x(0),x(1),x(2),...,x(k-1)};

步骤s32:对所述时域信号按编号的奇偶数分别调整序号,得到偶数部分的所述时域信号序列为x1={x(0),x(k/2),x(2),x(k/2+2),...,x(k/2-2),x(k-2)},以及奇数部分的所述时域信号序列为x2={x(1),x(k/2+1),x(3),x(k/2+3),...,x(k/2-1),x(k-1)};

步骤s33:将调完序号的所述奇数部分拼接于所述偶数部分之后,得到各所述时域信号的序列为x’={x(0),x(k/2),x(2),x(k/2+2),...,x(k/2-2),x(k-2),x(1),x(k/2+1),x(3),x(k/2+3),...,x(k/2-1),x(k-1)};

步骤s34:对调序后的时域信号采用如下公式做加窗处理:x''=x'▫w0,x'为调完序号后的时域信号,w0为窗系数,▫为哈达玛积符号。

本实施例中,先对各时域信号进行编号,从自然数0开始,按数字自然顺序依次编号,例如输入序列为:时域信号x={x(0),x(1),x(2),...,x(k-1)},然后将时域信号分成奇数部分以及偶数部分,参照图2的调序部分,针对偶数部分,将编号为k/2的时域信号调整至在偶数部分中排序第一与排序第二的时域信号之间,将编号为k/2+2的时域信号调整至在偶数部分中排序第二与排序第三的时域信号之间,以此类推,直至将将编号为k-2的时域信号调整至偶数部分中编号为k/2-2的时域信号之后,即x1={x(0),x(k/2),x(2),x(k/2+2),...,x(k/2-2),x(k-2)}。针对奇数部分,将将编号为k/2+1的时域信号调整至在奇数部分中排序第一与排序第二的时域信号之间,将编号为k/2+3的时域信号调整至在奇数部分中排序第二与排序第三的时域信号之间,以此类推,直至将编号为k-1的时域信号调整至奇数部分中编号为k/2-1的时域信号之后,即x2={x(1),x(k/2+1),x(3),x(k/2+3),...,x(k/2-1),x(k-1)},然后将调完序号的奇数部分拼接于偶数部分之后,即x’={x(0),x(k/2),x(2),x(k/2+2),...,x(k/2-2),x(k-2),x(1),x(k/2+1),x(3),x(k/2+3),...,x(k/2-1),x(k-1)},其中,k=2n,n为正整数,对时域信号进行调序后,可对这些时域信号进行加窗处理,具体通过如下公式计算:x''=x'▫w0,x'为调完序号后的时域信号,w0为窗系数,▫为哈达玛积符号。优选地,在训练时w0的初始值可以为汉明窗系数。值得注意的是,在训练上述窗系数时,将窗系数的顺序与上述时域信号的序号对应,即窗系数也按照上述时域信号的调序方式进行调序,使两者相对应,通过窗函数运算后,得到上述第一输出信号。

如上述步骤s4所述,将经第一加窗层处理后的第一输出信号输入预设的第一傅里叶变换层进行计算,得到变换成频域信号的第二输出信号,上述第一傅里叶变换层可采用按时间抽取(dit)的方式构建的网络结构,也可以选用按频率抽取(dif)的方式构建的网络结构,为了提高速度,上述第一傅里叶变换层采用fft(快速傅里叶变换)方式进行运算,优选地,第一傅里叶变换层采用蝶形fft运算方式,且按时间抽取(dit)方式形成的网络结构,本实施例中,上述帧长可设定等同时域信号的个数,同时等同于傅里叶变换后的第二输出信号的频点数,即,n为正整数;则第一傅里叶变换层的层数为,其中k为上述时域信号的帧长,也即为第二输出信号的频点数,该网络层中的权值初始值为fft中的旋转因子。

进一步地,第一傅里叶变换层中,可利用第一预设公式计算出上述第二输出信号:x=wn·wn-1…w1·x'',其中,x表示变换后为频域的第二输出信号,wn为第一傅里叶变换层中第n层网络运算层的权值矩阵,在训练时,其初始值为第n层网络运算层的旋转因子矩阵,x''经过调序及加窗处理后的第一输出信号。

本实施例中,上述旋转因子矩阵w由以下公式计算得到:表示的单位矩阵,表示克罗内克积,是一个的对角矩阵,初始状态下,该旋转因子矩阵的主对角线上的元素为。值得注意的是,该矩阵中,初始值为0的元素,所对应的节点无需连接,举例地,以第一层的初始状态为例,初始值,其中总共有的元素块。第一列元素为,说明该第一傅里叶变换层中第一个输出数据,为第一个输入数据乘以1加上第二个输入数据乘以1,第二个输出数据为第一个输入数据乘以1加上第二个输入数据乘以-1,第三个到第k个输入数据不用连接第一个输出数据,即初始值为0的元素,所对应的节点无需连接,具体可参照图2中的蝶形运算部分。

通过上述公式计算得到第二输出信号,也即得到频域信号,通过傅里叶转换提取得到各个信号的频率成份。针对第一傅里叶变换层,训练阶段,既可通过反向传播调节该第一傅里叶变换层的参数,而由于共轭对称性,可以只通过反向传播调节一半节点的参数,而另一半参数通过共享的方式来调节。

如上述步骤s5所述,将第二输出信号输入预设的听觉滤波层进行计算,得到已转换成听觉域的第三输出信号,听觉滤波层在训练时的权值初始值由听觉滤波器组构成,例如mel尺度滤波器组、bark尺度滤波器组、gammatone滤波器组等。本实施例中采用mel尺度滤波器组,mel尺度滤波器组由三角带通滤波器组成,其个数为听觉滤波层节点的个数。具体而言,听觉滤波层中,可利用以下第二预设公式计算出各节点的第三输出信号:

其中,x(k)为所述第二输出信号的计算公式,k为所述第二输出信号的频点数,等同于其帧长,为第一傅里叶变换层输出层第k个节点连接到听觉滤波层第m个节点上的权值,可选择地,在训练时其初始值可为三角带通滤波器系数,b为听觉滤波层节点。通过上述公式计算得到第三输出信号,也即听觉域信号。

在一个实施例中,上述听觉滤波层具有多个节点,上述步骤s5之前,包括:

步骤s51:获取各所述第二输出信号的信号频率以及各所述节点对应的频率区间;

步骤s52:判断出所述信号频率所属的频率区间;

步骤s53:依据所述判断结果将所述第二输出信号输入至与所述频率区间对应的节点。

本实施例中,获取各第二输出信号的信号频率以及各节点对应的频率区间,其中第二输出信号的信号频率可直接在其进行傅里叶变换时获取,上述各节点对应的频率区间由听觉滤波层的节点个数以及预设的采样频率得到,通过节点个数以及采样频率以及预设的听觉域频率变换公式,可计算出各节点对应的频率区间,然后判断出信号频率所属的频率区间,即确定信号频率落在哪个频率区间,再将第二输出信号输入至与该频率区间对应的节点。

举例地,参照图2中的听觉滤波器组部分,已知听觉滤波器可作用对应的是采样频率一半的频率,也即当采样频率为fs时,则听觉滤波器对应可进行运算的是,故而对应的第一傅里叶变换层的输出节点有个,上述听觉域频率变换公式为,其中f为采样频率fs的一半。当上述听觉滤波层具有b个节点时,例如24个时,采样频率为8000hz,因此,f=4000hz,则由公式可知对应的mel频率上限为2146mel,当听觉滤波层有24个节点,则分配到每个节点的频率为89.4mel,由上述公式得到对应的频率为57.8hz,以此作为第一区间限值,由于mel频率是均匀递增的,则第二个节点mel频率为178.8mel,由上述公式得到对应的频率为120hz,此为第二区间限值,按同样方式得到第三个区间限值220hz,以此类推,得到节点的所有区间限值,与上述输入的时域信号的序列对应,听觉滤波层第一个节点的频率区间为起始区间限值到第二个区间限值之间,即频率区间为(0hz,120hz),第二个节点的频率区间为第一个区间限值到第三个区间限值之间,即频率区间为(57.8hz,220hz)。

本实施例中,在第一傅里叶变换层中对第一输出信号进行计算后,依次按频率递增的方式通过各输出节点输出第二输出信号,例如采样频率为8000hz,第一傅里叶变换层输出节点有128个,则第一个节点输出信号的信号频率为0hz,第二个节点输出信号的信号频率62.5hz,第三个节点输出信号的信号频率为125hz,以此类推,到最后一个节点输出信号的信号频率为4000hz,值得注意的是,由于信号的频谱具有共轭对称性,此处最后一个节点输出信号的频率为4000hz,而非8000hz。而由听觉域频率变换公式计算,得到听觉滤波层的第一个节点的频率区间为(0hz,120hz),第二个节点的频率区间为(57.8hz,220hz),如此按频率所属的区间,可将第一个第一傅里叶变换层输出节点的信号输入至听觉滤波层第一个节点,第二个第一傅里叶变换层输出节点的信号输入至听觉滤波层第一个节点以及第二个节点,以此类推,直接将全部第二输出信号输入至听觉滤波层,而由于第一傅里叶变换层各输出节点是按频率均匀递增的方式输出信号,而按听觉域频率变换公式计算出的听觉滤波层各节点的频率区间范围递增却越来越大,故越是排序在前的听觉滤波层节点接收的第二输出信号越少,这样将网络连接稀疏化,可使得参数量、运算量大大减小。

在另一实施例中,在听觉滤波层与深度神经网络的其他部分之间,还可以对听觉域的第三输出信号提取对数听觉能量谱,以便后续深度神经网络能够以该对数听觉能量谱作为特征,使其语音识别或声纹识别效果更好,具体地,可以先求出听觉滤波层输出的能量并求得其对数,具体可利用以下公式:,来求出对应的能量谱,其中,y(m)为第三输出信号。

在另一个实施例中,当需要对混合语音做识别时,可在上述第一加窗层、第一傅里叶变换层以及听觉滤波层的基础上再增加用于分离语音的网络层,上述混合语音包括至少两个人的语音,本实施例中,用于分离语音的网络结构采用u-net神经网络构建,即在听觉滤波层之后再连接u-net神经网络层,为了得到时域信号,可在u-net神经网络层之后再连接傅里叶变换层以及调序加窗层,为了便于区别,将再加入的傅里叶变换层以及调序加窗层分别命为第二傅里叶变换层以及第二加窗层,也即本实施例中,将入第一加窗层、第一傅里叶变换层、听觉滤波层、u-net神经网络层、第二傅里叶变换层以及第二加窗层作为深度神经网络的一部分,连接于cnn或rnn等网络之前。这样将混合语音的音频信号依次输入第一加窗层、第一傅里叶变换层、听觉滤波层、u-net神经网络层、第二傅里叶变换层以及第二加窗层处理后,得到经分离后的不同纯净语音的时域信号,上述混合语音为多个纯净语音混合而得,例如将甲乙两个人的混合语音输入,则分别得到对应甲语音的时域信号,以及对应乙语音的时域信号。

同理的,本实施例加入的u-net神经网络层以及第二傅里叶变换层以及调序第二加窗层也是可训练的,具体而言,其训练方法包括:

s11:分别给第一加窗层、第一傅里叶变换层、听觉滤波层、u-net神经网络层、第二傅里叶变换层以及第二加窗层中的各个参数赋予初值,

s12:获取混合语音训练数据,然后对应训练数据进行分帧,得到f帧训练数据;

此步骤中,混合语音可为两个人同时说话的语音数据,也即每个训练数据是一段两个说话人的混合语音。

s13:将f帧训练数据依次送入第一加窗层、第一傅里叶变换层进行处理,得到第一傅里叶变换层输出的数据后,将其输出的数据分别求得对应的功率谱、相位谱。

此步骤中,将f帧训练数据送入第一加窗层、第一傅里叶变换层,在第一傅里叶变换层之后分进行三方面计算,一是用于求第一傅里叶变换层输出的数据的功率谱,具体可采用该以下公式计算:,其中real(·)是求实部,imag(·)是求虚部,表示第一傅里叶变换层输出的数据;二是求fft层输出的数据的相位谱,具体可采用该以下公式计算:。三是将fft层输出的数据作为听觉滤波层的输入,再求听觉滤波层输出的功率谱,并将它作为u-net神经网络层的输入数据。

s14:将u-net神经网络层的输出数据作为mask,分别计算出各不同纯净语音的功率谱,然后与上述第一傅里叶变换层输出数据的相位谱进行计算得到各纯净语音的频谱。

此步骤中,在计算时,依据第一傅里叶变换层输出的数据的功率谱进行计算,上述纯净语音为一个人的单独语音,例如上述混合语音为甲乙两个人同时说话的混合语音数据,不同纯净语音包括甲的第一纯净语音以及乙的第二纯净语音,对应的,上述mask包括两种,分别表示为,则可以通过以下公式:,得到第一纯净语音以及第二纯净语音的功率谱,其中,为第一傅里叶变换层输出的数据的功率谱。

继而通过fft层输出数据的相位谱,可以得到第一纯净语音以及第二纯净语音的频谱,具体通过分别以下公式进行计算:

其中,为第一傅里叶变换层输出数据的相位谱,为纯净语音的功率谱。

s15:把各不同纯净语音的频谱输入第二傅里叶变换层,通过第二傅里叶变换层对输入数据的虚部求相反数,并将第二傅里叶变换层的输出数据输入第二加窗层,得到各纯净语音的时域数据。

此步骤中,上述第二傅里叶变换层的结构可以是第一傅里叶变换层的时间反转,即两者对称相反,且本实施例中由于分离出两种纯净语音,故第二傅里叶变换层的个数可以为第一傅里叶变换层的两倍,本申请中第二傅里叶变换层与第一傅里叶变换层的个数关系,可依据分离出的纯净语音的个数来确定。继而将该层求得的数据进入第二加窗层,得到各纯净语音的时域数据,此层包括调序以及加窗两个步骤,与前述步骤一致,此处不再赘述。

s16:将各纯净语音的数据和其对应的原始纯净语音数据求mse,mse即均方误差,以其作为loss函数,反向传播调节上述各网络层中的可训练参数,直到loss函数收敛。

此步骤中,以mse作为损失函数,通过最小化损失函数,反向传播调节上述各网络层中的可训练参数,直到loss函数收敛,得到可进行语音分离的网络模型。

进一步地,对上述训练好的网络模型进行测试,首先实时输入混合语音时域数据,需知,u-net神经网络层是针对f帧数据进行处理,则此时第一加窗层、第一傅里叶变换层以及听觉滤波层分别具有f个,每个对应处理一帧数据,然后同时输入到u-net神经网络层,当实时获取到混合语音时域数据时,可通过缓存器缓存f帧混合语音时域数据,然后再把f帧混合语音时域数据输入上述训练好的网络模型中,最终得到已分离的各个纯净语音的时域数据。

进一步地,当对上述网络模型进行使用时,首先实时输入f帧混合语音时域数据,然后对每帧语音数据进行分帧处理,并将这些处理后的数据依次输入第一加窗层、第一傅里叶变换层进行处理,然后分别通过上述预设的功率谱公式以及相位谱公式求得第二输出信号的功率谱以及相位谱,并根据上述预设的公式求得第三输出信号的功率谱;再将第三输出信号的功率谱输入到u-net神经网络层中,依据第二输出信号的功率谱计算得到各纯净语音的功率谱;将各纯净语音的功率谱与第二输出信号的相位谱进行计算得到各纯净语音的频谱数据;把各不同纯净语音的频谱输入第二傅里叶变换层,通过第二傅里叶变换层对输入数据的虚部求相反数得到第二傅里叶变换层的输出数据,并第二傅里叶变换层的输出数据输入第二加窗层,得到各纯净语音的时域数据。

本申请还提出了一种基于端到端深度神经网络的音频信号处理装置,用于执行上述基于端到端深度神经网络的音频信号处理方法,基于端到端深度神经网络的音频信号处理装置具体可通过软件或硬件的形式实现。参照图3,上述基于端到端深度神经网络的音频信号处理装置包括:

获取音频单元100,用于获取音频信号;

分帧处理单元200,用于对所述音频信号进行分帧处理,得到分帧后的时域信号;

加窗处理单元300,用于将所述时域信号输入预设的第一加窗层进行处理,得到第一输出信号,所述第一输出信号为通过所述第一加窗层处理后已增加帧与帧之间的连续性的时域信号;

变换处理单元400,用于将所述第一输出信号输入预设的第一傅里叶变换层进行计算,得到变换成频域信号的第二输出信号;

滤波处理单元500,用于将所述第二输出信号输入预设的听觉滤波层进行计算,得到已转换成听觉域的第三输出信号,其中所述第一加窗层、第一傅里叶变换层以及听觉滤波层为可训练的且作为深度神经网络的一部分。

需知采用深度神经网络对语音进行识别时,需要对输入该深度神经网络的语音进行处理,将其转换成听觉域信号再输入,上述对音频信号的处理方法主要用于将音频信号转换成听觉域信号,本申请中,为了减少网络的运算量,依次采用第一加窗层、第一傅里叶变换层以及听觉滤波层搭建,以及训练得到深度神经网络的网络前端,一般而言,网络前端用于对信号进行处理,如对信号进行变换,或进行特征优化等处理,本实施例中的网络前端用于将输入网络的时域信号转换成听觉域信号,本实施例中,将上述第一加窗层、第一傅里叶变换层以及听觉滤波层作为深度神经网络的一部分,连接于cnn或rnn等网络之前,这样只需将信号输入该深度神经网络,即可直接得到输出结果,实现端到端获取计算结果。

如上述获取音频单元100及分帧处理单元200所述,首先获取需要进行处理的音频信号,这些音频信号可以通过爬取或用户输入得到,在分帧之前,用户可自行设置帧移或帧叠,以及帧长,其中,在一帧数据中帧叠的数据为为上一帧的数据,帧移的数据为新数据;当获取到音频信号时,同时获取预设的帧长,由于帧长由帧移与帧叠相加得到,当帧移已设定,则依据帧长以及预设的帧移,可得到帧叠,当帧叠已设定,则可依据帧长以及预设的帧叠得到帧移,然后按照帧长、帧移与帧叠进行分帧,得到相应的时域信号。

举例地,设置输入音频信号的帧长为l、帧移为l2,帧叠为l1,其中l=l1+l2,上述l2的取值可为。一帧音频信号的时间,其中为采样频率,例如一段音频时长为20m左右,采样频率为16khz的时候,则可以设定帧长为256点,当设定帧长以及帧移后,即可得到帧叠,然后按照设定的值进行分帧,得到相应的时域信号。

如上述加窗处理单元300所述,将分帧后的时域信号输入第一加窗层进行处理,上述第一加窗层用于提高信号分帧后的连续性,即经第一加窗层处理后,上述第一输出信号为已增加帧与帧之间的连续性的时域信号,训练时第一加窗层的初始值可采用hanning、hamming、blackman中的任一种窗函数来进行运算,且可通过训练窗函数中的系数作为该第一加窗层的权值。

在一个实施例中,为了减小后续运算量,使输入信号与第一傅里叶变换层适配,在加窗处理同时对时域信号进行调序,即对时域信号的输入顺序进行调整,例如可先按奇偶性对时域信号进行调序,再进行加窗,以得到提高连续性的第一输出信号,上述时域信号帧长为k,具体地,上述加窗处理单元300包括:

信号编号子单元,用于对各所述时域信号按数字自然顺序进行编号,得到各所述时域信号的序列,所述时域信号的序列为x={x(0),x(1),x(2),...,x(k-1)};

信号调序子单元,用于对所述时域信号按编号的奇偶数分别调整序号,得到偶数部分的所述时域信号序列为x1={x(0),x(k/2),x(2),x(k/2+2),...,x(k/2-2),x(k-2)},以及奇数部分的所述时域信号序列为x2={x(1),x(k/2+1),x(3),x(k/2+3),...,x(k/2-1),x(k-1)};

拼接信号子单元,用于将调完序号的所述奇数部分拼接于所述偶数部分之后,得到各所述时域信号的序列为x’={x(0),x(k/2),x(2),x(k/2+2),...,x(k/2-2),x(k-2),x(1),x(k/2+1),x(3),x(k/2+3),...,x(k/2-1),x(k-1)};

加窗处理子单元,用于对调序后的时域信号采用如下公式做加窗处理:x''=x'▫w0,x'为调完序号后的时域信号,w0为窗系数,▫为哈达玛积符号。

本实施例中,先对各时域信号进行编号,从自然数0开始,按数字自然顺序依次编号,例如输入序列为:时域信号x={x(0),x(1),x(2),...,x(k-1)},然后将时域信号分成奇数部分以及偶数部分,参照图2的调序部分,针对偶数部分,将编号为k/2的时域信号调整至在偶数部分中排序第一与排序第二的时域信号之间,将编号为k/2+2的时域信号调整至在偶数部分中排序第二与排序第三的时域信号之间,以此类推,直至将将编号为k-2的时域信号调整至偶数部分中编号为k/2-2的时域信号之后,即x1={x(0),x(k/2),x(2),x(k/2+2),...,x(k/2-2),x(k-2)}。针对奇数部分,将将编号为k/2+1的时域信号调整至在奇数部分中排序第一与排序第二的时域信号之间,将编号为k/2+3的时域信号调整至在奇数部分中排序第二与排序第三的时域信号之间,以此类推,直至将编号为k-1的时域信号调整至奇数部分中编号为k/2-1的时域信号之后,即x2={x(1),x(k/2+1),x(3),x(k/2+3),...,x(k/2-1),x(k-1)},然后将调完序号的奇数部分拼接于偶数部分之后,即x’={x(0),x(k/2),x(2),x(k/2+2),...,x(k/2-2),x(k-2),x(1),x(k/2+1),x(3),x(k/2+3),...,x(k/2-1),x(k-1)},其中,k=2n,n为正整数,对时域信号进行调序后,可对这些时域信号进行加窗处理,具体通过如下公式计算:x''=x'▫w0,x'为调完序号后的时域信号,w0为窗系数,▫为哈达玛积符号。优选地,在训练时w0的初始值可以为汉明窗系数。值得注意的是,在训练上述窗系数时,将窗系数的顺序与上述时域信号的序号对应,即窗系数也按照上述时域信号的调序方式进行调序,使两者相对应,通过窗函数运算后,得到上述第一输出信号。

如上述变换处理单元400所述,将经第一加窗层处理后的第一输出信号输入预设的第一傅里叶变换层进行计算,得到变换成频域信号的第二输出信号,上述第一傅里叶变换层可采用按时间抽取(dit)的方式构建的网络结构,也可以选用按频率抽取(dif)的方式构建的网络结构,为了提高速度,上述第一傅里叶变换层采用fft(快速傅里叶变换)方式进行运算,优选地,第一傅里叶变换层采用蝶形fft运算方式,且按时间抽取(dit)方式形成的网络结构,本实施例中,上述帧长可设定等同时域信号的个数k,同时等同于傅里叶变换后的第二输出信号的频点数,即,n为正整数;则第一傅里叶变换层的层数为,k为时域信号的帧长,也即为第二输出信号的频点数,该网络层中的权值初始值为fft中的旋转因子。

进一步地,第一傅里叶变换层中,可利用第一预设公式计算出上述第二输出信号:x=wn·wn-1…w1·x'',其中,x表示变换后为频域的第二输出信号,wn为第一傅里叶变换层中第n层网络运算层的权值矩阵,在训练时,其初始值为第n层网络运算层的旋转因子矩阵,x''经过调序及第一加窗层处理后的第一输出信号。

本实施例中,上述旋转因子矩阵w由以下公式计算得到:表示的单位矩阵,表示克罗内克积,是一个的对角矩阵,初始状态下,该旋转因子矩阵的主对角线上的元素为。值得注意的是,该矩阵中,初始值为0的元素,所对应的节点无需连接,举例地,以第一层的初始状态为例,初始值,其中总共有的元素块。第一列元素为,说明该第一傅里叶变换层中第一个输出数据,为第一个输入数据乘以1加上第二个输入数据乘以1,第二个输出数据为为第一个输入数据乘以1加上第二个输入数据乘以-1,第三个到第k个输入数据不用连接第一个输出数据,即初始值为0的元素,所对应的节点无需连接,具体可参照图2中的蝶形运算部分。

通过上述公式计算得到第二输出信号,也即得到频域信号,通过傅里叶转换提取得到各个信号的频率成份。针对第一傅里叶变换层,训练阶段,既可通过反向传播调节该第一傅里叶变换层的参数,而由于共轭对称性,可以只通过反向传播调节一半节点的参数,而另一半参数通过共享的方式来调节。

如上述滤波处理单元500所述,将第二输出信号输入预设的听觉滤波层进行计算,得到已转换成听觉域的第三输出信号,听觉滤波层在训练时的权值初始值由听觉滤波器组构成,例如mel尺度滤波器组、bark尺度滤波器组、gammatone滤波器组等。本实施例中采用mel尺度滤波器组,mel尺度滤波器组由三角带通滤波器组成,其个数为听觉滤波层节点的个数。具体而言,听觉滤波层中,可利用以下第二预设公式计算出各节点的第三输出信号:

其中,x(k)为所述第二输出信号的计算公式,k为所述第二输出信号的频点数,等同于其帧长,为第一傅里叶变换层输出层第k个节点连接到听觉滤波层第m个节点上的权值,可选择地,在训练时其初始值可为三角带通滤波器系数,b为听觉滤波层节点。通过上述公式计算得到第三输出信号,也即听觉域信号。

在一个实施例中,上述听觉滤波层具有多个节点,上述装置包括:

获取频率单元,用于获取各所述第二输出信号的信号频率以及各所述节点对应的频率区间;

判断区间单元,用于判断出所述信号频率所属的频率区间;

输入节点单元,用于依据所述判断结果将所述第二输出信号输入至与所述频率区间对应的节点。

本实施例中,获取各第二输出信号的信号频率以及各节点对应的频率区间,其中第二输出信号的信号频率可直接在其进行傅里叶变换时获取,上述各节点对应的频率区间由听觉滤波层的节点个数以及预设的采样频率得到,通过节点个数以及采样频率以及预设的听觉域频率变换公式,可计算出各节点对应的频率区间,然后判断出信号频率所属的频率区间,即确定信号频率落在哪个频率区间,再将第二输出信号输入至与该频率区间对应的节点。

举例地,参照图2中的听觉滤波器组部分,已知听觉滤波器可作用对应的是采样频率一半的频率,也即当采样频率为fs时,则听觉滤波器对应可进行运算的是,故而对应的第一傅里叶变换层的输出节点有个,上述听觉域频率变换公式为,其中f为采样频率fs的一半。当上述听觉滤波层具有b个节点时,例如24个时,采样频率为8000hz,因此,f=4000,则由公式可知对应的mel频率上限为2146mel,当听觉滤波层对应有24个节点,则分配到每个节点的频率为89.4mel,由上述公式得到对应的频率为57.8hz,以此作为第一区间限值,由于mel频率是均匀递增的,则第二个节点mel频率为178.8mel,由上述公式得到对应的频率为120hz,此为第二区间限值,按同样方式得到第三个区间限值220hz,以此类推,得到节点的所有区间限值,与上述输入的时域信号的序列对应,听觉滤波层第一个节点的频率区间为起始区间限值到第二个区间限值之间,即频率区间为(0hz,120hz),第二个节点的频率区间为第一个区间限值到第三个区间限值之间,即频率区间为(57.8hz,220hz)。

本实施例中,在第一傅里叶变换层中对第一输出信号进行计算后,依次按频率递增的方式通过各输出节点输出第二输出信号,例如采样频率为8000hz,第一傅里叶变换层输出节点有128个,则第一个节点输出信号的信号频率为0hz,第二个节点输出信号的信号频率62.5hz,第三个节点输出信号的信号频率为125hz,以此类推,到最后一个节点输出信号的信号频率为4000hz,值得注意的是,由于信号的频谱具有共轭对称性,此处最后一个节点输出信号的频率为4000hz,而非8000hz。而由听觉域频率变换公式计算,得到听觉滤波层的第一个节点的频率区间为(0hz,120hz),第二个节点的频率区间为(57.8hz,220hz),如此按频率所属的区间,可将第一个第一傅里叶变换层输出节点的信号输入至听觉滤波层第一个节点,第二个第一傅里叶变换层输出节点的信号输入至听觉滤波层第一个节点以及第二个节点,以此类推,直接将全部第二输出信号输入至听觉滤波层,而由于第一傅里叶变换层各输出节点是按频率均匀递增的方式输出信号,而按听觉域频率变换公式计算出的听觉滤波层各节点的频率区间范围递增却越来越大,故越是排序在前的听觉滤波层节点接收的第二输出信号越少,这样将网络连接稀疏化,可使得参数量、运算量大大减小。

在另一实施例中,在听觉滤波层与深度神经网络之间,还可以对听觉域的第三输出信号提取对数听觉能量谱,以便后续深度神经网络能够以该对数听觉能量谱作为特征,使其语音识别或声纹识别效果更好,具体地,可以先求出听觉滤波层输出的能量并求得其对数,具体可利用以下公式:,来求出对应的能量谱,其中,y(m)为第三输出信号。

参考图4,本申请还提供了一种计算机可读的存储介质21,存储介质21中存储有计算机程序22,当其在计算机上运行时,使得计算机执行以上实施例所描述基于端到端深度神经网络的音频信号处理方法。

参考图5,本申请还提供了一种包含指令的计算机设备34,计算机设备包括存储器31和处理器33,存储器31存储有计算机程序22,处理器33执行计算机程序22时实现以上实施例所描述的基于端到端深度神经网络的音频信号处理方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips