语音合成(TTS)是语音AI平台的基础设施,而声码器则决定着其中的声学模型以及合成质量。喜马拉雅FM音视频高级工程师 马力在LiveVideoStack线上交流分享中详细介绍了新一代合成音质更高,速度更快的开源免费WORLD声码器的原理架构,并结合Tacotron模型,演示中文语音合成的应用。本文由LiveVideoStack整理而成。

文 / 马力

整理 / LiveVideoStack

直播回放

https://www.baijiayun.com/web/playback/index?classid=19011464750298&token=CsIfi1xWq7ThKKZLIMQ5hiQNTSk0P2AyhhMp79C4U-kb-AOqYz3LwsEdteadTNg-CqdH1zJ1Si0

大家好,我是马力,现就职于喜马拉雅FM担任音视频高级工程师,本次我将为大家介绍开源声码器WORLD在语音合成中的应用。

1. Tacotron+WORLD

WORLD声码器可与谷歌的开源语音合成模型Tacotron结合使用,如何实现这一过程呢?Tacotron是一种端到端的TTS深度学习模型,所谓“端到端”是指利用前端文本直接预测后端声谱,整合了之前的独立子模块,达到系统整体最优;WORLD则是一种声码器,与Tacotron结合可基于人类发音频谱将文字转化为与人类发音相似的声音:将每个文字转化为拼音之后,声码器会把每个拼音看作为一个序列而Tacotron会在此基础上预测每段需要合成语音的序列,随后WORLD声码器再将预测出的声谱转换为原始的声音波形。Tacotron主要负责确定此声谱特征能否使用WORLD将其恢复为声音波形并评估语音质量是否符合要求。

1.1 WORLD Vocoder

WORLD Vocoder基于声音特征实现,主要分为三个部分:Analysis分析、Manipulation操作与最后的Synthesis合成。Analysis分析过程主要是指从一段原始声音波形中提取声学特征如线性谱、低频、MFCC;Manipulation操作过程是指对提取出的原始声学特征进行压缩等降维处理使其表征能力进一步提升;最后的Synthesis合成过程是把此声学特征恢复至原始的声音波形。

既然WORLD Vocoder基于声学特征实现,那么就需要相应的声学建模。实际上所有的Vocoder都可通过一种简单的模型实现,此模型就是线性时不变系统。如上图展示的那样,左侧代表声音输入,右侧代表声音输出。输入部分被称为Source Excitation Part也就是激励部分,右侧输出结果被称为Vocal Tract resonance Part也就是声道谐振部分。整体过程为一个基于人发声机理的经典源-滤波器模型,也就是输入的激励部分通过线性时不变系统进行操作;随后输出的声道谐振部分作为合成语音。如果对应人体发声结构进行分析,激励部分对应肺部气流与声带共同作用形成的激励,而声道谐振部分对应于声道的调音运动。

1)激励部分

激励分为两种:Pulse train脉冲激励与White noise随机白噪声。脉冲激励对应我们说话声音当中的浊音,也就是气流通过紧绷的声带时,对声带进行冲击所产生的声音;此时声门处会形成准周期性的脉冲串,我们把这种激励信号简化为周期性的脉冲激励。

随机白噪声对应我们说话声音当中的清音,也就是声带处于松驰状态不发生振动时气流通过声门直接进入声道所产生的声音;我们把这种激励信号简化为随机白噪声。

2)声学特征

WORLD对应以下三种声学特征:F0基频、SP频谱包络与AP非周期序列。F0基频对应激励部分的周期脉冲序列,如果我们将声学信号分为周期性信号与非周期信号的话;SP频谱包络对应声道谐振部分时不变系统的冲激响应,大家可以看到经过此线性时不变系统之后Vocoder会对激励与响应进行卷积;AP非周期序列对应混合激励部分的非周期脉冲序列,因为所处理的信号包括周期性信号与非周期信号,虽然可以在混合时仅处理周期性信号并将其作为特征提取,随后再进行系统处理也能够合成相应的目标信号,但其由于缺乏非周期性信号的输入,合成的自然度难以符合要求,因此我们会混合提取非周期信号并同样将其作为特征之一进行提取与处理。

对比三种声学特征,正弦波组成的原始信号中频率最低的正弦波即为基频,其它正弦波则被称为谐波(泛音);频谱包络是指将不同频率的振幅最高点通过平滑的曲线连接起来得到的包络线;非周期序列对应混合激励部分的非周期脉冲序列,其中的混合激励是指通过多种参数控制周期激励、噪声与非周期信号,最后混合周期与非周期信号并通过aperiodicity调控二者权重。

1.2 优势

那么我们为什么选择WORLD 作为Vocoder呢?WORLD相对于常见的如STS等其它传统声码器的优势有以下三点:

首先是声音质量,WORLD Vocoder输出声音的质量优于其它传统声码器,其输出结果有人类自然语言的听感效果;而传统声码器输出声音不但质量欠佳,如机器般冰冷生硬的听感也非常不好。

其次WORLD的处理速度也高于传统声码器,处理速度是语音合成中一项十分重要的指标,我所知的一些基于神经网络的声码器虽然可以实现高质量的声音合成但速度却十分低下,究其原因在于神经网络需要对每一个样本点进行处理;假设一段48k采样的音频,其每一秒中包括48000个采样,如果对每个采样都进行处理无疑会大大拖慢处理效率;而WORLD声码器有其独特的处理效果如无损提高语音合成速度等,同时语音质量不会出现任何衰减。

最后是开源,WORLD的算法没有专利性而且开放给任何人使用。相对于其它需要额外花费购买商业版权的声码器,WORLD的优势十分明显。

2. WORLD分析功能

WORLD分析功能的整体架构图如上,我们将一段语音输入系统并得到此段声音的一个特征体系,我们可以存储这部分特征并在需要时读取;语音信号经过一系列合成最终输出目标信号,WORLD会重点提取原始波形中的基频、频谱包络与非周期信号,这三种声学特征对应三种提取算法:负责提取基频的DIO、将提取的F0基频同波形一块输入提取频谱包络SP的CheapTrick,以及将F0、SP和波形一同输入提取非周期信号的D4C,最终将三种声学特征通过合成算法输出恢复其原始波形信号。

2.1 Fundamental Frequency——DIO算法

DIO算法通过一个低通滤波器对原始信号进行滤波得以实现对基频的提取,具体过程为从某个时间点的正弦波中提取出四个周期信号并计算置信度也就是标准差,随后选择标准差最低的作为基频。

2.2 Spectral Envelop——CheapTrick

上图展示了声学特征中的包络。我们的声音包含不同频率的信号,覆盖0到18000赫兹,每个频率都有其振幅(以分贝为单位),我们定义每种频率波的振幅最高点连线组成的图形为包络。

我们有三种提取包络声学特征的方法:LPC、Cepstrum与CheapTrick。LPC就是线性预测编码,其原理为用若干个语音取样过去值的加权线性组合不断逼近一个语音取样值;Cepstrum则是基于复数倒谱拥有频谱幅度与相位信息的原理,通过对一个信号进行FFT、取绝对值、取对数、相位展开、IFFT的变化处理,从而得到其相应的倒谱图实现。

而WORLD中采取的CheapTrick也被称为音高同步分析的方法,其过程是先将不同基频进行适配加仓操作与平衡以及功率平滑操作,随后将信号在频域进行同态滤波操作。

2.3 Aperiodicity——D4C

非周期信号对应两种提取算法:Plantinum算法与D4C算法,在WORLD中我们主要采用D4C算法,基本可分为计算、修正参数与估计Band-aperiodicity。

2.4 应用

我们可以在一些开源的工程项目中见到对上述内容的应用如Python Wrapper。借助Python实现整个特征提取过程:首先通过DIO提取基频,再通过基频中的CheapTrick提取包络;得到基频与包络后再通过D4C得到一个非周期信号,我们将原始波形作为输入信号,利用其采样率、快速傅里叶变换的次数,以及帧移(frame period);最后返回这三个音频特征。

3. 神经网络优化

需要强调的是,单纯的基频、频谱包络与非周期信号结合基于神经网络训练的深度学习技术并不能达到我们期待的理想效果,其原因在于维度过高,尤其是频谱包络与非周期信号的高维特点使得未经优化的特征可达一千多纬度,这为神经网络的训练带来很大压力。而Merlin-WORLD通过实现维度转换有效降低维度,首先是MGC也就是将提取到的MFCC特征降低到60维度从而方便神经网络的训练;其次是将一个非周期信号转变为一个band非周期信号,以48KHz采样为例,经过此操作可实现将一千维度降低至5维;基频则保持原来维度不变。这样我们就可将以上三种特征维度连接起来,变成小于一百维的特征输入Tacotron模型从而实现理想的训练与深度学习效果。

上图展示了我们提取声学特征后恢复原声音波形得到的频谱,可以看到图像基本清晰,整体方法是利用Tacotron端对端TTS深度学习模型预测文本的声谱并通过WORLD声码器还原声谱。相信下图展示的参考资料会帮助大家进一步了解Tacotron+WORLD的无限魅力。

精品文章推荐

技术干货:

  • 手机K歌的人声伴奏对齐优化实践

  • Facebook 360度音频编码与渲染

  • 语音编解码技术演进和应用选型

  • 新一代视频编码标准:VVC、AVS3

  • VP9如何给Twitch的电竞直播带来价值?

  • 精致前处理,精准码控 — 极致视觉效果

  • Pensieve:AI带来的更流畅的高质量观看体验

  • Netflix:如何通过机器学习提高流媒体质量?

开源声码器WORLD在语音合成中的应用相关推荐

  1. LiveVideoStack线上交流分享 (十) —— 开源声码器WORLD在语音合成中的应用

    为了给大家提供一个学习,交流的平台,畅聊音视频技术开发新趋势,新实践.我们推出了LiveVideoStack线上交流分享活动,在每周四晚19:30,邀请1名业内资深技术专家进行线上分享技术干货,解答热 ...

  2. ​Interspeech 2022 | 探索非自回归跨语言语音合成中的音色解耦问题

    ©PaperWeekly 原创 · 作者 | 音月 研究方向 | 语音合成 引言 语音合成(Text-to-Speech, TTS)是指文字转语音相关技术.随着人工智能技术的发展,TTS 的声学模型和 ...

  3. LiveVideoStack线上分享第五季(九):语音合成中的风格控制

    目前,语音合成领域的风格情感控制是一个比较热门的话题,它将决定着语音合成中的似人度和灵活性以及可转换性.5月4日晚 20:00,LiveVideoStack线上分享第五季,第八期,我们邀请到了喜马拉雅 ...

  4. 开源:Angularjs示例--Sonar中项目使用语言分布图(CoffeeScript版)

    关于SonarLanguage是什么东东,这里就不在描述了,如果你对它感兴趣的话,请移步到上篇随笔开源:Angularjs示例--Sonar中项目使用语言分布图.这里是最近学习CoffeeScript ...

  5. tensor flow lstm 图像 一条直线_【开源计划】图像配准中变形操作(Warp)的pytorch实现...

    前言 按照开源计划的预告,这次我来分享图像配准流程中的变形操作的代码实现.首先我们先来回顾一下配准的流程,我们以这篇Unsupervised End-to-end Learning for Defor ...

  6. Python与开源GIS:在OGR中使用SQL语句进行查询

    属性选择与空间选择都可以看作是OGR内置的选择功能,这两种功能可以解决大部分实际中的问题.但是也有这种时候,就是进行查询时的条件比较复杂.针对这种情况,OGR也提供了更加灵活的解决方案:支持使用SQL ...

  7. 开源的 Snort 入侵检测系统中存在高危漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 开源的思科 Snort 检测和预防系统中存在一个漏洞 (CVE-2022-20685),可触发拒绝服务条件并使其无法抵御恶意流量. 该漏洞的CV ...

  8. 热门开源后端软件Parse Server中存在严重的 RCE ,CVSS评分10分

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件的安全 ...

  9. 人工智能科技成熟的11个Github上免费开源项目,很多电影中才有的场景应用到现实颠覆普通人的认知和想象

    人工智能科技成熟的11个Github上免费开源项目,很多电影中才有的场景应用到现实颠覆普通人的认知和想象. 全文大纲: PULSE - 该开源项目可以通过给图片增加像素点来实现去马赛克或高清化. De ...

最新文章

  1. 单片机 10种软件滤波方法的示例程序
  2. linux 查看文件夹大小 du命令
  3. Spring MVC 启动
  4. 如何入门.NET Core ? 推荐这10个优秀的开源项目!
  5. 如何用rake tasks 生成migration对应的sql
  6. 钓鱼(信息学奥赛一本通-T1431)
  7. 大众点评被合并至美团? 官方回应:不存在这种可能性
  8. DDD-上下文映射图
  9. 使用AWS DMS 升级Postgre 10到12
  10. hud 3874 求区间内不同数字的和
  11. 30岁之前创业想成功必看
  12. activity(工作流)初步学习记录
  13. verilog 3段式状态机
  14. 人脸对齐--采用dlib库的68_face_landmark进行人脸对齐操作
  15. Windows照片查看器无法打开此图片怎么办
  16. Spire.Office for Java 7.10.FIX[7.9.9]-全新版
  17. 二项式系数表--杨辉三角形
  18. 深圳博瑞得一定不要去
  19. 下载微软官方原版系统镜像
  20. 互联网早报 | 小米11正式发布;东风启辰重回东风日产旗下;作业帮完成新一轮超16亿美元融资...

热门文章

  1. 微信小程序 引用 map 地图,显示当前位置
  2. Linux系统任务计划(at、crontab)的使用方法
  3. ORACLE 内置函数之 GREATEST 和 LEAST(转)
  4. read web.config
  5. ASP封裝OWC CLASS
  6. 牛客 - 共鸣问题(贪心+思维)
  7. CodeForces - 1457E New Game Plus!(贪心)
  8. HDU - 3126 Nova(最大流+二分+简单几何)
  9. html5 将id的值用于top_web前端分享HTML5常见面试题集锦四
  10. TensorFlow2-迁移学习