深度学习文本到语音

目录

介绍

简而言之,TTS

Tacotron2 ——一些螺母和螺栓

让我们开始TTS吧

下一步?


介绍

如果您看过《少数派报告》电影,您可能还记得汤姆·克鲁斯(Tom Cruise)走进一家Gap商店的场景。视网膜扫描仪读取他的眼睛,并为他播放定制的广告。好吧,这是2020年。我们不需要视网膜扫描仪,因为我们拥有人工智能AI)和机器学习ML)!

在本系列中,我们将向您展示如何使用深度学习进行面部识别,然后基于被识别的面部,使用神经网络文本语音转换TTS)引擎播放自定义广告。

我们假设您熟悉AI/ML的基本概念,并且可以找到使用Python的方法。

简而言之,TTS

在本系列的前几篇文章中,我们向您展示了如何使用CNN的面部识别功能来识别人。因此,您去了——一个人走进您的商店,相机捕捉他们的脸,然后幕后的智能CNN告诉您这个人是谁。怎么办?假设面部识别动作触发了一些业务逻辑,该逻辑从数据库中获取一组广告并将其提供给文本语音转换(TTS)系统。这种业务逻辑(可能来自数据科学/大数据流程)将人的身份和他们的购买习惯联系在一起……还有——选择并播放相关广告。

例如,如果我们的访客被标识为Bob,并且我们的客户数据库显示Bob上次在商店停留时购买了这双鞋,我们可以播放以下广告:嗨,鲍勃!你那双码头鞋怎么样?如果您需要一些袜子来搭配它们,我们的羊驼毛袜子今天将以5.99美元的价格出售!

除了广告生成器外,我们还可以在哪里应用TTS?在许多领域,例如语音助手、视障人士的辅助工具、静音人士的通讯方式、屏幕阅读器、自动通讯系统、机器人技术、有声读物等等。

TTS的目标不仅是生成基于文本的语音,还在于生成听起来像人类的语音——具有人声的语调、音量和节奏。当今最受欢迎的TTC模型是GoogleTacotron2

Tacotron2 ——一些螺母和螺栓

Tacotron2依赖于CNN以及递归神经网络(RNN),后者是通常用于语音识别的人工神经网络。RNN以日期时间标记的形式保留信息,因此它们在时间序列预测中非常有用。他们记住先前输入的能力称为长短期记忆(LSTM)。

RNN如何记住先前输入的值?他们没有像传统的人工神经网络那样考虑独立激活。相反,他们通过为所有层提供相同的权重和偏差将这些独立的激活转换为相关的激活。通过将每个输出转换为下一个隐藏层的输入,可以降低增加参数数量和存储每个先前输出的复杂性。通常,RNN模仿我们(人类)处理数据序列的方式。在完全阅读完句子之前,我们不会断定句子是悲伤快乐还是令人反感。以类似的方式,直到RNN从头到尾考虑了所有数据后,它才将其分类为XY

Tacotron2体系结构分为两个主要组件:Seq2SeqWaveNet,它们都是深度学习ANNSeq2Seq接收大量文本作为输入,并输出Mel频谱图——随时间变化的信号频率表示。

Seq2Seq遵循Encoder/Attention/Decoder执行序列。第一部分,编码器,将文本转换为词嵌入向量,该词随后用作解码器预测频谱图的输入。通常,Seq2Seq的操作如下:

  • 编码器包括三个卷积层,每个层包含5125 x 1形状的滤波器,然后进行批量归一化和ReLU激活
  • Attention网络获取编码器输入,并尝试将完整的编码序列总结为每个解码器输出步骤的固定长度上下文向量
  • 最终卷积层的输出传递到包含512个单位(每个方向256个)的单个双向LSTM层,以生成编码特征

第二个Tacotron2组件WaveNet接收第一个组件的输出(Mel频谱图),并输出音频波形——表示随时间变化的音频信号。

让我们开始TTS

为了演示TTS在我们的少数派报告场景中如何工作,让我们使用该存储库中可用的Tacotron2模型。首先安装Tacotron实现——按照自述文件中的说明进行操作。

该代码的优点在于,它与演示服务器捆绑在一起,可以与现有的预训练模型捆绑在一起。这使我们可以输入文本字符串并接收与该字符串关联的语音(音频)片段。服务器安装是一个单独的过程——再次参见自述文件。

当我们运行此Tacotron实现时,将出现一个文本框,提示我们输入文本。输入文本后,应用程序会大声朗读该文本。除了使用已经训练好的模型之外,我们还可以选择使用我们自己的数据集训练Tacotron2

下一步?

其实……没有。我们已经使用基于CNN的面部识别技术识别了一个人,然后使用TTS播放了与该人相关的广告。这结束了我们关于少数派报告案例的系列讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值