快手无法发语音消息怎么回事,快手为什么发不出去语音了

首页 > 车主 > 作者:YD1662023-10-31 05:10:32

机器之心专栏

作者:张颖、王晓瑞、王仲远

语音转换的应用在电影配音、角色模仿、复刻人物音色等领域至关重要。近年来,基于深度学习的快速发展,语音转换已经取得很大的进步,然而小数据的语音转换仍是个热点问题。来自快手MMU的研发人员提出了一种基于说话人感知模块(SAM)的单样本语音转换的解决方案,仅通过说话人的单句语音样本提取用户的音色表征,就可以实现该说话人作为目标说话人音色的语音转换。

语音转换(VC)是指在保证一句话内容不变的基础上,将原始语音中说话人音色迁移到目标说话人音色。语音转换在电影配音、角色模仿以及复刻人物音色等方面都有重要的应用。

当前基于深度学习实现到特定目标说话人的语音转换已经取得很大的进步,例如基于 CycleGAN、VAE 以及 ASR 的语音转换方法都可以很好的实现到训练集内说话人的语音转换。

然而,如果想要增加一个目标说话人音色,或者进行用户音色的自定义复刻,通常需要大量的说话人数据以重新训练一个以该说话人音色为目标音色语音转换模型,或者通过少量数据对现有模型进行自适应训练。实际应用中,数据库录制的周期和成本都比较高,而对于普通用户而言,也很难获得用户大量的语音数据。因此,小数据的语音转换成为亟待解决的热点问题。

而来自快手负责音频技术研发部门 MMU 的研发人员提出了一种基于说话人感知模块(SAM)的单样本语音转换的解决方案。该方案仅通过说话人的单句语音样本提取用户的音色表征,就可以实现该说话人作为目标说话人音色的语音转换。目前该成果已被 ICASSP 2021 接收,并且已经在中国提交发明专利申请。

论文地址:https://ieeexplore.ieee.org/document/9414081

基于说话人感知模块的单样本语音转换

要完成单样本的语音转换,核心有两点:一是完成对语音中内容特征的提取;二是利用目标说话人的单样本完成目标说话人的特征向量的解耦,然后将目标说话人的特征向量与提取的语音内容特征进行耦和,完成到该目标音色的语音转换。

快手无法发语音消息怎么回事,快手为什么发不出去语音了(1)

说话人感知语音转换(SAVC)系统,其中包括:

预训练的说话人无关的语音识别模型(SI-ASR),用以从语音中提取说话人无关的声学后验概率(PPGs)。声学后验概率可以表征语音每帧的内容信息。

说话人感知模块(SAM),用以从语音中解耦出说话人特征向量;为了避免语音中内容信息对说话人特征向量提取的干扰,辅助模型更好的解耦说话人的信息,SAM 的输入特征和 SI-ASR 的输入特征来自同一说话人的不同语音。

解码器,对声学后验概率和说话人向量进行耦和,预测特定说话人相关的声学特征。

声码器,采用 LPCNet 作为后端声码器,将解码器预测的声学特征重建为语音信号。

SAM 的设计受启发于声纹识别的成果以及注意力机制的应用,包括以下三个模块。

参考编码器

对变长的目标说话人语音特征进行编码,因为原始说话人语音和目标说话人语音通常不等长,而且理论上说话人向量不随说话内容改变,因此用帧级别的特征向量表示目标说话人的参考编码显然是不合适的。将其压缩为定长的参考编码向量不仅可以使其对时域信号变化不敏感,也以方便进一步与原始语音中提取的 PPGs 进行特征耦和。

假设输入是 X=[x_1,x_2,…,x_T],T 是输入的长度,因此目标说话人编码向量可以表示为 R=RefEncoder(X),其中 R∈,d_r 是定长目标说话人编码向量的维度。

说话人先验知识模块(SKB)

声纹识别任务中通常使用 x-vector、i-vector 等特征表征不同的说话人向量,这些向量分布在同一超曲面空间,不仅可以表征不同说话人的区别,也包含了不同说话人之间的相关性。通过预训练的声纹模型提取说话人向量 x-vector,多个说话人的向量组合成 SKB。SKB 中的数据分布可以看作是说话人的表征空间,更多的说话人向量可以将说话人空间的信息表征的更详细。

假设说话人的向量特征维度是 1×d_x,挑选 N 个说话人作为说话人先验知识模块的基础说话人,在挑选训练集说话人的时候考虑到性别均衡(一半男性,一半女性)。那么 SKB 可以表示为 S=[S_1,S_2,…,S_N],其中 S∈。文章使用的说话人向量 x-vector 为 200 维,选择 200 个基础说话人。

多头注意力层

用于建模全局说话人向量,对参考说话人向量和 SKB 求距离相似性。SKB 中一个特定的说话人向量可以看成是说话人表示空间的一个坐标点。因此,一个新的说话人向量可以通过对所有基础说话人在先验说话人向量空间表征的加权量化表示。

自注意力层的输出可以表示为:

快手无法发语音消息怎么回事,快手为什么发不出去语音了(2)

其中,Q,K,V 是注意力的查询(Query)、以及键(Key)值(Value),d_k 用于表示 Key 的维度。

多头注意力层的计算可以表示为:

快手无法发语音消息怎么回事,快手为什么发不出去语音了(3)

文章中选择四头注意力层,且 W_i^Q,W_i^K,W_i^V,W^O 为参数矩阵。

最终得到的目标说话人向量表示为:

快手无法发语音消息怎么回事,快手为什么发不出去语音了(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.