⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计4050字,阅读大概需要3分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
个人网站:https://jerry-jy.co/❗❗❗知识付费,🈲止白嫖,有需要请后台私信或【文末】个人微信公众号联系我
基于tacotron2的语音合成
基于tacotron2的语音合成
一、任务需求
语音合成,又称文语转换(Text To Speech, TTS),是一种可以将任意输入文本转换成相应语音的技术。
传统的语音合成系统通常包括前端和后端两个模块。前端模块主要是对输入文本进行分析,提取后端模块所需要的语言学信息,对于中文合成系统而言,前端模块一般包含文本正则化、分词、词性预测、多音字消歧、韵律预测等子模块。后端模块根据前端分析结果,通过一定的方法生成语音波形,后端系统一般分为基于统计参数建模的语音合成(或称参数合成)以及基于单元挑选和波形拼接的语音合成(或称拼接合成)。
传统的语音合成系统,都是相对复杂的系统,比如,前端系统需要较强的语言学背景,并且不同语言的语言学知识还差异明显,因此需要特定领域的专家支持。后端模块中的参数系统需要对语音的发声机理有一定的了解,由于传统的参数系统建模时存在信息损失,限制了合成语音表现力的进一步提升。而同为后端系统的拼接系统则对语音数据库要求较高,同时需要人工介入制定很多挑选规则和参数。这些都促使端到端语音合成的出现。端到端合成系统直接输入文本或者注音字符,系统直接输出音频波形。
Tacotron是第一个真正意义上的的端到端语音合成系统。输入文本或者注音字符,输出Linear-Spectrum,再经过声码器Griffin-Lim转换为波形。Tacotron目前推出了两代,Tacotron2主要改进是简化了模型,去掉了复杂的CBHG结构,并且更新了Attention机制,从而提高了对齐稳定性。
要求:利用tacotron2实现语音合成
二、任务目标
1、学习语音合成原理
2、学习使用tacotron2实现中英文语音合成
三、任务环境
1、jupyter开发环境
2、python3.6
3、tensorflow2.4
四、任务实施过程
1、加载工具
添加自定义的第三方工具TensorFlowTTS,在这里我们使用的是源码方式加载,因此需要使用sys.path.append
添加TensorFlowTTS环境变量。
如果不想这么麻烦,可以直接使用pip install TensorFlowTTS
安装,那么可以跳过环境变量设置这一步。
import sys
sys.path.append("/home/jovyan/.dependences/TensorFlowTTS/")
import tensorflow as tf
import yaml
import numpy as np
import matplotlib.pyplot as plt
import IPython.display as ipd
from tensorflow_tts.inference import AutoConfig
from tensorflow_tts.inference import TFAutoModel
from tensorflow_tts.inference import AutoProcessor