随着以语音为交互渠道的产业不断升级,企业对语音合成有着越来越多的需求,比如智能语音助手、手机地图导航、有声书播报等场景都需要用到语音合成技术。通过语音合成技术想要得到一个新的音色,需要定制音库,但是定制音库所耗费的人力成本和时间成本巨大,成为产业升级的屏障。
多种小样本合成方案:支持一句话合成和小数据集微调。一句话合成方案即通过用户输入的一句话即可模仿用户的音色进行语音合成任务;小数据集微调方案针对少量数据学习用户音色,训练所需数据量降低98%以上。
跨语言学习方案:支持多发音人多语种训练,让发音人实现同音色跨语言语音合成任务,可有效降低音库对发音人多语种发音能力要求。
两分钟,带你快速体验PaddleSpeech发新功能
https://aistudio.baidu.com/aistudio/projectdetail/4573549?sUid=2470186&shared=1&ts=1663753541400
小样本合成方案
对于小样本合成问题,业界有两种主流方案:一句话合成方案和小数据集微调方案。
一句话合成方案
在一句话合成方案中,将发音人的音色信息进行编码后,输入到多说话人语音合成模型中,使用发音人的音色进行合成任务。如SV2TTS模型结构所示,通过Speaker Encoder模块将说话人的音频转换成speaker embedding输入到Synthesizer中,得到具有说话人音色的梅尔频谱,再通过Vocoder将其转换成音频。
针对一句话合成场景,PaddleSpeech提供了多种模型的组合方案。
一句话合成的效果受多说话人数据集和Speaker Encoder模型的影响较大,新发音人的声音会跟提取的speaker embedding在整个发音人向量空间中的最接近的那几个人的音色会比较像,因此一句话合成整体音色的效果因人而异,音色学习效果并不稳定。在能获取一定量的数据情况下,可以考虑小数据集微调方案。
小数据集微调方案
近年来,手机助手、地图导航、有声阅读等产品陆续开始支持用户自定义音色播报,常见流程是用户先阅读指定文本,在等待一段时间后(需要等待十几分钟到数个小时不等),APP可以使用用户的音色完成播报任务。这类应用多使用微调方案,在预训练模型的基础上进行微调,得到用户专属音色的相关模型。相比于一句话合成方案,该方案耗时更长,但具有更高的音色相似度和更好的音频质量。
以只冻结Encoder网络为例,大家可以体验一下不同量级微调的合成效果。
根据自己场景和业务的需要,也可以加大参与微调部分的数据量,进一步提高音色的稳定性和发音效果。相较于从零开始构建音库,通过微调方案制作定制化发音人音色所需的人力成本、时间成本以及模型的训练成本都显著降低。
跨语言学习方案
多语言发音一直是语音合成场景中的强需求,在日常沟通过程中,很多句子会包含中英混合的词汇,比如GPS导航和JAVA工程师等等。针对中英双语场景,在制作音库时,通常会寻找能够进行中英双语播报的发音人录制音库,但是跟业务需求匹配同时能够双语播音的发音人筛选难度大,在录制过程中有时也会出现发音人英文口语表述不佳以及录音状态难以稳定等情况,导致最终合成的效果不佳。
语音-语言跨模态大模型
文心ERNIE-SAT
在这次的更新中,由文心大模型团队推出的语言-语音跨模态大模型文心ERNIE-SAT在飞桨语音套件PaddleSpeech中成功上线。文心ERNIE-SAT采用语音-语言联合训练的方式在中文和英文的数据集上进行预训练,可以使模型学到语音和文本之间的对齐关系,生成频谱的精度更高,生成声音更加自然。
例如在智能语音客服场景中,与用户交互通常有TTS合成音频和以人工提前录音两种方式。早期TTS合成的音频辨识度高,自然度不足,用户难以与机器人进行多轮对话。客服机器人会采用人工录音的方式进行补充,以提高对话流畅度。但是人工录音需要提前准备大量话术,且难以应用于具有变量插槽的话术,如催收场景中播报用户姓名,欠款,预期信息等。此时,会采用人工录音+TTS合成变量拼接的方式,但是存在人工录音音色与TTS合成变量音色不一致,拼接不自然的问题,使用文心ERNIE-SAT的语音编辑功能,可以很自然的拼接人工录音和合成变量,流畅度相较于原先的方案更高。
入群福利
随时掌握PaddleSpeech最新资讯。
PaddleSpeech自2022年5月20日发布1.0版本以来,已经接收到30+来自活跃开发者的代码贡献提交,其中有很多用户为我们提供了重大feature。
GitHub用户@BarryKCL
将基于BERT的多音字预测模型g2pw(https://github.com/GitYCC/g2pW)转为onnx格式模型引入了PaddleSpeech的文本前端,使g2p wer大幅度下降(0.0260 -> 0.0240)
pr链接:
https://github.com/PaddlePaddle/PaddleSpeech/pull/2230
GitHub用户@david-95
欢迎大家在GitHub中Star收藏,及时追踪最新发布!
项目传送门
https://github.com/PaddlePaddle/PaddleSpeech
关注【飞桨PaddlePaddle】公众号
获取更多技术内容~