Facebook发布部署在CPU上的高效、实时文本转语音系统,速度提高160倍

Facebook发布部署在CPU上的高效、实时文本转语音系统,速度提高160倍
文章图片
作者|QingHe、ThiloKoehler、AntonyD’Avirro、ChetanGupta
译者|李冬梅
实时文本语音转换通常要在GPU或其他专用硬件上实现 , 但现在 , Facebook在CPU上部署了一款实时神经网络文本转语音系统 , 使合成速度比基准速度提高了160倍 。
近日 , FacebookAI宣布已经在CPU服务器上创建和部署了一款实时神经网络文本转语音系统 , 音频质量能达到人类水平 。 以前的系统通常依赖于GPU或其他专用硬件来实时生成高质量的语音 , 但通过将模型进行广泛地优化 , 该系统可以将合成速度比基准速度提高160倍 , 且能够在500毫秒内在CPU上生成一秒钟的音频 。 据介绍 , 该系统已经部署在了Facebook的视频通话设备Portal上 , 并可以在Facebook多个应用程序上使用 , 包括支持视障人士阅读和VR体验 。
当前的文本语音转换系统(TTS)在利用神经网络模拟人类语音方面已经做过很多尝试 , 为了生成类人音频 , 一秒钟的音频需要TTS系统输出2.4万个样本 , 有时甚至更多 。 高质量模型/p>
接下来 , FacebookAI对该系统如何解决核心效率挑战来实现大规模部署的问题进行了详细介绍 。
基于神经网络的TTS管道
Facebook发布部署在CPU上的高效、实时文本转语音系统,速度提高160倍
文章图片
FacebookAI设计了一个管道 , 该管道将四个组件(每个组件专注于语音的不同方面)有效地组合成一个强大而灵活的系统 , 四个组件包括:
一个将输入文本转换为一系列语言学特征的语言前端 , 例如音素和句子类型 。
一个韵律模型 , 可预测节奏和旋律以创建自然语音的表现力 。
一个生成语音频谱表示的声学模型 。
一个神经声码器 , 可根据韵律和频谱特征生成24kHz语音波形 。
音律模型
在管道中构建单独的音律模型尤为重要 , 因为它可以在语音合成时更容易地控制语音风格 。 音律模型根据一系列语言学特征以及语音风格、说话者和语言嵌入 , 来预测句子的通话级时长(即速度)和帧级基本频率(即旋律) 。 它的模型架构由具有基于内容的globalattention的递归神经网络组成 , 其上下文向量包含整个句子的语义信息 。 这样可以使模型生成更真实、自然的音律 。
研究人员使用了风格嵌入 , 可以用现有数据集中的少量额外数据来创建新的语音风格 , 包括助手型
声学模型
为了实现更高的计算效率和高质量的语音 , 研究者采用了条件神经声码器架构 , 因为它是基于频谱输入进行预测而不是直接从文本或语言特征(例如 , 像WaveNet这样的自回归模型或相当复杂的并行合成网络ParallelWaveNet)生成音频 。 他们利用声学模型将语言学和音律信息转化为帧速率频谱特征 , 并将其作为神经声码器的输入 。 这种方法使神经声码器能够集中处理几个相邻帧中的频谱信息 , 让研究者能够训练出更轻量级、体量更小的神经声码器 。
权衡之下 , Facebook选择了依靠声学模型来生成光谱特征 。 虽然通常使用的是80D高保真MFCC或Log-Mel特征 , 但实际上 , 要预测出逼真的高保真声学特征本身就是一个具有挑战性的任务 。 为了解决这个频谱特征预测问题 , 研究人员采用的方法是使用13DMFCC特征与基频和5D周期性特征相连接 , 这样能更容易地生成声学模型 。
神经声码器
条件神经声码器由两部分组成:
一个卷积神经网络 , 将输入的特征向量从帧率(大约每秒200个预测值)向上采样(或扩展)到采样率(每秒24000个预测值) 。
一个类似于WaveRNNN的递归神经网络 , 以每秒2.4万个采样率自回归合成音频样本(或一次一个样本) 。 为了减少量化噪声的影响 , 神经声码器对delta-mu-modulatedmu-law音频进行采样预测 。
神经声码器的自回归特性要求按顺序生成样本 , 这对于实时合成来说是个重大挑战 。 当研究人员开始进行实验时 , baseline实现只能在单CPU内核上以约80个实时因子(RTF)的合成速度运行 , 在80秒内生成一秒的音频 。 这样的合成速度对于实时系统来说 , 实在是太慢了 。 对于像Portal这样的系统的实时功能 , 必须将其降到1RTF以下 。
研究人员在一个TTS系统中结合并实现了以下优化技术 , 最终使合成速度提高了160倍 , 实现了0.5RTF 。
Facebook发布部署在CPU上的高效、实时文本转语音系统,速度提高160倍
文章图片
张量级优化和自定义运算器
在PyTorchJIT的帮助下 , 研究人员从面向训练的PyTorch设置迁移到推理优化的环境中 。 使用编译的算子和各种张量级优化获得了额外的速度提升 。
非结构化模型稀疏化
研究人员通过训练 , 使非结构化模型稀疏化 , 以此来降低推理计算复杂度 。 在不降低音频质量的情况下 , 可以实现96%的非结构化模型稀疏度——其中4%的模型参数为非零参数 。 通过在推理网上使用优化的稀疏矩阵运算符 , 我们能够将速度提高5倍 。
分块稀疏化
研究人员通过应用分块稀疏化技术 , 将非零参数限制在16x1的块中 , 并存储在连续的内存块中 , 从而进一步简化了参数数据布局 。 这使得参数数据在内存中布局紧凑 , 间接寻址量最小化 , 从而使内存带宽利用率和缓存利用率得到了显著提高 。
研究人员在分块稀疏结构上操作了自定义运算符 , 实现了矩阵的高效存储和计算 , 使计算量与矩阵中的非零块数成正比 。 为了在不降低音频质量的前提下 , 对高分块稀疏度进行优化 , 通过模型提炼训练稀疏模型 , 将密集模型作为teacher模型 。
在多核上的分布
最后 , 通过将重运算器分布在同一个socket上的多个核心上实现了进一步的加速 。 通过在训练过程中迫使非零参数分块均匀地分布在参数矩阵上 , 并在推理过程中将矩阵乘法在多个CPU内核之间进行分割和分配来实现 。
Facebook发布部署在CPU上的高效、实时文本转语音系统,速度提高160倍
文章图片
为了改进收集训练数据的方式 , Facebook研究人员采取了这种依赖于手工生成的语料库的方法 , 并对该方法进行了调整以便能从大规模、非结构化数据集中选择行 。 通过语言模型 , 根据可读性标准对大数据集进行筛选 。 这种新颖的调整方法使我们能够最大限度地提高语料库中的语音和语序的多样性 , 同时仍然确保语言是自然的、可读的 。 这就减少了音频中的注释和录音室的编辑工作 , 同时提高了TTS的质量 。 通过从更多样化的语料库中自动识别脚本台词 , 使我们能够快速扩展到新的语言 , 而无需依赖手工生成的数据集 。
新的数据采集方法和神经系统TTS系统的结合 , 帮助我们将语音开发周期(从脚本生成、数据采集到最终的语音交付)从一年多的时间缩短到六个月以内 。 最近 , Facebook成功地应用新的方法制作出了一款英伦口音的语音 , 这也是未来即将做出的多种尝试的第一步 。
FacebookAI表示 , “很高兴能够提供更高质量的音频 , 提供比以前扩展性更强的数据采集方式 , 这样就可以更有效地为社区中的每个人带来更好的语音交互体验 。
原文链接:
https://ai.facebook.com/blog/a-highly-efficient-real-time-text-to-speech-system-deployed-on-cpus/
【Facebook发布部署在CPU上的高效、实时文本转语音系统,速度提高160倍】你也「在看」吗?


    推荐阅读