深度学习文本到语音





5.00/5 (3投票s)
在本文中,我们将重点介绍如何利用深度学习进行文本转语音。
引言
如果您看过电影《少数派报告》,您可能还记得汤姆·克鲁斯走进 Gap 商店的场景。视网膜扫描仪读取了他的眼睛,然后播放了为他量身定制的广告。嗯,现在是 2020 年了。我们不再需要视网膜扫描仪,因为我们有了人工智能 (AI) 和机器学习 (ML)!
在本系列中,我们将向您展示如何使用深度学习进行面部识别,然后——根据识别出的面部——使用神经网络文本转语音 (TTS) 引擎播放定制广告。欢迎您在 CodeProject 上浏览代码,或下载 .zip 文件在您自己的机器上浏览代码。
我们假设你熟悉 AI/ML 的基本概念,并且能够使用 Python。
TTS 简介
在本系列的前几篇文章中,我们向您展示了如何利用 CNN 的面部识别功能来识别一个人。这样,一个人走进您的商店,摄像头捕捉到他们的面部,后台智能 CNN 就会告诉您这个人是谁。那么接下来呢?让我们假设面部识别触发了一些业务逻辑,这些逻辑从数据库中提取一组广告,并将其输入到文本转语音 (TTS) 系统中。这些业务逻辑,可能依赖于数据科学/大数据流程,将此人的身份与其购买习惯联系起来……然后——Bingo!——选择并播放相关的广告。
例如,如果我们的访客被识别为 Bob,而我们的客户数据库显示 Bob 上次来店里时买了一双鞋,我们可以播放这样的广告:“嗨,Bob!那双船鞋穿起来怎么样?如果您需要搭配的袜子,我们今天有羊驼毛袜子特价 5.99 美元!”
除了广告生成器,TTS 还能在哪些方面应用?在许多领域,例如语音助手、视障人士辅助工具、哑语人士的沟通方式、屏幕阅读器、自动通信系统、机器人技术、有声读物等等。
TTS 的目标不仅是根据文本生成语音,还要生成听起来像人的语音——具有人类声音的语调、音量和节奏。目前最受欢迎的 TTS 模型是 Google 的 Tacotron2。
Tacotron2 - 一些基本原理
Tacotron2 依赖于 CNN 以及循环神经网络 (RNN)。RNN 是一种通常用于语音识别的人工神经网络。RNN 以带时间戳的形式保留信息,因此它们在时间序列预测中非常有用。它们记住先前输入的这种能力被称为长短期记忆 (LSTM)。
RNN 如何记住先前输入的值?它们不像传统 ANN 那样考虑独立激活。相反,它们通过为所有层提供相同的权重和偏差,将这些独立激活转换为依赖激活。这通过将每个输出变成下一个隐藏层的输入,降低了增加参数数量和记住每个先前输出的复杂性。总的来说,RNN 模仿了我们人类处理数据序列的方式。直到我们读完一句话,我们才决定它是“悲伤”、“快乐”还是“冒犯”。同样,RNN 在考虑了从开始到结束的所有数据之前,不会将某事归类为 X 或 Y。
Tacotron2 架构分为两个主要组件:Seq2Seq 和 WaveNet,它们都是深度学习 ANN。Seq2Seq 以文本块作为输入,并输出梅尔频谱图——一种随时间变化的信号频率表示。
Seq2Seq 遵循 Encoder/Attention/Decoder 的执行顺序。第一部分 Encoder 将文本转换为词嵌入向量,该向量稍后作为 Decoder 预测频谱图的输入。总的来说,Seq2Seq 的操作如下:
- Encoder 包含三个卷积层,每个层包含 512 个 5x1 形状的滤波器,后面跟着批标准化和 ReLU 激活。
- Attention 网络接收 Encoder 的输入,并尝试为 Decoder 的每个输出步骤将完整的编码序列总结为一个固定长度的上下文向量。
- 最后一个卷积层的输出被传递给一个包含 512 个单元(每个方向 256 个)的单向双向 LSTM 层,以生成编码特征。
Tacotron2 的第二个组件 WaveNet 以第一个组件的输出(梅尔频谱图)作为输入,并输出音频波形——一种随时间变化的音频信号表示。
让我们来 TTS 一下!
为了演示 TTS 在我们的“少数派报告”场景中是如何工作的,让我们使用 此存储库中的 Tacotron2 模型。首先安装 Tacotron 实现——请遵循 Readme 文件中的说明。
这个代码的优点是它附带了一个演示服务器,可以连接到现有的预训练模型。这使得我们可以输入一个文本字符串并收到与该字符串关联的语音(音频)片段。服务器安装是单独的步骤——再次参考 Readme。
当我们运行这个 Tacotron 实现时,会出现一个文本框,提示我们输入文本。一旦输入文本,应用程序就会大声朗读该文本。除了使用已经训练好的模型,我们还可以选择使用自己的数据集来训练 Tacotron2。
下一步?
实际上……什么都没有。我们已经使用基于 CNN 的面部识别来识别了一个人,然后使用 TTS 播放了与该人相关的广告。这结束了我们关于“少数派报告”案例的系列。科幻小说不再是那么科幻了,不是吗?