AI换声,只需5秒音源,这个网络就能实时“克隆”你的声音

本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知说话者数秒的音频来合成其讲话音频,即网络具有零样本学习能力。

目前,已经有人将该论文实现并在 GitHub 上发布了开源项目,目前该项目标星超 9.5k,fork 数是 1.5k。

AI 换声 GitHub代码:

https://github.com/CorentinJ/Real-Time-Voice-Cloning?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more

简介

传统的自然语音合成系统在训练时需要大量的高质量样本,通常对每个说话者,都需要成百上千分钟的训练数据,这使得模型通常不具有普适性,不能大规模应用到复杂环境(有许多不同的说话者)。而这些网络都是将语音建模和语音合成两个过程混合在一起。本文工作首先将这两个过程分开,通过第一个语音特征编码网络(encoder)建模说话者的语音特征,接着通过第二个高质量的TTS网络完成特征到语音的转换。

两个网络可以分别在不同的数据集上训练,因此对训练数据的需求量大大降低。对于特征编码网络,其关键在于声纹信息的建模,即判断两段语音为同一人所说,因此可以从语音识别(speaker verification)任务进行迁移学习,并且该网络可以在带有噪声和混响的多目标数据集上训练。

为了保证网络对未知(训练集中没有的)说话者仍然具有声音特征提取能力,编码网络在18K说话者的数据集上训练,而语音合成网络只需要在1.2K说话者的数据集上训练。

网络结构

 

主要由三部分构成:

声音特征编码器(speaker encoder):

1. 语音编码器,提取说话者的声音特征信息。将说话者的语音嵌入编码为固定维度的向量,该向量表示了说话者的声音潜在特征。

 

2. 序列到序列的映射合成网络

基于Tacotron 2的映射网络,通过文本和1得到的向量来生成对数梅尔频谱图(log mel spectrogram)。

(梅尔光谱图将谱图的频率标度Hz取对数,转换为梅尔标度,使得人耳对声音的敏感度与梅尔标度承线性正相关关系)

 

3.基于WaveNet的自回归语音合成网络

将梅尔频谱图(谱域)转化为时间序列声音波形图(时域),完成语音的合成。

需要注意的是,这三部分网络都是独立训练的,声音编码器网络主要对序列映射网络起到条件监督作用,保证生成的语音具有说话者的独特声音特征。

 

 

总结

本文提出的语音合成网络,能对训练不可见的说话者进行声音合成,并且仅仅依赖于说话者的一小段语音,这使得该网络能够大规模应用于实际环境,也使得语音造假的成本大大降低,类似于之前的deepfake网络。

作者指出该网络生成的合成语音和真实语音仍然是可以区分的,这是因为训练集的数量不足(避免太逼真带来的安全问题)。如果要生成非常逼真的声音,对每个目标说话,仍然需要数十分钟的语音。

论文链接:

https://arxiv.org/pdf/1806.04558.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Using JSON for data transfer

为什么80%的码农都做不了架构师?>>> JSON basics At its simplest, JSON allows you to transform a set of data represented in a JavaScript object into a string that you can easily pass from one function to another, or -- in the case of as…

jquery的扩展方法介绍

最近一直在写js,这其中也少不了一位js的主角了jQuery,下面介绍的是jQuery的一些扩展,也就是jQuery的扩展方法,jQuery的扩展方法有两种方式,一种是jQuery本身的扩展方法,另一种是jQuery所选对象的扩展方法&a…

Gtk-WARNING : cannot open display----这个问题在NVIDIA TX2上碰到过就是DISPLAY=“:0“

切换到root权限,在终端下使用gedit时出现下面的错误: No protocol specified (gedit:14333): Gtk-WARNING **: cannot open display: :0.0 下面是从网上找到的正解,贴——分析——总结之: 原因: 当使用su 到另外一个用…

蓝桥杯vip答案java_Java实现 蓝桥杯VIP 算法训练 麦森数

算法训练 麦森数时间限制:1.0s 内存限制:256.0MB问题描述形如2P-1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数,2P-1不一定也是素数。到1998年底,人们已找到了37个麦森数。最大的…

Visual Studio 2010 中JS注释制作

Visual Studio 2010中的js注释已经很强大了,但怎么才能和调用c#的方法一样容易呢?怎样才能让每个参数都有注释说明呢?底下就是想要的答案。 先上图,如图所示: 其中红色的办法为注释效果,当然制作的方法也在…

windows下配置caffe-matlab接口

一、环境说明 也是安装顺序。特别强调的是除VS2015以外,其他软件的安装路径都最好不要包含空格。 1、Windows 64位系统。 2、Visual Studio 2015(VS2015, 对应VC14)。 3、Matlab 2017a。Matlab的版本倒不是很重要,只要支持Matlab 2015a之后的版本都应该…

java在文档末尾添加_如何在打开表单后将子文件添加到Word文档的末尾?

我m trying to write a macro that adds subdocuments to the end of a Word document when the Word document is opened. The document in question already has some text in it, so before running the macro I d喜欢将光标移动到文档的末尾 . 我可以使用代码实现这一点&am…

oracle的db link

cd $ORACLE_HOME/network/admin vi tnsnames.ora 添加 CCPBS_19 (DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST 10.130.38.19)(PORT 1521)) ) (CONNECT_DATA (SERVICE_NAME CCPBS) ) ) >create public database link ecbm_19 …

NVelocity标签使用详解

本文使用的NVelocity版本为1.1.1,应该是目前为止最新的版本吧,前几天在google上找了一个自称是NVelocity 1.6.1 bate2的dll,下载下来一看更新时间是2009年的,还没版本NVelocity 1.1.1(2010年出的) 新呢&…

一文搞懂蓝绿发布、灰度发布和滚动发布

一文搞懂蓝绿发布、灰度发布和滚动发布 应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。 长期以来,业务升级渐渐形成了几个发布策略:蓝绿发布、灰度发布和滚动发布&…

NVelocity标签设置缓存的解决方案

意外的问题总会让人措手不及,今天与大家分享的就是NVelocity设置缓存的问题,之前刚google了一下发现没什么太好的解决方案,希望在这能为需要的朋友找出满意的答案,上一篇blog刚说了NVelocity的用法,这就不在重复了&…

实数历史无穷小能否带领我们直接走向今日科学之辉煌?

本篇文章朋友在深圳吃饭的时候突然想到的...这段时间就有想写几篇关于实数历史的博客,所以回家到之后就奋笔疾书的写出来发布了 历史不能重演,这是毫无疑问的。数学是一门基础学科,影响到本日科学技术的方方面面,可以说&#xff0…

java成员方法的一般格式为_Java基本知识(四)

一、二维数组1、定义方式m:代表当前二维数组中有多少个一维数组;n:代表每个一维数组的长度(1)数据类型[][] 数组名new 数据类型[m][n](2)数据类型[][] 数组名new 数据类型[m][ ],只给定m个一维数组,每个一维数组长度动…

免费的定时任务托管 clock.sh

自己有很多定时任务要跑,所以之前搞了一个定时运行的系统。 在 V2EX 看到很多有类似需求的朋友: https://www.v2ex.com/t/252810https://www.v2ex.com/t/448726https://www.v2ex.com/t/579740https://www.v2ex.com/t/241229https://hk.v2ex.com/t/1134…

Android Webservices 返回多行多列数据(Dataset)

对于之前从事.net或者java开发人员,习惯了从后台获取网格数据(多行多列DataTable),但转行从事android开发,难免会不习惯 Android调用Webservice时,如果返回值是一个boolean或者string值时可以通过下面方式接…

Spring.Net简单IOC应用

本文简单的介绍一下Spring.net的配置和IOC应用。 目录:  一、引用资源.  二、配置文件配置.  三、文件调用.  四、本实例代码下载(vs-2010). 一、引用资源(所需spring的dll) Spring.Core.dll Spring.Web.dll C…

vCenter Server Appliance(VCSA )6.7部署指南

VCSA 6.7版本于2018年4月17日提供下载,同时发布的还有ESXi 6.7,根据官方文档,6.7版本升级主要为了发布vSAN 6.7版本。 第1步,下载VMware-VCSA-all-6.7.0-8217866文件,用虚拟光驱挂载或者解压运行,选择“安…

学习的回顾--数组的有关内容

1、数组的定义以及简单的内容 C#中数组是引用类型,C#定义整型数组方式是:int [] intArray {1,2,3};或int [] intArray new int[10]; C#中的数组可以是一维的也可以是多维的,同样也支持矩阵和参差不齐的数…

mysql5.6.35安装_mysql5.6.35 二进制快速安装

说明:mysql安装在/data/mysql-5.6.35目录下;如果安装在/usr/local/mysql/目录下,则两个sed不许执行,因为默认是/usr/local/目录下;1.下载cd /data/tar -zxf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gzmv mysql-5.6.35-linux-gli…

XML 通用操作

Xml格式&#xff1a; <?xml version"1.0" encoding"utf-8"?> <remotes> <remote ip"ipval">nameAndPwd</remote> </remotes> 通用读写删类&#xff1a; using System; using System.Data; using System.…