「免费学习 60+ 节公开课:投票页面,点击讲师头像」

作者 | Daniel Chen,爱奇艺资深研发工程师

出品 | AI科技大本营(ID:rgznai100)

【导读】什么是Voice Conversion(VC)?它有什么用?

概括来讲, VC可以将一个人的声音转换为另一个音色,但表述的内容没有改变。脑补了一下,这个技术可以给用户带来非常多有乐趣的体验。近日,在爱奇艺《语音和语言技术在自然交互中的实践》沙龙上,爱奇艺资深研发工程师 Daniel Chen 就为我们分享了关于 Voice Conversion 技术,以及 VC 在变声方面的探索与实践。

以下内容根据演讲实录整理:

Daniel Chen :今天主要的讲解分为三个部分,第一个部分介绍 VC 的基础,包括VC可以做什么及典型的应用场景;第二部分为大家介绍 VC 的进展,主要从平行语料和非平行语料这两个方面来叙述;第三部分是介绍爱奇艺后续在 VC 探索领域的方向。

VC 的目标是转化语音中的非语言信息,与此同时保留语音中的语言信息的技术。此处首先明确语言信息的概念,语言信息就是大家说话里面所包括的文本内容,非语言信息是除文本内容之外的信息,例如说话人的音色,说话的方式,说话的节奏等。这一技术主要是为了实现以下两个目标:首先把输入音频的音色变成指定目标人的音色,然后将说话方式改变成指定目标人的说法方式。

这一技术主要有以下应用场景,第一个是在医学上的应用,主要用来帮助丧失发言器官的人,这是因为医学界会进行舌头或是喉管等器官的切除手术,手术后病人说话的声音就不是很清晰,手术造成病人的发言器官不完善,发音不标准,所以需要设备为病人做声音的转换,让病人发音更清楚。第二个情况是希望通过应用这项技术给用户更多的娱乐可能,比如用户用更加搞笑的声音来拍小视频,这些声音我们可以利用某些特色的声音来做,从而让用户自己的视频更有趣,吸引大家的关注。

介绍VC的进展以VC主要的三种应用方式进行说明,而这三种方式都通过模型来实现。一种是one to one,也就是将一个人的音色转成另外一种方式,这是模型的限制所造成的。第二种是many to one,将很多人的声音转成特定人的声音。最后一种是many to many,任何人的声音都可以转成某一个指定人的声音,这一方式对模型上没有任何限制。

从VC的发展历史情况来说,研究方向最开始是从平行语料开展的。平行语料指语音内容里说的是相同的内容,比如A和B录的语音里面都有“我是中国人”这句话,非平行语料则是指语料A说的内容和B说的内容没有关系。从历史上来看,平行语料研究的时间比较早,其相对而言携带的信息更多,比较简单,但是平行语料有一个很大的问题——在实际应用中,我们不可能要求用户说这么多相同的内容,这不太现实,所以这方面的应用都需要做非平行语料。另外,还有一种分类是按照VC是否需要声码器来区分的

平行语料最开始最简单的方法是按帧来转换,其原理是将原语音和目标语音通过某个函数直接转换。下面介绍一下其训练过程:在VC里面平行语料有一个问题,当A和B说了相同的一句话,但时长不一致时,我们在做转换的时候需要做一个对齐,所以我们首先要做特征提取,我们将得到的原语音的特征和目标语音的特征进行时间上的对齐,时间对齐比较经典的算法是DTW算法,将原语音中的某一帧和目标的帧对上了之后,再通过后面的算法得到一个模型。这一算法比较老,它采用按帧转换的方式。

后来,大家开始考虑序列转换,序列转换运用了帧与帧之间的关系。例如图中y1这一帧并不仅仅是和我的X1相关系,它同时和X2、X3、X4有一定关系。从原理上来说,训练特征会考虑其一阶、二阶特征,识别领域也用到这一思想,从而自然而言的把按帧转换变成按序列转换。具体到方法,其中最出名的就是最大释然度参数生成算法,其中用到X和Y两个参数,X指原始的参数,Y是目标参数,△yt是动态特征,其可能代表一阶、二阶特征,通过将静态特征和动态特征结合就可以把我们的预测出来的yt的特征做的更好。

最后介绍平行语料在神经网络方向的应用,基于神经网络上已有的attention机制,我们就可以通过神经网络来解决语料时间上长度不一致,对齐困难的问题,而不再需要借助DTW算法。如图所示,其同时借助了平行语料的文本特征,先输入一个梅尔特征和一个Bottleneck Features,其通过一个Encoder后,再通过音素的判别器来判断这一帧是什么音素,将他和目标特征用attention机制对齐,从而预测这一帧和输入帧的关系,这样可以保证对齐关系的准确性,最后转换之后的语音质量也非常高,优于DTW算法所达成的效果。

接下来介绍非平行语料,非平行语料比较经典的算法是PPG,其含义是音素的后验概率图。这是有关PPG的文章上的一个截图,下方内容指时间信息,即在这一秒钟说的内容,旁边是识别后的音素,颜色的深浅代表大致概率的高低。

PPG的大致训练流程如下:第一阶段相当于训练一个ASR,这是与说话人无关的一个ASR。得到这个ASR模型后,第二个阶段开始训练转换网络,这个转换网络比较简单,它用了一个比较深度的LSTM,输入ASR识别出来的PPG,目标就是梅尔参数。在PPG中,先把我们这个模型转化成对应的梅尔参数,梅尔参数再交由声码器去进行合成,比如原始文章中所用的STRAIGHT声码器。

从网络角度来看,这个网络通过ASR并在请求PPG的时候,把原说话人相关的信息去除了,再通过转换网络把目标说话人的信息加进来,我们可以认为这是一个类似TTS的方法。

这其实跟VAE有天然关系,在输入语音时,我们通过网络把它压缩成一个隐变量,在较优情况下我们的隐变量只包含说话内容,再把说话内容还原回语音,这时我们只需要加入特定人的说话信息,比如声纹,我们就可以还原出跟目标人是非常类似的目标语音,在这一过程中也没有损失说话方式以及韵律等信息。

以下呈现一个比较典型的VAE的系统,首先把原语音特征经过编码器变成隐变量,再加入说话人的特征,送入Decoder就还原成我们的语音。一般而言,VAE方法只需要关注重建的Loss即可,这一系统除此之外还把重建之后的语音又做了一个循环,送到VAE系统中再转换回去,这样就保证了Encoder部分转换出来的内容丢失的比较少。

第三个介绍的方法是Blow。这是今年的一篇新文章,其的网络特点是通过以下方式体现的,如果输入的X和隐变量Z可以经过一系列的可逆变换相互转换的话,如果在这些可逆变换中间加入了一些说话人的信息,那么就有可能达到VC的效果。如图所示在正向过程中, Y是说话人,flow流是前面提到的F1、F2、FK等变换,如果在F1、F2、FK可逆时,我们能够把输入语音通过一系列的正向流变成隐变量Z,那我们求到Z之后把它逆向传播回来,同时把Y换成目标人的说话信息,那么还原回来的X1'已经变成了目标说话人的语音,这是normalizing flow在VC中的一个应用例子。

在这个领域中, GAN可以用于平行语料和非平行语料的VC。有两篇比较知名的文章运用了用GAN来做VC,一个是CycleGAN,另一个是StarGAN。StarGAN在CycleGAN之后发表并引入了更多的条件,可以做多到多的变换。下面简单介绍一下CycleGAN的结构, GAN包含一个生成器、分类器,CycleGAN把真实的数据X通过一个生成器换成了Y,这是它的第一次的生成过程。另外,在整个机制中还需要再完成一次——将即生成的Y送入另外一个生成网络后,再还原回X,保证即生成的Y是能够还原X的,保证第一个生成器转换之后还包含的足够信息能够还原回X,从而起到环,即Cycle的作用,所以他叫CycleGAN,图中的(DX、DY)是分类器。

最后,为大家介绍未来爱奇艺在这一技术领域的探索。我们计划用非平行语料来尝试,从而尽可能降低对VC使用者的限制。但在做VC的时候,要尽可能保留原语音中丰富的韵律信息,这时我们发现正常说话时的转换效果还可以,但当我们在做清唱或者朗诵时效果就不理想,唱歌所转换出来的可能是正常说话,唱歌的方式并没有保留。

除此之外,我们要剔除各类噪声的干扰,我们尝试做了些数据增强的方法,旨在降低噪声干扰。

从功能上来说,VC跟TTS是存在区别的,一个是语音转语音,一个是文本转语音。目前,TTS也在探索更富表现力的合成方法,部分方法也使用参考音频作为输入,在一点上来看,VC和TTS又有着一些共同之处。

(*本文为AI科技大本营投稿文章,转载请微信联系1092722531)

精彩推荐

点击阅读原文,或扫描文首贴片二维码

所有CSDN 用户都可参与投票和抽奖活动

加入福利群,每周还有精选学习资料、技术图书等福利发送

推荐阅读

  • 2019,不可错过的NLP“高光时刻”

  • 4万程序员学了10万次的课程,今天,曝光背后的讲师!

  • 机器学习模型五花八门不知道怎么选?这份指南告诉你

  • 300多局点,数据接入量超过2TB/S,华为用AI优化数据中台 | BDTC 2019

  • “一百万行Python代码对任何人都足够了”

  • 达摩院 2020 预测:感知智能的“天花板”和认知智能的“野望”

  • 详解CPU几个重点基础知识

  • 在以太坊上开发 Dapp 的瓶颈和门槛有哪些? | 博文精选

  • 你点的每个“在看”,我都认真当成了AI

拥有AI「变声术」,秒杀了多年苦练的模仿艺能相关推荐

  1. 加速时光,让你永远70岁的「变老神器」FaceAPP突然爆红,却恐遭美国封杀

    机器之心报道 机器之心编辑部 近几天网上最热的话题是「看看他老了以后的样子」.总部位于俄罗斯圣彼得堡的 Wireless Lab 掀起了一次社交媒体浪潮,其推出的应用「FaceAPP」在极短的时间内火 ...

  2. Office 365有个AI「工作场所分析」掌握组织人力资源

    2019独角兽企业重金招聘Python工程师标准>>> 从企业管理阶层的角度来看,想维持员工们工作时的高效率,同时又得顾及每个人的工时负荷是否恰到好处,这一直以来就是个让人头疼的课题 ...

  3. 【AI实时变声器,声音甜甜的小姐姐背后竟是抠脚大汉】

    前言 这是一款基于AI算法的实时变声器,如果你不懂AI也没事,直接使用我提供的一键安装包 链接:https://pan.baidu.com/s/1f3X6JdBVOgeTNPf0B3CRKg 提取码: ...

  4. 私有频道+用户组,融云超级群的无限用户「分层管理术」

    作为实现类 Discord 实时社区的第一选择,融云超级群已经在欧美.东南亚和国内的多款二次元兴趣社交.游戏社区.地区社群等产品中"履新上任",成为产品提升用户粘性和拓展社交属性的 ...

  5. 重磅!CSDN 发布「AI开源贡献奖Top5」「AI新锐公司奖Top10」「AI优秀案例奖Top30」三大榜单...

    2020 年无疑是特殊的一年,AI 在开年的这场"战疫"中表现出惊人的力量.站在"新十年"的起点上,CSDN发起[百万人学AI]评选活动.我们继续聚焦AI的技术 ...

  6. 官宣!CSDN 重磅发布「AI开源贡献奖Top5」「AI新锐公司奖Top10」「AI优秀案例奖Top30」三大榜单...

    2020 年无疑是特殊的一年,AI 在开年的这场"战疫"中表现出惊人的力量.站在"新十年"的起点上,CSDN发起[百万人学AI]评选活动.我们继续聚焦AI的技术 ...

  7. 「云毕业照」刷爆朋友圈!AI人脸融合技术谁家强?

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 2020,特殊的毕业季,需要特殊的纪念. 之前看过日本东京的BBT大学使用的「Newme」机器人代替学 ...

  8. 开源的「变」与「恒」:七大开源基金会负责人尖峰对谈

    在 7 月 9 日举办的首届全球开源技术峰会 GOTC 2021 上海站,来自全球各顶级基金会的负责人共聚圆桌,围绕开源软件的历史与未来展开了深刻的探讨. Linux 基金会执行董事 Jim Zeml ...

  9. 低配版AI车神?网友用单个CNN在「极品飞车9」里飙车

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨新智元 编辑丨极市平台 导读 单凭一个CNN网络,居然能在快2 ...

最新文章

  1. 局部加权回归、逻辑斯蒂回归、感知器算法—斯坦福ML公开课笔记3
  2. 习题2.4 递增的整数序列链表的插入(15 分)浙大版《数据结构(第2版)》题目集...
  3. java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)
  4. Qt文档阅读笔记|Qt工作笔记-QMutexLocker的使用(抛出异常也能解锁)
  5. C++原型模式和模板模式
  6. asp.net mvc mysql 开源项目_【开源项目SugarSite】ASP.NET MVC+ Layui+ SqlSugar+RestSharp项目讲解...
  7. opencv 之 icvCreateHidHaarClassifierCascade 分类器信息初始化函数部分详细代码注释。...
  8. 教师计算机考试取得模块,2015年教师称计算机考试模块.doc
  9. 中心极限与大数定理律的关系_实数系基本定理(一)
  10. Delphi微信公众号开发
  11. 大数据可以考哪些证书?
  12. html 在行前显示黑点,Word里有些文字行前面有小黑点是怎么回事?
  13. JS放大镜小功能功能之原理详细解析
  14. 【图像分类】基于PyTorch搭建LSTM实现MNIST手写数字体识别(单向LSTM,附完整代码和数据集)
  15. 不礼让行人怎么抓拍的_斑马线前不礼让行人抓拍设备增加!详细图解告诉你各情况下怎么让才对!...
  16. 算法竞赛入门经典(第二版)第三章习题
  17. 华为优秀员工的16项标准
  18. linux 查看缓存命中率,命中率查詢
  19. 一文搞懂k近邻(k-NN)算法(一)
  20. 【C语言典例】——day3:设计魔方阵(数组)

热门文章

  1. 归于软银帐下,ARM需要接受的变与不变
  2. CSS布局之-水平垂直居中
  3. Python取出列表相应值的位置(表处理)
  4. unity, monoDevelop ide 代码提示不起作用的解决方法
  5. 跨平台抓包软件,可以替代Fiddler
  6. 设置Button控件创建完毕时触发的事件.
  7. centos ezhttp mysql_CentOS安装mysq
  8. 2018-3-23论文一种新的群智能算法--狼群算法(框架结构+感想一点点)
  9. 2018-3-19 损失函数与适应度函数,稳定选择与分裂选择
  10. Web API之基于H5客户端分段上传大文件