zoukankan      html  css  js  c++  java
  • 现在你可以通过深度学习用别人的声音来说话了

    640?wx_fmt=png

    语音合成(Text-to-speech,TTS)是指文本到音频的人工转换,也可以说给定一段文字去生成对应的人类读音。人类通过阅读来完成这项任务,而一个好的TTS系统是让计算机自动完成这项任务。

    在打造这样一个系统时,一个非常有趣的地方是为生成的音频选择哪个声音,是男人还是女人的声音?声音是大还是小?

    在使用深度学习创建TTS时,这有一个限制,你必须收集文本-音频的数据集,而录制演讲的演讲者可能是固定的——因为你不可能有无限多个演讲者!

    所以,如果你想为自己或他人的声音创建音频,唯一的方法就是收集一个全新的数据集。

    来自谷歌名为 Voice Cloning 的人工智能研究使计算机可以用任何类型声音发出声音。
     

    Voice Cloning是怎样工作的

    很明显,为了让电脑能够使用任何类型声音发出声音,它需要理解两件事:它读的是什么以及它是如何读的。

    因此,谷歌研究人员设计的语音克隆系统有两个输入:我们想要读取的文本和我们想要用来阅读文本的语音样本。

    例如,如果我们想让蝙蝠侠读“我爱披萨”这句话,那么我们会给系统两样东西:“我爱披萨”的文本和一小段蝙蝠侠的声音样本,这样它就知道蝙蝠侠的声音应该是什么样的。而电脑的输出应该是蝙蝠侠说“我爱披萨”的声音音频!

    从技术角度来看,系统分为3个顺序组件:

    1. 给定我们希望使用的声音的一个小音频样本,将语音波形编码为一个固定的维向量表示

    2. 给定一段文本,也把它编码成向量表示。将语音和文本这两个向量结合起来,将它们解码成声谱图

    3. 使用声码器将声谱图转换成我们可以听到的音频波形。

    640?wx_fmt=png

    系统的简化版本

    在文章中,我们对这三个部分分别进行了训练。

    在过去几年中,语音合成系统在深度学习社区中得到了很多研究关注。事实上,有很多基于深度学习针对语音合成的解决方案都非常有效。

    这里的关键是,系统能够将编码器从语音中学到的“知识”应用到文本中。

    在分别编码后,将语音和文本组合在一个公共的嵌入空间中,然后进行解码,生成最终的输出波形。
     

    克隆声音的相关实现代码

    多亏了人工智能社区中开放源码思想的美妙之处,在这里有一个公开可用的语音克隆实现!你可以按照下面的介绍这样来使用它。

    1. 首先克隆仓库:

    git clone https://github.com/CorentinJ/Real-Time-Voice-Cloning.git

    1. 安装必要的库并确保使用的是Python 3的版本:

    pip3 install -r requirements.txt

    1. 在README文件中,你还可以找到下载预训练模型和数据集的链接,并尝试一些示例。

    2. 最后,你可以运行以下命令打开GUI:

    python demo_toolbox.py -d <datasets_root>

    下面是我这边运行操作的一个截图:

    640?wx_fmt=png

    正如你所看到的,右上角的输入框中是我想让电脑阅读的文字:“Did you know that the Toronto Raptors are Basketball champions? Basketball is a great sport.”

    你可以点击每个部分下面的 “Random” 按钮来随机化语音输入,然后点击 “Load” 将语音输入加载到系统中。

    Dataset 从你选择的语音样本中选择数据集,Speaker 选择说话的人,Utterance 选择输入语音所说的短语。如果想听输入的语音是怎样的,只需点击 “Play” 按钮。

    一旦你点击 “Synthesize and vocode” 按钮,算法就会运行。一旦运行结束,你将听到扬声器以某个声音朗读你的输入文本。

    你甚至可以录制你自己的声音作为输入,只需要点击 “Record one” 按钮。相信我,这会非常有趣!
     

    更进一步

    如果你想了解更多关于这个算法的工作原理,你可以阅读谷歌的官方NIPS论文。这里(https://google.github.io/tacotron/publications/speaker_adaptation/)还有一些音频样本结果。

    论文链接:

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

    欢迎关注磐创博客资源汇总站:
    http://docs.panchuang.net/

    欢迎关注PyTorch官方中文教程站:
    http://pytorch.panchuang.net/

  • 相关阅读:
    hdu 4710 Balls Rearrangement()
    hdu 4707 Pet(DFS水过)
    hdu 4706 Children's Day(模拟)
    hdu 4712 Hamming Distance(随机函数暴力)
    csu 1305 Substring (后缀数组)
    csu 1306 Manor(优先队列)
    csu 1312 榜单(模拟题)
    csu 1303 Decimal (数论题)
    网络爬虫
    Python处理微信利器——itchat
  • 原文地址:https://www.cnblogs.com/panchuangai/p/12568069.html
Copyright © 2011-2022 走看看