基于帧内和帧间注意力机制的端到端语音编码方法和系统
- 国知局
- 2024-06-21 11:56:24
本发明属于语音处理领域,涉及基于帧内和帧间注意力机制的端到端语音编码方法和系统。
背景技术:
1、在现代语音通信中,语音编码扮演着重要的角色,它从输入的语音提取代表语音信号的特征,对能表征语音信号的特征进行量化,并传输以达到压缩传输数据量的目的。然后利用解量化后的特征进行语音信号重建。随着码本数量减少,量化比特数减少,编码码率降低,导致量化误差增大,现有的基于深度学习的端到端语音编码方法的重建语音质量下降极大,尤其是在编码码率低至3kbps及以下,通常表现为说话人音色失真或说话人内容不清晰,严重影响通信质量。
2、基于深度学习的端到端语音编码方法在编码端将输入语音信号经过多层下采样模块提取中间隐变量特征,并对其进行矢量量化;在解码端对解量化后的中间隐变量特征进行上采样,重建原始输入的语音信号。现有的端到端语音编码方法并没有显式利用输入语音样本点之间的相关性。同时,在量化过程中没有利用特征之间的帧间相关性。而语音样本点之间的相关性和帧间相关性在传统优秀的语音编码算法中都被证实是非常重要的。由于没有很好利用语音样本点之间的相关性,现有的端到端语音编码算法在编码端提取的中间隐变量特征包含信息量较少,从而影响解码端的语音重建质量;同样,由于没有显式利用语音信号帧间的相关性,现有的端到端语音编码算法在码率低至3kbps及以下时,性能会急剧下降。
技术实现思路
1、本发明提供了一种基于帧内和帧间注意力机制的端到端语音编码方法,充分利用帧内样本点之间的相关性和帧与帧之间的相关性,提升重建语音质量。该方法包括以下步骤:
2、步骤1,编码端将输入语音信号划分为一定长度的帧,将相邻的两帧语音信号组成一个超帧,这两帧语音信号称为该超帧的子帧。采用基于帧内注意力机制的编码模块,从每个超帧中的第一子帧提取出特征隐变量;
3、步骤2,对步骤1得到的每个超帧中第一子帧的特征隐变量进行多级矢量量化;
4、步骤3,对步骤2量化的子帧进行解量化,得到每个超帧中第一子帧的解量化特征隐变量,再利用基于帧间注意力机制的解码模块,合成超帧的第二子帧的特征隐变量;
5、步骤4,将步骤3所得到的每个超帧的两个子帧的重建特征隐变量送入解码端,利用基于帧内注意力机制的解码模块得到该超帧的重建语音信号。
6、进一步的,基于帧内注意力机制的编码模块包括多个一维因果卷积和编码模块,其中一维因果卷积用于改变通道维度,不改变时域维度,编码模块包括残差模块、帧内注意力模块和因果卷积下采样层,残差模块包括不同膨胀率的3个残差单元,用来扩大卷积神经网络的感受野,每个残差单元由一个一维膨胀卷积和一维因果卷积构成。
7、进一步的,基于帧内注意力机制的编码模块的处理过程如下;
8、输入的语音信号经过一层一维因果卷积层将输入语音信号通道维度由初始的1维变为32维,不改变其时间维度;然后经过层级式的编码模块,这里层数是4层,最后再经过一个一维因果卷积层,一维因果卷积层只是为了学习特征,不改变时间维度,只改变特征通道维度,将特征通道维从512维变成256维.
9、进一步的,帧内注意力模块由全局平均池化、全局最大池化和一维卷积构成,输入特征先经过由3个不同膨胀率的残差单元构成的残差网络,得到特征矢量,然后经过基于时间维度的最大池化和平均池化层得到两个形状相同的特征向量,将这两个特征在时间维度上进行拼接,利用两层一维卷积层和leaky relu、sigmoid激活函数得到融合权值向量,与输入特征进行元素相乘得到输出特征隐变量。
10、进一步的,基于帧间注意力机制的解码模块由基于前向-残差网络的增强模块和基于动态插值的合成模块构成;
11、将超帧中解量化后的第一子帧的特征隐变量作为基于前向-残差网络的增强模块的输入,用来增强超帧的第一子帧与第二子帧的关联性。增强模块由多层卷积层和前向残差网络构成,其中前向残差网络由多个前向-残差单元构成,前向-残差单元由2个堆叠的一维归一化层、relu激活函数和一维卷积层构成;具体处理过程为:输入的第一子帧解量化后的特征变量在增强模块中首先经过一层卷积层,降低通道维度,然后经过多个前向-残差单元学习特征,然后经过最后一层卷积层增加通道维度,得到增强后的子帧的特征隐变量;
12、利用增强后的第一子帧的特征隐变量作为基于动态插值的生成模块的输入,动态插值模块由残差网络和线性层构成,具体处理过程为:首先,对于第一个超帧,直接将其第一子帧的特征隐变量赋给第二子帧。对于之后的每一个超帧,按照以下方法计算其第二子帧的特征隐变量:输入当前超帧的第一子帧及其相邻的前一超帧的第一子帧的特征隐变量,计算得到两个子帧特征隐变量的残差;将残差经过全局平均池化得到权值变量,将该权值变量经过两层线性层和leaky relu、sigmoid激活函数得到最终的融合权值向量wf;将1-wf与当前超帧第一子帧的特征隐变量相乘;将wf与前一个超帧的第一子帧的特征隐变量进行元素相乘;将上述相乘的结果相加,得到动态插值的当前超帧的第二子帧的特征隐变量。
13、进一步的,基于帧内注意力机制的解码模块包括多个一维因果卷积和解码模块,其中解码模块包含转置因果卷积、残差模块和帧内注意力模块;其中一维因果卷积用于改变通道维度,不改变时域维度;残差模块包括不同膨胀率的3个残差单元,用来扩大卷积神经网络的感受野,每个残差单元由一个一维膨胀卷积和一维因果卷积构成。
14、进一步的,基于帧内注意力机制的解码模块的处理过程如下;
15、输入特征隐变量通过一层一维因果卷积层,改变输入的特征隐变量的通道维度,然后经过层级式的解码模块,这里层数也是4层,最后再经过一个一维因果卷积后,得到重建的语音信号。
16、进一步的,还包括步骤5,将步骤4生成的语音信号和原始的语音信号一起输入至基于波形和基于stft的判别器,进行真假判别,在训练过程中使得生成器更好地还原语音信号,所述生成器即步骤1-步骤4构成的整体模型。步骤5仅在训练阶段使用。
17、进一步的,基于波形的判别器首先对输入的语音信号进行下采样处理,分别得到不同的下采样语音信号:原始语音信号、2倍下采样语音信号和4倍下采样语音信号,然后对下采样语音信号分别进行如下处理:先经过普通卷积处理,然后是四层下采样层,每层下采样都是一维卷积,下采样后的结果将经过一层卷积得到特征矩阵,再经过一层卷积得到最终结果。该判别器通过计算生成语音信号与原始语音信号在不同频带上的差异,以优化训练结果。
18、基于stft的判别器是在一个单一的尺度上运行,首先计算stft的窗长和窗高分别为w和h,判别器包含2个二维卷积和6个残差单元,每个残差单元包含两层二维卷积层,。在最后一个残差单元的输出处、激活的形状为t/(h-23)×f/26,其中t是时域中的样本数,f=w/2是频率维的数目,最后一层通过卷积核为1×f/26的二维卷积将不同频率维的值进行聚合,以在时域中获得与原始输入语音数量相同的一维信号。最后,将基于stft判别器的输出结果输入hinge loss形式的损失函数,进行真假二分类处理,使原始语音的分类结果更接近于1,而生成语音的分类结果更接近于0。
19、本发明还提供一种基于帧内和帧间注意力机制的端到端语音编码系统,包括如下模块:
20、编码单元,用于编码端采用基于帧内注意力机制的编码模块,从输入的每一个超帧的第一子帧语音信号中提取出特征隐变量;
21、多级矢量量化单元,用于对得到的每一个超帧的第一子帧的特征隐变量进行多级矢量量化;
22、解量化单元,用于对多级矢量量化单元量化的子帧进行解量化,得到每个超帧中第一子帧的解量化特征隐变量,再利用基于帧间注意力机制的解码模块合成超帧中的第二子帧的特征隐变量;
23、重建单元,用于将解量化单元所得到的重建特征隐变量送入解码端,利用基于帧内注意力机制的解码模块得到重建语音信号。
24、与现有技术相比,本发明解决现有端到端语音编码方案中没有很好利用语音样本点之间的相关性和语音信号帧间的相关性的问题,在低码率的情况下提高重建语音质量。
25、本方法在极低码率下,能够提升重建音质。在500bps的码率下,客观指标visqol达到2.849分,超过facebook的encodec在同等码率下的2.348分。
本文地址:https://www.jishuxx.com/zhuanli/20240618/24599.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。