当前位置: 首页 > news >正文

TTS前端基础知识介绍

TTS前端基础知识介绍

  • 一、TTS是什么
    • 1.1 TTS是什么
    • 1.2 都有哪些流程
  • 二、 前端流程
    • 2.1 前端组成部分
      • 2.1.1 什么是TN
      • 2.1.2 什么是G2P
      • 2.1.3 什么是PSP
    • 2.2 模型介绍
      • 2.2.1 BERT or TinyBERT
      • 2.2.2 Polyphone prediction layer
      • 2.2.3 Prosody prediction layer
      • 2.2.4 Mul-task
      • 2.2.5 distillation
  • 三、文章实验结果

文章:https://arxiv.org/pdf/2012.15404 介绍内容主要根据这批文章展开。

一、TTS是什么

1.1 TTS是什么

TTS–Text To Speech,释义语音合成,是一种将文本转换为语音的技术。它通过分析输入的文本,提取相关语音信息,将其转换为相应的语音波形信号,并输出语音。

1.2 都有哪些流程

当前我们把TTS实现分成两大部分,前端+后端
前端:由TN+G2P+PSP三部分组成

  • TN: 非中文符号转换处理。数字,日期,百分数,加减法,缩写等字符的转换处理。
  • G2P:字素-音素转换,把文字转换成用于后端生成语音需要的发音单元–即音素
    • 单音字 音素转换
    • 多音字消歧
  • PSP: 韵律结构预测,预测一个文本要在什么地方停顿。
    后端:音素-声音波形转换
    例如,输入文本:有句谚语是:“良好的开端是成功的一半”。
    经过TTS前端后端流程,生成一条语音:
    示例前端实现流程图:

二、 前端流程

2.1 前端组成部分

前端:由TN+G2P+PSP三部分组成

2.1.1 什么是TN

TN: 非中文符号转换处理。数字,日期,百分数,加减符号,缩写等字符的转换处理。

原始文本:1234 规范化文本:一千二百三十四 or 一二三四 原始文本:2023/06/27 规范化文本:二零二三年六月二十七日 原始文本:¥123.45 规范化文本:一百二十三点四五元 原始文本:75% 规范化文本:百分之七十五 原始文本:5kg 规范化文本:五千克 原始文本:138-0013-8000 规范化文本:一三八零零一三八零零零 原始文本:ABC 规范化文本:ABC 原始文本:你好,世界! 规范化文本:你好,世界!

2.1.2 什么是G2P

G2P:grapheme to phoneme 字素-音素转换,把文字转换成用于后端生成语音的发音单元–即音素

  • 单音字:直接查发音字典即可。
  • 多音字消歧:需要根据语义预测多音字的发音概率,取概率最大的发音。
    为什么要做多音字消歧:例如下文“行”到底是读xing2 还是读hang2呢?这就需要用到多音字消歧来确定到底是发哪一个音。
人要是行,干一行行一行,一行行行行行。人要是不行,干一行不行一行,一行不行行行不行。

2.1.3 什么是PSP

PSP: prosodic structure prediction 韵律结构预测,预测一个文本应该在什么地方停顿。工程实现认为有五级韵律#0 #1 #2 #3 #4 ,韵律级别是指停顿时间的长短级别,#0表示没有停顿,#4表示停顿时间最长。一般的我们认为是有三级韵律, 韵律词PW、韵律短语PPH、语调短语IPH。#0 #4是实际工程实现的时候,添加的两个韵律停顿级别。
eg:良好的开端是成功的一半。
- #0 字边界,例如,‘良’字边界 表示没有停顿
- #1 PW: prosodic word 韵律词 词边界 例如,“良好”
- #2 PPH:prosodic phrase 韵律短语 短语边界 例如,“良好的开端”
- #3 IPH: intonational phrase 语调短语 短句边界 例如,“良好的开端是成功的一半”
- #4 长句边界,表示一句话的结束,一般以句号、分号等作为结束标志。“良好的开端是成功的一半”
为什么要做韵律结构预测?
为了让生成的语音更自然,更能拟合人类的发音。因为正常人说话都有恰到好处的停顿。

2.2 模型介绍

2.2.1 BERT or TinyBERT

预训练的中文BERT文本编码器,用于编码原始文本。由Transformer块组成,使用大量中文文本数据进行预训练,能捕获丰富的中文语境和语义信息,促进下游PSP G2P这两个NLP任务。
当前系统用的tTinyBERT,比BERT少了一些模型层和参数。BERT有12层transformer,768个隐藏单元,模型较大。Tinybert有6层transformer,312个隐藏单元,模型较小。

2.2.2 Polyphone prediction layer

线性层–多音字消歧预测层。对每一个多音字,根据文本的上下文预测多音字所有发音的概率,输出概率最大的作为发音音素,输出单元是发音单元的个数。基于BERT丰富的上下文特征,用一个线性层+softmax去做多音字消歧预测,用交叉熵对一个训练句子统计多音字损失并求损失平均值。

2.2.3 Prosody prediction layer

线性层–韵律结构预测层。对每一个字输出韵律等级概率。输出单元是韵律标签的个数【当前我们的模型标签是五级,那么输出单元数就是5】。传统流程是做三级韵律,首先预测一遍PW,再此基础上再去预测PPH、IPH;当前我们现有的流程是将韵律标签混合,在一次预测中一次性预测出所有的韵律标签。

#0 #1 #0 #1 #4 #0 #1 #1 #0 #2 #1 #0 #0 #1 #0 #4

2.2.4 Mul-task

模型使用混合数据训练。多音字训练数据和韵律训练数据混合在一起输入到预训练的BERT编码器,经过两个输出层–多音字消歧预测层+韵律结构预测层,分别对相应的数据做loss,即每个句子只计算标记任务的损失,其他损失置0。再对两个损失做加权计算一个全局损失。

多音字训练数据"""宋代出现了▁le5▁燕乐音阶的记载2011年9月17日,爆发了▁le5▁占领华尔街示威活动""" 韵律训练数据'''今天#1 天气 #1 怎么样 #3'''输入数据,把发音和韵律整合成一个字典列表,有多音字标记数据对韵律标签用IGNORE_ID占位符代替,有韵律标记数据对多音字内容IGNORE_ID占位符代替,计算loss的时候IGNORE_ID就会被剔除掉,这样就实现了只计算标记任务的损失:IGNORE_ID=-100{'sentence':tokens,'phones':all_phones,'prosody':[IGNORE_ID]* len(all_phones)}{'sentence':tokens,'phones':[IGNORE_ID]* len(prosody),'prosody':prosody}

2.2.5 distillation

BERT模型训练完成后需要做蒸馏压缩,为什么要做精馏压缩? BERT训练出来的模型计算量、存储量都特别大,无法在实时应用和边缘设备中使用。需要对BERT模型–> TinyBERT模型做蒸馏压缩。

三、文章实验结果

文章实验结果
多音字消歧测试结果:BERT-polyphone表现最好![

韵律结构测试集预测结果:BERT-prosody测试效果最好

压缩后的TinyBERT-MTL的大小约为基准测试的25%, 利于在移动设备上部署。

http://www.jsqmd.com/news/1368715/

相关文章:

  • 终极指南:使用开源脚本永久冻结IDM试用期,告别30天限制
  • 3步构建大麦自动抢票系统:告别手动抢票的终极指南
  • 家用全屋中央阻垢器哪个牌子好除水垢水碱无盐软水机什么品牌好用 - 生活动态圈
  • Docker 容器化技术与镜像安全管理:一次失败实验能说明什么
  • gh_mirrors/clas/classifier性能优化指南:让文本分类速度提升300%
  • 快速上手3DS破解:boot9strap终极安装指南
  • 如何使用nginx-vts-exporter快速搭建Prometheus监控系统?
  • TinyALSA性能优化:解决音频卡顿与延迟问题的10个技巧
  • 漫画格式转换终极指南:CBconvert让你轻松解决所有设备兼容问题
  • Google技术帝国深度解析:从基础设施到AI生态的开发者指南
  • 自学剪辑难出优质作品?湖南梵映教育科技有限公司影视后期实战教学带你落地完整成片 - 生活动态圈
  • 2026年国内GEOSEO优化服务商综合实力测评:谁才是企业AI搜索时代的真正伙伴? - 品牌前沿专家
  • 前端工程化与微前端架构方案落地:运营过程中怎样及时止损
  • 2026年潮州吃喝玩乐民宿**:古城烟火与江畔诗意栖居的暖心之选 - 优企名品
  • MIT 6.S081 lazy 前置篇(lab5):缺页异常、惰性分配、写时复制、页面换出
  • WeKnora:5分钟快速上手的终极RAG智能文档处理框架,彻底告别信息碎片化
  • Tendermint-rs单元测试与集成测试全攻略:确保区块链客户端稳定运行
  • 2026郴州卫生间漏水避坑指南 - 房屋修缮
  • RPCS3模拟器终极教程:如何在PC上完美运行PS3游戏的完整指南
  • 告别千篇一律!bilibili-app-recommend内容过滤功能教程:按UP主、标题精准筛选视频
  • 系统api-信号
  • Sentora Core性能优化:提升Web主机管理效率的7个关键步骤
  • Protolint完全指南:如何用这款插件化工具统一你的Protocol Buffer代码风格?
  • Meteor架构深度解析:构建全球化Web应用的5个核心设计策略
  • 设计系统搭建与组件库自动化管理:本地环境怎样一次跑通
  • 终极Mermaid在线编辑器指南:5分钟创建专业图表
  • 【Java核心高阶进阶】30-线程池ThreadPoolExecutor源码
  • 2026年GEO营销服务商哪家做得好?从市场洞察到系统落地
  • 从论文到实践:deit_tiny_distilled_patch16_224.fb_in1k的蒸馏训练原理与复现技巧
  • Fan Control终极指南:5分钟掌握Windows风扇控制技巧