深入浅出讲解语音合成一:merlin、Gantts及其前端处理

文字转语音(TTS)是一个给定文字输入,生成语音波形的系统。本系列文章将从传统的语音合成方法,到近期的端到端合成方案,各类型的声码器(个人认为比较有潜力的部分)进行讲解,作为近期实习结束后的工作总结。

语音合成过程分为前端的文本处理,中端的模型训练和后端的声码器合成过程。

在传统语音合成方法中,前端处理的过程是非常麻烦的。首先,作为训练语料的文本需要转换为神经网络能够识别的数字特征,所以诞生了HTS样式的fullabel标注(又称为上下文相关标注),中文的语音合成可以借由开源的MTTS项目由文本和时间标注文件生成fulllabel。https://github.com/Jackiexiao/MTTS

fulllabel的问题集分为二值问题(QS)和实值问题(CQS),将fulllabel经过问题集提问后,产生二值特征(0,1)和实值特征(0-9之间)。问题集的三列字符分别表示问题序号(QS\CQS)、问题属性(如音素在字的位置等)、搜索问题的正则表达式。每一条fulllabel将遍历整个问题集一遍,并生成对应问题集个数的特征。其中,问题集个数是可变的,可以根据喜好自行删减和添加。

fulllabel格式(卡尔普陪外孙玩滑梯标注,你懂得)

问题集格式

最后产生的特征将是一个矩阵,包含了对各类信息的描述性数据,具体内容可参看MTTS中的问题集设计规则。由于fulllabel中的特征条目是以音素为单位计算的,而一个音素在发音的不同时间段是有一定差别的,在后期使用问题集生成特征时,将对fullabel音素标注进行细化,以5ms为单位进行切分转换为状态级标注。下图中的424维特征将是音频除去静音段后,以5ms为单位划分出的特征个数(2.12/0.005=424).

上图中使用的声码器为word,所以最左侧提取出的特征分别为mgc(梅尔谱)、f0(基音频率)、bap(非周期性,二次傅里叶变换并排序后的比值)、vuv(端点检测结果)。由于基音估计不准确(个人认为),合成的效果带有严重的合成音。最后,前端生成的特征矩阵将用于训练声学模型和时长模型,声学模型用于预测合成音频的特征,时长模型用于预测音素发音时长。

本文中,模型训练的方法将以merlin和gantts举例说明。其中,gantts训练过程中的model baseline即可等价为merlin,训练流程如下:

但遗憾的是,gantts采用了如此多的额外训练步骤,相比于merlin的音质合成提升极为有限。究其原因,个人认为是由以下两点限制了传统合成方案的合成性能:

1.采用HTS的fulllabel作为合成的文本特征,特征矩阵将由0-9之间的整型数据构成,冗余无用的特征过多,而对关键特征的描述信息过少(四五百个问题集中,生成的特征大多数为0)。

2.使用了传统的word声码器,虽然性能稳定,但合成音质不够自然。

这篇算是我的初次投稿,如果觉得写的不错,不妨给我点个赞吧,你的支持是我写作的最大动力。

各位大爷,别白嫖人家嘛~

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
您好!对于基于HTK或Kaldi框架完成语音识别、说话人识别或语音合成的训练及测试,我可以为您提供一些基本的指导。 1. 语音识别: - 使用HTK:HTK是一个经典的HMM工具包,用于语音识别任务。您可以使用HTK进行语音特征提取、建立HMM模型、进行训练和识别。它提供了一些工具和脚本来处理数据和配置模型。您可以通过学习HTK的文档和示例来了解具体的步骤和操作。 - 使用Kaldi:Kaldi是一个开源的语音识别工具包,提供了一套丰富的工具和库,以及一系列的示例和文档。您可以使用Kaldi进行声学特征提取、建立DNN-HMM模型、进行训练和识别。Kaldi还支持更先进的技术,如深度学习和神经网络。 2. 说话人识别: - 使用HTK:HTK也可以用于说话人识别任务。通常,说话人识别需要建立说话人特定的模型,并使用特征向量来训练这些模型。HTK提供了一些工具和功能来处理说话人特征和模型。 - 使用Kaldi:Kaldi也支持说话人识别任务。您可以使用Kaldi来提取说话人特征,建立说话人模型,并进行训练和识别。Kaldi提供了一些示例和工具来帮助您完成这些任务。 3. 语音合成: - 使用HTK:HTK通常用于语音识别和说话人识别,而不是语音合成。如果您想要进行语音合成任务,可以考虑其他工具或库,如Festival或Merlin。 - 使用Kaldi:Kaldi本身不提供语音合成的功能。但是,您可以使用其他开源的语音合成工具,如Tacotron、WaveNet或DeepVoice等,并结合Kaldi进行声学特征提取、建立模型和后期处理。 请注意,以上只是基于HTK和Kaldi框架的一些基本指导。实际上,这些任务非常复杂且需要深入的专业知识和经验。如果您是初学者,建议您先学习相关的语音信号处理和机器学习知识,并阅读相关的文献和教程。祝您成功完成您的项目!如果您有更多问题,我会尽力回答。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值