机器之心报导
机器之心编辑部
用 AI 打电话真的可以骗到钱?是的。而且,克隆指定人的语音只需求一段 5 秒的录音做样本。
用 AI 打一个电话骗走 22 万欧元
AI 技能的运用门槛正在不断下降,换脸、换声响、生成各种不存在的人像都变得十分简略,但与此一起,违法的门槛也下降了。
据《华尔街日报》报导,本年 3 月份,一个不知名的黑客安排运用 AI 语音克隆技能打欺诈电话,成果成功骗到了 22 万欧元。
接电话的是英国动力公司的一名 CEO,在电话中,黑客假充了该公司母公司董事长,敦促该 CEO 紧迫进行一笔大额转账,接纳方是匈牙利的一家供货商。
黑客要求在 1 小时之内转账,而且他们成功地仿照了那位董事长搀杂德国口音的英语,所以该 CEO 信以为真,将钱打到了指定账户。
达到意图之后,他们又联络该 CEO,以董事长的身份告知他这笔钱会回流到公司账户。
但在资金回流之前,黑客再次假充董事长打来电话,要求 CEO 再转一笔钱,而且这次是从匈牙利打来的。此刻,CEO 感觉事有奇怪,拒绝了转账要求。可是,之前转给匈牙利供货商的那笔钱现已被搬运到了墨西哥和其它几个当地。
警方现在还没有找到违法嫌疑人,但所幸,为该公司承保的保险公司乐意补偿。
克隆语音只需 5 秒的录音样本
跟着天然言语处理技能的前进,用 AI 组成特定人声现已不是什么难事。
本年 5 月份,搜狗在一场大会上展现了变声功用,可以把任何人的声响转化成特定声响,让你的声响秒变志玲、马云、高晓松。
而谷歌的一项研讨乃至可以凭借 5 秒钟的参照语音克隆恣意语音。
上一年 6 月,谷歌科学家在 arXiv 上发布了一篇用搬迁学习完结语音组成的论文,提出了一个名为 Speaker Verification to Multispeaker Text-To-Speech(简称 SV2TTS)的结构。它是一个用于零样本(zero-shot)语音克隆的结构,只需求 5 秒钟的参照语音。也便是说,假如你的录音走漏出去,哪怕只要一小段,也很有或许会被坏人运用。
这项全新的语音组成技能可以通恣意一段参阅音频中提取出说话者的声纹信息,并生成与其类似度极高的组成语音,参阅音频与终究组成的语音乃至不必是同一种言语。除了运用参阅音频作为输入外,该技能还能随机生成虚拟的声线,以「不存在的说话者」的声响进行语音组成。
近来,来自比利时列日大学的研讨人员复现了该结构并开源了他们的完成,还供给 GitHub 开源工具箱。他们采用了一个新的声码器模型来调整结构,使其可以实时运转。
GitHub 地址:https://github.com/CorentinJ/Real-Time-Voice-Cloning
论文:https://puu.sh/DHgBg.pdf
当然,作者开源的意图必定不是为了滋长违法。技能都具有两面性,咱们能做的便是进步自己的隐私认识,不要容易泄漏自己的各种信息。
谷歌的 SV2TTS 是什么?
SV2TTS 是一种三段式深度学习结构,答应人们从几秒钟的音频中创立语音的数字表征,文字转语音模型运用数字表征进行练习并生成新的语音。
图 7:推理进程中的 SV2TTS 结构。蓝色方块:改善的 Tacotron 架构可以对语音进行调理。
图 8:SV2TTS 的三段式练习流程(依据研讨完成)。具有实体轮廓线的模型被冻住。值得留意的是,模型运用不同的参数创立梅尔声谱图(mel spectrograms),作为扬声器编码器和声响组成器的输入。
扬声器编码器
扬声器编码器从单个扬声器的短语音中取得嵌入向量,该嵌入是扬声器语音的含义表征,而类似的语音在隐空间中挨近。
模型架构
扬声器编码器模型是一个三层的 LSTM,有 768 个躲藏节点,之后是一个由 256 个单元的映射层。现在尚无论文解说所谓的映射层是什么,因而依据研讨者的判别,这种映射层仅仅全衔接层,别离衔接在每个 LSTM 层之后,接纳上一个 LSTM 层的输出。为了快速建模,研讨人员刚开始运用了有 256 个单元的 LSTM。他们发现,更小模型的作用极好。现在他们尚无时刻去练习一个更大的模型。
扬声器编码器在扬声器验证使命上接受练习。扬声器验证是一种典型的生物判定运用,经过判定人声判定人的身份。经过从人的一些言语中获取扬声器嵌入,从而可以创立此人的模板。这个进程被称为登入(enrollment)。在运转进程中,用户说出一些话,而且系统会对这段言语的嵌入与已登入的扬声器嵌入进行比较。假如两个嵌入向量的类似度超越给定的阈值,则用户验证成功。GE2E loss 模仿这一进程,作为模型的方针函数。
图 9:练习期间构建类似度矩阵的进程。
图 10:核算一段完好言语的嵌入向量。d-vector 是该扬声器编码器模型的非归一化输出。
试验
为了防止从语音中采样时呈现根本无声的音频片段,研讨者运用 webrtcvad Python 包履行语音活动检测(VAD)。这将在音频上发生一个二进制标志,用来表明片段有无声响。他们在这个二进制标志上履行一个移动均匀数,从而使检测中的短峰值(short spike)趋于滑润,然后再次对其进行二值化。最终,他们扩展了内核巨细为 s+1 的标志,其间 s 表明所答应的最大缄默沉静持续时刻。之后,研讨者对音频的无声部分进行修剪。成果发现,值 s =0.2s 时是一个好的挑选,可以坚持天然的语音韵律。详细进程如图 11 所示。运用于音频波形的最终一个预处理过程是归一化(normalization),用于补偿数据会集扬声器发生的不同的音量。
图 11:从上到下是运用 VAD 消除静音的过程。橙色线条代表二进制语音标志,轴上面的值表明有声片段,轴下面的值表明无声片段。
表 2:扬声器编码器在不同数据集上的练习。LS 表明 LibriSpeech,VC 表明 VoxCeleb。组成器在 LS-Clean 上进行练习并在一个测验集上进行评价。「黑点」标示的行是研讨者想要复现的完成方针。
组成器
组成器是移除了 Wavenet 的 Tacotron 2。研讨者运用了 Tacotron 2 的一个开源 Tensorflow 完成,从中剥离 Wavenet 并添加了 SV2TTS。
模型架构
Tacotron 是一个循环的序列到序列模型,它可以从文本中猜测梅尔声谱图。Tacotron 是编码器-解码器结构(并非 SV2TTS 的扬声器编码器),中心由方位灵敏的留意力机制衔接。首要,输入为文本序列,其间的字符首要转换为嵌入向量。随后嵌入向量经过卷积层,用于添加单个编码器帧的规模。经过卷积层之后的编码器帧再经过双向 LSTM,生成编码器输出帧。SV2TTS 对架构进行修正的当地在于,这儿由扬声器嵌入帧级联编码器输出帧,作为 Tacotron 编码器的输出。
留意力机制对编码器输出帧进行处理,以生成解码器输入帧。每个解码器输入帧和经过 pre-net 的前一个解码器帧输出级联,使模型完成自回归。这个级联向量经过两个单向 LSTM 层,然后映射到梅尔声图谱帧。级联向量一起映射到一个标量(scalar)上,使网络猜测一个值,假如该值超越设定阈值,则中止生成。整个帧序列在转换为梅尔声谱图前经过残差 post-net 传递。系统架构如图 15 所示:
图 15:修正版 Tacotron 架构。蓝色方块对应编码器,橙色方块对应解码器。
试验
在 SV2TTS 中,研讨者考虑以两个数据集来练习组成器和声码器,它们别离是 LibriSpeech-Clean 和 VCTK(一个由专业设备记载的仅包括 109 位英语母语者的语料库)。VCTK 数据集上的采样率为 48kHz,试验中降至 24kHz,但仍高于 LibriSpeech 数据集上的 16kHz 采样率。研讨者发现,就类似性来说,在 LibriSpeech 数据集上练习的组成器生成作用优于 VCTK 数据集,但丢失了语音天然度。他们的评价办法是在一个数据集上练习组成器,在另一个数据集上测验。成果如表 3 所示:
表 3:对未见的扬声器的生成声响的天然度和与扬声器类似性进行跨数据集评价。
数据集上语音片段长度的散布如图 16 所示。留意,无声状况持续时刻为 64 小时(13.7%)。
图 16:(左)LibriSpeech-Clean 数据集上言语持续时刻直方图;(中):无声状况打破后持续时刻直方图;(右)约束语音片段长度和从头调整后的持续时刻直方图。
尽管参阅语音的「最佳」持续时刻为 5 秒,但参阅语音长度仅为 2 秒时,嵌入向量就可以显示出含义,如表 4 所示。
表 4:参阅语音持续时刻的影响。在 VCTK 数据集上进行评价。
研讨者调查到,该模型在非正式听力测验中生成了正确输出,但正式评价需求设置片面分数投票(subjective score poll)来取得片面均匀得分(MOS)。但关于组成器来说,人们还可以验证留意力模块是否生成了正确的对齐方法。示例见图 17:
图 17:(左)编码器过程和解码器过程之间的数轴对应;(右)GTA 猜测声谱图和 ground truth 声谱图之间的比较。
经过核算组成语音的嵌入并运用 UMAP 将它们与 ground truth 嵌入一起映射,研讨者可以进一步调查一些语音特征随 Griffin-Lim 算法损失。示例见图 18:
图 18:ground truth 嵌入的映射以及由相同 ground truth 嵌入生成的 Griffin-Lim 算法组成语音嵌入的映射。Ground truth 嵌入用圆圈表明,组成嵌入用叉号表明。
声码器
在 SV2TTS 和 Tacotron2 中,WaveNet 是声码器。自推出以来,WaveNet 一向都是音频深度学习的中心,并在 TTS 的语音天然性方面坚持当时最优水平。可是,WaveNet 也是推理时速度最慢的实用型深度学习架构。之后的研讨对这方面进行了改善,使生成速度挨近或快于实时速度,生成语音的质量则几乎没有影响。尽管如此,WaveNet 在 SV2TTS 中仍然作为声码器,因为速度不是首要的考虑要素,而且 Google 自己的 WaveNet 完成进行了各种改善,每秒钟可以生成 8,000 个样本。这与 Vanilla WaveNet 构成比照,后者每秒最多可以生成 172 个过程。在编撰本文时,WaveNet 的大多数开源完成仍然是 Vanilla 完成。
模型架构
在 WaveRNN 中,WaveNet 的悉数 60 个卷积被一个 GRU 层代替。WaveNet 的 MOS 值为 4.51 ± 0.08,而最佳的 WaveRNN 模型的 MOS 值为 4.48 ± 0.07。模型输入的是由组成器生成的 GTA met 声谱图,以 ground truth 音频为方针。模型在练习时猜测固定巨细的波形片段。在粗精计划(coarse-fine scheme)中,WaveRNN 的前向传递经过 N = 5 的矩阵向量乘积来完成,其间首要对 16 位方针样本的较低 8 位(粗)进行猜测,然后据此对较高 8 位(精)的猜测进行调整。猜测包括对输出进行采样的散布参数。
图 19:张量的批采样。留意,折叠张量在两段的交接处呈现堆叠。
备选的 WaveRNN 是研讨者所运用的架构。因为该架构短少相关文档或论文,研讨者依靠源代码和图 20 中的图表来了解其内部运转原理。
图 20:备选的 WaveRNN 架构。
试验
在处理短言语时,声码器的运转速度一般低于实时速度。推理速度高度依靠于批采样进程中的折叠次数。事实上,就折叠次数而言,声码器网络几乎是在稳定时刻内运转,而且跟着折叠次数的添加,时刻只要少数添加。研讨者发现评论阈值持续时刻愈加简略,超越该阈值持续时刻则模型实时运转。研讨者设置的阈值持续时刻为 12.5 秒,意味着假如言语短于该阈值,则模型的运转速度将慢于实时速度。在 PyTorch 上,模型功能好像出其不意地随环境要素(如操作系统)而改变,所以研讨者展现了单个相同装备下的成果。
工具箱和开源
最终,研讨者正在开宣布一个图形界面,用户不需求首先进行研讨即可以快速获取该结构。他们称之为「SV2TTS 工具箱」,其界面如图 21 所示。SV2TTS 工具箱运用 Python 言语编写,具有 Qt4 图画界面,可跨渠道。
图 21:SV2TTS 工具箱界面。
本文为机器之心报导,转载请联络本大众号取得授权。
------------------------------------------------