MTTS Merlin/Mandarin Text-to-Speech Document¶
Mandarin/Chinese Text to Speech based on statistical parametric speech synthesis using merlin toolkit
Latest update time: 2018-03-01
Author: Jackiexiao
Wechat: explorerrr
Merlin经验总结¶
Merlin简要使用手册¶
Merlin的简要介绍 Merlin不是一个完整的TTS系统,它只是提供了TTS核心的声学建模模块(声学和语音特征归一化,神经网络声学模型训练和生成)。
前端文本处理(frontend)和声码器(vocoder)需要其他软件辅助。
- frontend:
- festival
- festvox
- hts
- htk
- vocoder:
- WORLD
- SPTK
- MagPhase
1 Merlin的安装¶
安装
Merlin只能在unix类系统下运行,使用Python,并用theano作为后端
Merlin的Python语言采用的是Python2.7编写(更新:merlin已经支持python2.7-3.6 的版本),所以我们需要在Python2.7的环境下运行Merlin,为避免python不同版本之间的冲突,我们采用Anaconda对Python运行环境进行管理。
Anaconda `国内镜像下载地址<https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/>`_ 下载完毕后
bash Anacoda......sh
使用Anaconda创建Merlin运行环境具体操作如下:
打开终端,使用下面命令查看一下现有python环境
conda env list
使用下面命令创建一个名为merlin的python环境
conda create --name merlin python=2.7
先进入merlin环境中
source activate merlin
在这个环境下安装merlin
sudo apt-get install csh cmake realpath autotools-dev automake
pip install numpy scipy matplotlib lxml theano bandmat
git clone https://github.com/CSTR-Edinburgh/merlin.git
cd merlin/tools
./compile_tools.sh
留意程序的输出结果,一些程序如果没有成功安装会影响到后面的结果
如果一切顺利,此时你已经成功地安装了Merlin,但要注意的是Merlin不是一个完整的TTS系统。它提供了核心的声学建模功能:语言特征矢量化,声学和语言特征归一化,神经网络声学模型训练和生成。但语音合成的前端(文本处理器)以及声码器需要另外配置安装。此外,Merlin目前仅提供了英文的语音合成。
此外,上述安装默认只配置支持CPU的theano,如果想要用GPU加速神经网络的训练,还需要进行其他的步骤。由于语料库的训练时间尚在笔者的接受范围之内(intel-i5,训练slt_arctic_full data需要大概6个小时),因此这里并没有使用GPU进行加速训练。
运行Merlin demo
sudo bash ~/merlin/egs/slt_arctic/s1/run_demo.sh
该脚本会使用50个音频样本进行声学模型和durarion模型的训练,并合成5个示例音频。在此略去详细的操作步骤,具体可参见:Getting started with the Merlin Speech Synthesis Toolkit installing-Merlin
2 Merlin源码理解¶
0 文件含义¶
Folder | Contains |
---|---|
recordings | speech recordings, copied from the studio |
wav | individual wav files for each utterance |
pm | pitch marks |
mfcc | MFCCs for use in automatic alignment mfcc tutorial |
lab | label files from automatic alignment |
utt | Festival utterance structures |
f0 | Pitch contours |
coef | MFCCs + f0, for the join cost |
coef2 | coef2, but stripped of unnecessary frames to save space, for the join cost |
lpc | LPCs and residuals, for waveform generation |
bap | band aperiodicity |
1 免费的语料库¶
Merlin使用了网络上免费的语料库slt_arctic,可以在以下网址进行下载:slt_arctic_full_data.zip
2 训练数据的处理¶
Merlin自带的demo(merlin/egs/slt_arctic/s1 )已经事先完成了label文件以及声学参数mgc lf0 bap的提取,所以这里不需要前端FrontEnd和声码器对数据进行处理。
Merlin通过脚本文件setup.sh在~/merlin/egs/slt_arctic/s1 目录下创建目录experiments,在experiments目录下创建目录slt_arctic_demo,完成数据的下载与解压,并将解压后的数据分别放到slt_arctic_demo/acoustic_mode/data,slt_arctic_demo/duration_model/data目录下,分别用于声学模型和持续时间模型的训练。
3 Demo语料库的训练¶
run_demo.sh文件会进行语音的训练以及合成。这里有许多的工程实现细节,在这里略去说明,其主要进行了如下步骤 
其中语料库包含了文本和音频文件,文本需要首先通过前端FrontEnd处理成神经网络可接受的数据,这一步比较繁琐,不同语言也各不相同,下面会着重讲解。音频文件则通过声码器(这里使用的是STRAIGHT声码器)转换成声码器参数(包括了mfcc梅谱倒谱系数,f0基频,bap:band aperiodicity等)再参与到神经网络的训练之中。
4 Demo语料库的合成¶
Demo中提供了简单的合成方法,使用demo(merlin/egs/slt_arctic/s1 )下的脚本文件:merlin_synthesis.sh即可进行特定文本的语音合成。
同样的,由于merlin没有自带frontend,所以其demo中直接使用了事先经过frontend转换的label文件作为输入数据来合成语音。如果想要直接输入txt文本来获得语音,需要安装FrontEnd(下文会提及)并根据merlin_synthesis.sh文件的提示用FrontEnd来转换txt文本成label文件,再进行语音合成。
对于英文语音合成,merlin中需要首先通过Duration模型确定音素的发音时间,然后根据声学模型合成完整的语音。
5.Merlin的训练网络¶
Merlin的训练网络可见 *Merlin: An Open Source Neural Network Speech Synthesis System *
- Merlin一共提供了4类神经网络用于HMM模型的训练,分别是
- 前馈神经网络
- 基于LSTM的RNN网络
- 双向RNN网络
- 其他变体(如blstm)
3 Merlin 英文前端¶
Merlin前端FrontEnd
(1)Label的分类
- 在Merlin中,Label有两种类别,分别是
(2)txt to utt
文本到文本规范标注文件是非常重要的一步,这涉及自然语言处理,对于英文来说,具体工程实现可使用Festival,参见:Creating .utt Files for English
Festival 使用了英文词典,语言规范等文件,用最新的EHMM alignment工具将txt转换成包含了文本特征(如上下文,韵律等信息)的utt文件
(3)utt to label
在获得utt的基础上,需要对每个音素的上下文信息,韵律信息进行更为细致的整理,对于英文的工程实现可参见:Creating Label Files for Training Data
label文件的格式请参见:lab_format.pdf
(4)label to training-data(HMM模型聚类)TODO
由于基于上下文信息的HMM模型过于庞大,有必要对HMM模型进行聚类,即使用问题集Question file.(可以参考 决策树聚类 )(这个Question sets目测可以看HTS的文档来获得进一步的解释)
Question file 的解释:
The questions in the question file will be used to convert the full-context labels into binary and/or numerical features for vectorization. It is suggested to do a manual selection of the questions, as the number of questions will affect the dimensionality of the vectorized input features.
- 在Merlin目录下,merlin/misc/questions目录下,有两个不同的文件,分别是:
- questions-radio_dnn_416.hed
- questions-unilex_dnn_600.hed
查看这两个文件,我们不难发现,questions-radio_dnn_416.hed定义了一个416维度的向量,向量各个维度上的值由label文件来确定,也即是说,从label文件上提取必要的信息,我们可以很轻易的按照定义确定Merlin训练数据training-data;同理questions-unilex_dnn_600.hed确定了一个600维度的向量,各个维度上的值依旧是由label文件加以确定。
4 Merlin vocoder声码器¶
Merlin中自带的vocoder工具有以下三类:Straight,World,World_v2
这三类工具可以在Merlin的文件目录下找到,具体的路径如下merlin/misc/scripts/vocoder
在介绍三类vocoder之前,首先说明几个概念:
- MGC特征
- 通过语音提取的MFCC特征由于维度太高,并不适合直接放到网络上进行训练,所以就出现了MGC特征,将提取到的MFCC特征降维(在这三个声码器中MFCC都被统一将低到60维),以这60维度的数据进行训练就形成了我们所说的MGC特征
- BAP特征
- Band Aperiodicity的缩写
- LF0
- LF0是语音的基频特征
Straight
音频文件通过Straight声码器产生的是:60维的MGC特征,25维的BAP特征,以及1维的LF0特征。
通过 STRAIGHT 合成器提取的谱参数具有独特 特征(维数较高), 所以它不能直接用于 HTS 系统中, 需要使用 SPTK 工具将其特征参数降维, 转换为 HTS 训练中可用的 mgc(Mel-generalized cepstral)参数, 即, 就是由 STRAIGHT 频谱计算得到 mgc 频谱参数, 最后 利用原 STRAIGHT 合成器进行语音合成
World
音频文件通过World声码器产生的是:60维的MGC特征,可变维度的BAP特征以及1维的LF0特征,对于16kHz采样的音频信号,BAP的维度为1,对于48kHz采样的音频信号,BAP的维度为5
5 生成Merlin的英文label用于语音合成¶
注意到merlin是没有自带frontend的,对于英文,你需要安装Festival来将文本转换成HTS label, 对于其他语言,你需要自行设计或者找到支持的frontend,中文目前网络上还没有开源的工具,所以你需要自己设计
英文FrontEnd安装 具体步骤如下参见:Create_your_own_label_Using_Festival.md
安装完毕之后,参考merlin/tools/alignment 里面的文档生成自己的英文label
中文语音合成系统的实现¶
语料库¶
1 King_tts_003语料库¶
1.1 文本与标注¶
语料库使用购买自海天瑞声公司的King_tts_003语料库,该语料库由专业的标准女播音员录制,总时长为15小时,近2万个句子。其中标注包括了拼音、韵律(韵律边界与重音)、音素发音时长、声韵母标注。语音文件以44.1 KHz,16bit,双音道,windows的无压缩PCM格式存储。除了此外,该语料库还提供了记录EGG(electroglottography)信号的音频。
声调的标记格式¶
采用数字1、2、3、4、5,代替《汉语拼音方案》中声调阴平(ˉ),阳平(ˊ),上声(ˇ),去声(ˋ),轻声(不标调)这几个标调符号
韵律的标记格式¶
韵律分成四级,分别用#4,#3,#2, #1表示。
- #4 :
- (1)一个完整语意的句子,切除前后可以独立成为一个句子,从听感上调形是完全降下来的,有明显的停顿。 (2)如果是以二声词结尾的短句,这个二声的词被拖长音,且与后面是转折的关系的,有明显的停顿。
- #3 :
- 通常标在一个韵律短语后面,有时会是一个词,从听感上调形是降下来的,但不够完全,不能独立成为一个语意完整的句子。
- #2 :
- (1)表示被‘重读’的词或单个字(为了强调后面),有停顿,调形上有小的变化, 有‘骤停’的感觉。 (对于单音节词如果是被‘拖长音’,给#1;如果是‘骤停’要给#2 ) (2)并列关系的词如果被强调重读,给#2;如果是很平滑的,给#1。
- #1 :
- 只是韵律词的边界,通常没有停顿
声韵母与停顿的标记格式¶
- 标注符号采用a,b,d,s四种标记符号进行标注,标注符号的意思如下:
- a表示中文汉字的声母。
- b表示中文汉字的韵母。
- d表示句中的静音长度小于100ms的停顿。
- s表示句子的起始点和结束点以及句中大于100ms的停顿。
声韵标注的具体规则¶
- 中文汉字拼音的声母用a表示,韵母用b表示。
- 其中有一些汉字音节以元音开头,称为零声母音节,如a/o/e/ang/eng/en/ai/ei/ao/ou/an/er/,我们用标记点a来进行标注。
- 其中有一些汉字是特殊读音,仅仅表示鼻子发出的气流,如m/n/ng/,分别对应汉字(呣,嗯,嗯),我们用标记点b来进行标注。
- 汉字发音为yu/yi/wu/的为整体认读音节,但我们此次把以w,y为声母加韵母的拼音按照声韵进行切分。
举一个例子
我#1就怕#2自己的#1俗气#3亵渎了#2普者黑的#1风景
wo3 jiu4 pa4 zi4 ji3 de5 su2 qi4 xie4 du2 le5 pu2 zhe3 hei1 de5 feng1 jing3
2 自动音段切分¶
具体参考文献[24],其中讲了基于HMM的自动音段切分
音段的自动切分通常是基于大语料库的需求,对音库进行音段切分,比如对中文的音节或者声韵母单元进行切分。
这里主要参考文献[6],这篇文章详细讲解了如何使用praat软件实现发音时长标注
我们通常需要知道每个音节/音素对应的wav片段以及持续时间是多少,给定一段文本,标注它在音频中的准确位置的任务就叫force-alignment,这里有 forced-alignment-tools
从其中可知 aeneas 是支持中文简体和繁体的alignment的
由此我们可以得到每个句子对应的发音时长标注文件,包括了句子中每个声韵母的发音时长以及每个停顿的发音时长。
工具¶
Festival-2.1可以用于语音的自动切分和标注
Praat,该款语音处理软件是一个跨平台且功能丰富的专业学习软件,许多做语音技 术研究的论文里面都能看到这款软件的使用,其重要的功能是实现采集、分析和标 注语音信号,并通过将语音的标注信息和对应的语音信号的波形进行对照,实现精 确的分层次的逐层标注,并能生成对应的包含时间戳信息的单音素标注文件和含上 下文信息的标注文本。
3 语料库的获取¶
中文语料库¶
目前网络上尚未有免费的语料库,需要自行构建语料库或者是购买公司或者大学的语料库。对于自行构建语料库来说,除了韵律部分需要人工标记之外,其他部分实际上可以通过工具实现标注,例如字音转换,分词,词性标注,音素发音时长。
英文语料库¶
下面摘自文献[5]
ARCTIC数据库是由卡内基梅隆大学(CMU)语言技术研究所开发的英文朗读语音数据库[51]。最初是用来训练基于单元挑选(Unit selection)的语音合成系统,后来成为基于HSS英文系统训练的通用数据库。该库包含1132句文本,选自文化作品数字化项目“古腾堡计划”中的两个英文短篇故事[52]。共有7名说话人参与录音,其中BDL、SLT、CLB和RMS四位说话人使用美式英语,其余三位是有加拿大、苏格兰及印度口音的英语母语说话人。为便于评测,本论文中的使用四位美式英语说话人的数据训练英文的声音模型。ARCTIC中另外一位说话人Roger也是美式英语,与其他人的数据独立发行,大量用于Blizzard Challenge测试中。ARCTIC数据库的上下文标注数据由开源语音合成系统Festival[53]的前端文本分析模块得到,使用由名古屋工业大学Tokuda实验室发布的以音素为单位的标准英文上下文标注格式。
CMU_ARCTIC speech synthesis system [OL] .http://festvox.org/cmu_arctic/index.html .2012
EMA数据库[54]是由南加州大学SAIL实验室开发的使用电磁设备记录发声器官数据的英文情感语音数据库。共包含2名女性(JN、LS)和1名男性(AB)美式英语母语说话人。录音文本共包含10句英文语料,每名说话人用每种情感将一句语料重复录制5次。然后通过一批测听人员对每条录音情感表现的打分,根据平均意见,决定哪些录音是有效的情感语音数据。这个数据库包含语音波形和同步录制的舌位动态信号,本身是用于研究情感语音的声学表现以及发声器官协同建模的小规模音库。在本文中,将用于学习中性语音到情感语音转换的声学参数变换规则。由于EMA只是用于进行声学分析,没有提供标注。因此,使用Festival的前端文本分析模块得到了与ARCTIC相同格式的英文上下文标注。
对于端到端的语料库,可具体参见github tacotron的复现项目,各自使用了不同的语料库
文本分析¶
- FrontEnd
- the front-end provides a symbolic linguistic representation of the text in terms of phonetic transcription and prosody information
关于英文FrontEnd设计可参考:[front-end Design](http://research.cs.tamu.edu/prism/lectures/sp/l17.pdf),这个pdf大概讲解了frontend的基础架构,frontend的设计需要大量的语言学知识,工作相对也是比较繁琐的。
1 拼音标注风格¶
读此章节时读者有必要回顾拼音的基础知识
- 整体认读音节
- 16个整体认读音节分别是:zhi 、chi、shi、ri、zi、ci、si、yi、wu、yu、ye、yue、yuan、yin 、yun、ying,但是要注意没有yan,因为yan并不发作an音
- 声母
- 21个声母没有什么争议,如果说有22个声母,一般指多加一个零声母,yw都属于零声母。如果用23个声母,则是21声母+yw两个零声母,如果用27个声母,则是将不同情况下的yw零声母分成6种情况,标注成aa, ee, ii, oo, uu, vv,即21+6=27个声母(具体见hmm训练,合成基元的选择一节)
- 韵母
- 国家汉语拼音方案中韵母数量为35个,但另一说为39个(如百度百科),在原国家汉语拼音方案上增加了-i(前)、-i(后)、er、ê。
- 下面新加的4个元音做简要解释
- ê[ε] 在普通话中,ê只在语气词“欸”中单用【因此一些项目忽略了这个单韵母,即38个韵母】。ê不与任何辅音声母相拼,只构成复韵母ie、üe,并在书写时省去上面的附加符号“ˆ”。
- er[] 是在[ә]的基础上加上卷舌动作而成。 发音例词:而且érqiě 儿歌érgē 耳朵ěrduō 二胡èrhú 二十èrshí 儿童értóng
- -i(前) 指zi/ci/si中的i 发音例词:私自sīzì 此次cǐcì 次子cìzǐ 字词zìcí 自私zìsī 孜孜zīzī
- -i(后) 指zhi/chi/shi/ri中的i 发音例词:实施shíshī 支持zhīchí 知识zhīshi 制止zhìzhǐ 值日zhírì 试制shìzhì
拼音标注风格分成两类,
1.第一类是国家规定的方案,也就是日常生活中用到的风格,规定了声母21个,其韵母表中列出35个韵母,具体参见中华人民共和国教育部发布的 汉语拼音方案
- 2.第二类是方便系统处理的拼音标注风格,不同项目有不同的注音风格,区别主要在于
- 对y w的处理,有的项目为了方便处理,也将yw视为声母,有的则会将对应的yw传换成实际发音,如ye,yan,yang(整体认读音节)等改成ie,ian,iang,而不适用yw
- 是否将整体认读音节还原成单个韵母或声母
- ju qu xu的标注是否转为实际发音标注,即jv qv xv
- yuan yue yun的标注是否转成yvan yve yvn
- 注意到iou, uei, uen 前面加声母时,写成iu ui un,例如牛(niu), 归(gui),论(lun),标注时是否还原成niou, guei, luen 的问题
- 儿化音是否简化标注,例如’花儿’,汉语拼音方案中标注为’huar’,一般我们将其转为’hua er’
- 本项目使用的风格
- 将yw视作声母,但同时将ya还原成yia, ye还原成yie,其余类似
- 标注为 jv qv xv
- 标注为 yvan yve yvn
- 将iou, uei, uen 标注还原
- ê标注为ee, er(包括儿化音中的r)标注为er, i(前)标注为ic, i(后)标记为ih
- 声调标注,轻声标注为5,其他标注为1234
最终使用的声韵母表如下
- 声母(23个)
- b p m f d t n l g k h j q x zh ch sh r z c s y w
- 韵母(39个)
- 单韵母 a、o、e、 ê、i、u、ü、-i(前)、-i(后)、er
- 复韵母 ai、ei、ao、ou、ia、ie、ua、uo、 üe、iao 、iou、uai、uei
- 鼻韵母 an、ian、uan、 üan 、en、in、uen、 ün 、ang、iang、uang、eng、ing、ueng、ong、iong
- 韵母(39个)(转换标注后)
- 单韵母 a、o、e、ea、i、u、v、ic、ih、er
- 复韵母 ai、ei、ao、ou、ia、ie、ua、uo、 ve、iao 、iou、uai、uei
- 鼻韵母 an、ian、uan、 van 、en、in、uen、 vn 、ang、iang、uang、eng、ing、ueng、ong、iong
注意: * pypinyin中使用的是 yuan ju lun * 本文语料库使用的是 yvan jv lun,语料库中音素标注将yw视作声母
另外一种推荐的方案是使用27个声母,即去掉yw
- 声母(27个)
- b p m f d t n l g k h j q x zh ch sh r z c s aa ee ii oo uu vv
2 多音字的处理¶
多音字是汉语中的普遍现象,正确地处理多音字才能保证汉语tts系统输出的正确性。
目前字音转换的方式有两种,一种是基于规则的字音转换,一种是基于统计的字音转换。基于规则的方法由于过于依赖语言学知识,存在很大的局限性。目前主流的方法是使用基于统计的字音转换。
本项目使用了python package - pypinyin,在此跳过对相关技术的介绍。
3 文本规范化¶
对文本进行预处理,主要是去掉无用字符,全半角字符转化等
- 有时候普通话文本中会出现简略词、日期、公式、号码等文本信息,这就需要通过文本规范化,对这些文本块进行处理以正确发音[7]。例如
- “小明体重是 128 斤”中的“128”应该规范为“一百二十八”,而“G128 次列车”中的“128” 应该规范为“一 二 八”;
- “2016-05-15”、“2016 年 5 月 15 号”、“2016/05/15”可以统一为一致的发音
- 对于英文而言,如:
- 2011 NYER twenty eleven
- £100 MONEY one hundred pounds
- IKEA ASWD apply letter-to-sound
- 100 NUM one hundred
- DVD LSEQ D. V. D. ꔄ dee vee dee
文本规范化就是通过对上下文文本的分析,结合上下文环境,把输入文本中正常文本以外的非标准文本信息转化为对应文字的过程。
文本规范化其中一方方法如下。
- 结合有限状态机[43](Finite State Machine, FSM)和最大匹配原则,在词典的指导下,把文本中不标准字符串识别为非标准文本词;
- 选取人工设计的特征模板,采用最大熵算法的统计模型,进行训练建模;
本项目没有暂时没有计划实现此类功能,因此也跳过不详细介绍。
请详见文献[26]
4 词性标注¶
本项目使用 结巴 工具进行词性标注。结巴分词工具包采用和 ictclas 兼容的标记法。由于结巴分词的标准较为简单,本项目使用结巴的词性标注规范,在上下文标注和问题集中只取大类标注,即字母a-z所代表的词性,具体见下方列表中给出的结巴词性标注表
- 词性标注规范
- 结巴使用的词性标注表
- 中科院ictclas规范
- 斯坦福Stanford coreNLP宾州树库的词性标注规范
- ICTPOS3.0词性标记集 链接中还包括了ICTCLAS 汉语词性标注集、jieba 字典中出现的词性、simhash 中可以忽略的部分词性
- 北大标注集
6 中文分词¶
这里不关注中文分词的技术,而只关注中文分词的标准和中文分词的一些问题。
出处:知乎 链接:https://www.zhihu.com/question/19578687/answer/190569700
分词器当前存在问题:目前中文分词难点主要有三个:
1、分词标准:比如人名,在哈工大的标准中姓和名是分开的,但在Hanlp中是合在一起的。这需要根据不同的需求制定不同的分词标准。
- 2、歧义:对同一个待切分字符串存在多个分词结果。歧义又分为组合型歧义、交集型歧义和真歧义三种类型。
- 组合型歧义:分词是有不同的粒度的,指某个词条中的一部分也可以切分为一个独立的词条。比如“中华人民共和国”,粗粒度的分词就是“中华人民共和国”,细粒度的分词可能是“中华/人民/共和国”
- 交集型歧义:在“郑州天和服装厂”中,“天和”是厂名,是一个专有词,“和服”也是一个词,它们共用了“和”字。
- 真歧义:本身的语法和语义都没有问题, 即便采用人工切分也会产生同样的歧义,只有通过上下文的语义环境才能给出正确的切分结果。例如:对于句子“美国会通过对台售武法案”,既可以切分成“美国/会/通过对台售武法案”,又可以切分成“美/国会/通过对台售武法案”。一般在搜索引擎中,构建索引时和查询时会使用不同的分词算法。常用的方案是,在索引的时候使用细粒度的分词以保证召回,在查询的时候使用粗粒度的分词以保证精度。
3、新词:也称未被词典收录的词,该问题的解决依赖于人们对分词技术和汉语语言结构的进一步认识。
本项目使用了结巴分词器,读者可以按自己的需要选择其他分词器,可见github项目:中文分词器分词效果评估对比
7 语言分析结果存储文档¶
文本分析后需要输出含有分析结果的数据以便进行下一步的“上下文相关的标注”文件提取,存储分析数据的方式有xml格式文档或者是HTS系统使用的utt格式文件
韵律处理¶
语音信号有四个特征参数: * 音高 * 音长 * 音强 * 音色
其中音色取决于不同人的发音特征,一般汉语韵律规则的主要表现体现在——音节的时长分布、音高的变化、音强的变化以及适当的停顿。[2]
1. 重音¶
重音的重要性体现在
- 对听感的影响:有了重音人们的语句听起来才有抑扬顿挫的感觉,
- 对语义的影响:当一个句子的重音落在不同地方时,表达的语义是不同的
对重音的刻画方式
不同语言的重音特点是不同的,例如英语的重音认为是音长、音高、音强的集合,其中音高因素占主导地位,强调语气就是通过扩大调域来形成。对于汉语来说,它的重音主要体现在音长的增长,其次才是调域的扩大以及音高的提升和调性,与发音强度的关系并不是很密切。[2]
2. 韵律的标注¶
参见语料库一节中韵律的标注。
HMM训练¶
1 合成基元以及其状态数量的选择¶
如何选取合成基元¶
对于汉语语音系统而言,常用的基本基元有音节、声韵母和音素。由于汉语有410个无调音节,如考虑语调则有1300多个音节(具体数量上不同词典的标准都不相同,这里取约数),在进行上下文无关的建模时,选用音节作为基元可以取得比较好的性能。[todo 可以试一下使用音节来作为合成单元,看看合成效果]但如果考虑上下文相关的变化,则会由于基元数目太多而导致模型无法实现。而声韵母(声母21个,韵母todo个)与音素的数目都相对较少,因此可以用来作上下文相关模型的基元。[3]
汉语大概有35个音素,但是音素并没有反映出汉语语音的特点,而且,相对于声韵母,音素显得十分不稳定,这就给标注带来了困难,进而影响声学建模,因此,音素也不适合作为上下文相关的合成基元。[3] 这里的音素单个发音的字母,例如可以将拼音ming分成 m i n g四个音素
这里选取声韵母作为基元,同时为了模拟发音中的停顿,可以将短时停顿和长时停顿看做是合成基元,此外,将句子开始前和结束时的静音sil也当做合成基元
合成基元的列表¶
本项目选用的合成基元为
- 声母 | 21个声母+wy(共23个)
- 韵母 | 39个韵母
- 静音 | sil pau sp
sil(silence) 表示句首和句尾的静音,pau(pause) 表示由逗号,顿号造成的停顿,句中其他的短停顿为sp(short pause)
- 声母(23个)
- b p m f d t n l g k h j q x zh ch sh r z c s y w
- 韵母(39个)
- 单韵母 a、o、e、 ê、i、u、ü、-i(前)、-i(后)、er
- 复韵母 ai、ei、ao、ou、ia、ie、ua、uo、 üe、iao 、iou、uai、uei
- 鼻韵母 an、ian、uan、 üan 、en、in、uen、 ün 、ang、iang、uang、eng、ing、ueng、ong、iong
- 韵母(39个)(转换标注后)
- 单韵母 a、o、e、ea、i、u、v、ic、ih、er
- 复韵母 ai、ei、ao、ou、ia、ie、ua、uo、 ve、iao 、iou、uai、uei
- 鼻韵母 an、ian、uan、 van 、en、in、uen、 vn 、ang、iang、uang、eng、ing、ueng、ong、iong
改进方法——引入零声母
参考自文献[3],但本项目没有采用
[contro] 6个零声母()的引入是为了减少上下文相关的tri-IF数目,这样就可以使得每个音节都是由声母和韵母组成,原先一些只有韵母音节可以被视作是声母和韵母的结构,这样一来,基元就只有 声母-韵母-声母 以及 韵母-声母-韵母 两种结构,而不会出现两个韵母相邻的情况,进而明显减少了上下文相关的基元。[3]
- 如果这么做的话就是21+6=27个声母,可以将零声母标记成 aa, ee, ii, oo, uu, vv,一是将yw替换,二是将一个韵母组成的音节手动添加上零声母,举例
- ye,yan,yang(整体认读音节)标注成——ii ie, ii ian, ii iang (ie, ian, iang是真实发音的韵母)
- ao an ou 熬 安 欧, 标记成 aa ao, aa an, oo ou
基元状态数量的选择¶
一般我们选择将一个基元分成5个状态。假设每个状态都由一个高斯分布描述,那么总共的高斯分布数量等于上下文相关基元的数目*5,这样数量过多,在训练数据库不是足够大的情况下,很多基元会存在训练不充分的问题。解决的方法是采用参数共享的技术。例如进行状态共享(state Tying)建模,或者混合密度共享(Tied Mixture)建模
上下文基元是否带声调¶
语音识别中,大多数系统使用的基元时不带有声调的。但在语音合成系统中,我们有两种选择:一是训练中仍采用无声调基元,然后在合成的最后阶段,根据汉语声调的模式调整基音周期,达到合成语调的目的。另一方法是,在训练中即使用带有声调的基元,然后在上下文相关训练时将它们进行状态共享,以降低模型规模,并提供近似合成未知基元的能力。[3]
[todo][contro]直觉上后者合成出来的语音可能更自然,本文选择后者(需要再进行测试评估)
2上下文相关的标注¶
设计上下文相关标注的规则¶
上下文相关标注的规则要综合考虑有哪些上下文对当前音素发音的影响,总的来说,需要考虑发音基元及其前后基元的信息,以及发音基元所在的音节、词、韵律词、韵律短语、语句相关的信息。[1]
本项目的上下文相关标注参考了文献[13],其规则见 面向汉语统计参数语音合成的标注生成方法
本项目自行设计了上下文设计规则以及问题集,尽可能保证了设计规则的可扩展性
3 基于决策树的聚类¶
[tmp]下面主要参考了[2]中的问题集设计
由于采用了大量的三音素结构,HMM模型数量骤增,过多的模型数量使得难以有足够的数据进行训练。决策树通过将模型进行归类很好地解决了这个问题。此外,实际语音合成时可能遇到训练数据中没有出现的基元,基于决策树(Decision Tree)的方法,可以使用那些可见基元的分布来合成在训练数据中不可见的基元。
决策树介绍TODO(可以抄写[2]中的介绍)
[6]
聚类分析就是为了将我们的数据集聚集成为各种不同的类,聚类的原则是根据 数据的相似性,使得类之间的相似性尽量小,同时保证类内的相似性尽量大[35],常 用的聚类方法有K均值法、自组织映射神经网络法等等。决策树的方法起源较早, 早期的方法有CLS (自概念学习系统),后来逐渐发展成了 ID3方法,到现在则 发展成了以C4.5方法为代表的一类能处理连续属性的决策树方法[36]。 本文最终选取了 C4.5方法来建立决策树,构造决策树的方法是采用自顶向下 的递归构造,构造原则如下:若一个训练数据集里面的所有例子都是同一类别的, 我们就将其作为决策树的叶子节点,该类别的标记就是叶子节点的内容;如果训练 数据不属于同一个类,则根据预设的策略来选择其中一个属性,并根据属性的各个 取值将例子集合划分为多个子集合,这样每个子集上的所有例子在该属性上具有同 样的属性值;然后再以此递归处理各个子集[37]。
决策树的学习资料可以参见[todo]
4 问题集的设计¶
目前笔者设计了未经优化的问题集,后面可以根据决策树的情况进行优化。 * 问题集设计规则和示例 * 完整问题集文件
问题集(Question Set)即是决策树中条件判断的设计。问题集通常很大,由几百个判断条件组成。 一个典型的英文问题集文件(merlin)
问题集的设计依赖于不同语言的语言学知识,而且与上下文标注文件相匹配,改变上下文标注方法也需要相应地改变问题集,对于中文语音合成而言,问题集的设计的规则有:
- 前前个,前个,当前,下个,下下个声韵母分别是某个合成基元吗,合成基元共有65个(23声母+39韵母+3静音),例如判断是否是元音a QS “LL-a” QS “L-a” QS “C-a” QS “R-a” QS “RR-a”
- 声母特征划分,例如声母可以划分成塞音,擦音,鼻音,唇音等,声母特征划分24个
- 韵母特征划分,例如韵母可以划分成单韵母,复合韵母,分别包含aeiouv的韵母,韵母特征划分8个
- 其他信息划分,词性划分,26个词性; 声调类型,5个; 是否是声母或者韵母或者静音,3个
- 韵律特征划分,如是否是重音,重音和韵律词/短语的位置数量
- 位置和数量特征划分
对于三音素模型而言,对于每个划分的特征,都会产生3个判断条件,该音素是否满足条件,它的左音素(声韵母)和右音素(声韵母)是否满足条件,有时会扩展到左左音素和右右音素的情况,这样就有5个问题。其中,每个问题都是以 QS 命令开头,问题集的答案可以有多个,中间以逗号隔开,答案是一个包含通配符的字符串。当问题表达式为真时,该字符串成功匹配标注文件中的某一行标注。格式如:
QS 问题表达式 {答案 1,答案 2,答案 3,……}
QS “LL==Fricative” {f^*,s^*,sh^*,x^*,h^*,lh^*,hy^*,hh^*}
对于3音素上下文相关的基元模型的3个问题,例如: * 判断当前,前接,后接音素/单元是否为擦音 * QS ‘C_Fricative’ * QS ‘L_Fricative’ * QS ‘R_Fricative’
更多示例:
Question | 含义 |
---|---|
QS “C_a” | 当前单元是否为韵母a |
QS “L_Fricative” | 前接单元是否为擦音 |
QS “R_Fricative” | 后接单元是否为擦音 |
QS “C_Fricative” | 当前单元是否为擦音 |
QS “C_Stop” | 当前单元是否为塞音 |
QS “C_Nasal” | 当前单元是否为鼻音 |
QS “C_Labial” | 当前单元是否为唇音 |
QS “C_Apieal” | 当前单元是否为顶音 |
QS “C_TypeA” | 含有a的韵母 |
QS “C_TypeE” | 含有e的韵母 |
QS “C_TypeI” | 含有i的韵母 |
QS “C_POS==a” | 当前单元是否为形容词 |
QS “C_Toner==1” | 当前单元音调是否为一声 |
主要参考文献[3][7][24][28]
值得注意的是,merlin中使用的问题集和HTS中有所不同,Merlin中新增加了CQS问题,Merlin处理Questions Set 的模块在merlin/src/frontend/label_normalisation 中的Class HTSLabelNormalisation
- Question Set 的格式是
- QS + 一个空格 + “question_name” + 任意空格+ {Answer1, answer2, answer3…} # 无论是QS还是CQS的answer中,前后的**不用加,加了也会被去掉 CQS + 一个空格 + “question_name” + 任意空格+ {Answer} #对于CQS,这里只能有一个answer 比如 CQS C-Syl-Tone {_(d+)+} merlin也支持浮点数类型,只需改为CQS C-Syl-Tone {_([d.]+)+}
5 决策树的构建¶
6 HMM拓扑结构以及声学参数结构¶
基元状态的拓扑结构
本文选择了从左至右无跳转的HMM拓扑结构,其他结构详见[3]3.1.2节
(begin) 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 (end)
表示可以跳转到自身的状态,1和7分别是起始和结束状态。
声学参数的结构
TODO,可参考[3]
6 建模参数¶
[6]
在安装Linux的计算机上配置好相关的依赖环境后,我们在训练数据之前,还需要对HMM模型的建模参数进行配置,具体的参数配置如表
表4-2 HMM建模的参数配置表
- 参数类型 配置情况
- 声学参数 采用24维梅尔倒谱参数(MFCC)、一维能量以及一维基频参数,加上其对应的一阶差方和二阶差方,一共78维参数;
- 建摸单元 以声韵母力主要建摸单元,其中包括38个韵母和21个声母和5种声调,同时加入和静音段、长暂停和短暂停;
- 状态数目 声韵母单元进行统一,都采用5状态的HMM进行建摸;
- 拓扑结构 采用无跳转的从左至右咅态历经的拓扑结构;
- 高靳摸型数目 采用的是单高斯摸型;
- 分巾贞加窗 果用了双明窗(Hamming),巾贞长:呆用25ms;巾贞稳5ms;
对几个重要的参数作如下说明:
- 用于语音合成的特征参数其实有很多的选择,其中包括梅尔倒谱参数 (MFCC)、LCP、MCEG等等,最常用的就是本次系统选择的MFCC,该参数能很好的表示语音的声学特征,被广泛应用于语音合成和语音识别的系统搭建,采用 MFCC三阶差方系数也是业内较常用的做法。
- 在语音合成的系统中,对HMM建模的状态数目通常会比语音识别采用的数 目要多,HTS对英语的语音合成采用的时3状态的HMM,但是针对于中文,选择 5状态的HMM被证明合成的效果更好。
- 由于模型训练是针对单个人的语音训练数据,我们直接选择了单高斯模型。
- 为了描述语音信号在短时间的平稳特性,我们采用了汉明窗(Hamming)来 对信号进行加窗分帧,对每帧的语音信号进行特征计算。
语音合成¶
1 语音合成的步骤和所需要的文件¶
- 经过文本分析得到的正确的汉语拼音序列
- 上下文标注文件
- 经过训练后得到的决策树文件
- 梅尔倒谱参数、基频参数、时长的模型文件
语音合成的主要步骤有
- 通过文本分析得到xml标注文件
- 将xml标注文件转换为上下文相关基元的序列
- 根据这个序列搜索得到相应的状态时长,基音周期和频谱的HMM模型
- 由状态时长HMM模型得到基元个状态的持续时长
- 根据状态的时长、基音周期HMM和频谱HMM构建句子的HMM模型,这样每句文本信息都能够转化为一串无跳转从左至右的HMM模型,进行参数合成,得到每帧的基音周期、对数能量和、对数能量和MFCC参数
- 将第5步得到的参数传入基于MSLA滤波器的合成器(声码器)进行语音合成
2 训练模型——Duration和声学模型¶
语音合成和语音识别是一个相反的过程, 在语音 识别中, 给定的是一个 HMM 模型和观测序列(也就是 特征参数, 是从输入语音中提取得到), 要计算的是这 些观测序列对应的最有可能的音节序列, 然后根据语 法信息得到识别的文本. 而在合成系统中, 给定的是 HMM 模型和音节序列(经过文本分析得到的结果), 要 计算的是这些音节序列对应的观测序列, 也就是特征 参数.
HTS的训练部分的作用就是由最初的原始语料库经过处理和模型训练后得到这些训练语料的HMM模型[5]。建模方式的选择首先是状态数的选择,因为语音的时序特性,一个模型的状态数量将影响每个状态持续的长短,一般根据基元确定。音素或半音节的基元,一般采用5状态的HMM;音节的基元一般采用10个状态。在实际的建模中,为了模型的简化,可以将HMM中的转移矩阵用一个时长模型(dur)替代,构成半隐马尔可夫模型HSMM hidden semi-Markov Model。用多空间概率分布对清浊音段进行联合建模,可以取得很好的效果。HTS的合成部分相当于训练部分的逆过程,作用在于由已经训练完成的HMM在输入文本的指导下生成参数,最终生成语音波形。具体的流程是:
- 通过一定的语法规则、语言学的规律得到合成所需的上下文信息,标注在合成label中。
- 待合成的label经过训练部分得到的决策树决策,得到语境最相近的叶结点HMM就是模型的决策。
- 由决策出来的模型解算出合成的基频、频谱参数。根据时长的模型得到各个状态的帧数,由基频、频谱模型的均值和方差算出在相应状态的持续时长帧数内的各维参数数值,结合动态特征,最终解算出合成参数。
- 由解算出的参数构建源-滤波器模型,合成语音。源的选取如上文所述:对于有基频段,用基频对应的单一频率脉冲序列作为激励;对于无基频段,用高斯白噪声作为激励
HSMM半隐马尔可夫模型的解释如下
A hidden semi-Markov model (HSMM) is a statistical model with the same structure as a hidden Markov model except that the unobservable process is semi-Markov rather than Markov . This means that the probability of there being a change in the hidden state depends on the amount of time that has elapsed since entry into the current state. This is in contrast to hidden Markov models where there is a constant probability of changing state given survival in the state up to that time
术语表¶
- Front end 前端
- vocoder 声音合成机(声码器)
- MFCC
- 受限波尔曼兹机
- bap band aperiodicity
- ASR:Automatic Speech Recognition自动语音识别
- AM:声学模型
- LM:语言模型
- HMM:Hiden Markov Model 输出序列用于描述语音的特征向量,状态序列表示相应的文字
- HTS:HMM-based Speech Synthesis System语音合成工具包
- HTK:Hidden Markov Model Toolkit 语音识别的工具包
- 自编码器
- SPTK:speech signal precessing toolkit
- SPSS : 统计参数语音合成statistical parametric speech synthesis
- pitch 音高:表示声音(基本)频率的高低
- Timbre 音色
- Zero Crossing Rate 过零率
- Volume 音量
- sil silence
- syllable 音节
- intonation 声调,语调,抑扬顿挫
- POS part of speech
- mgc
- mcep Mel-Generalized Cepstral Reprfesentation
- mcc mel cepstral coefficents
- mfcc Mel Frequency Cepstral Coefficents
- LSP: Line Spectral Pair线谱对参数
- 多个音素的 命名规则
- monophone 单音素
- biphone diphone 两音素
- triphone 三音素
- quadphone 四音素
- utterance 语音,发声
- 英语韵律符号系统ToBI(Tone and Break Index)
- CD-DNN-HMM(Context-Dependent DNN-HMM)
- frontend :The part of a TTS system that transforms plain text into a linguistic representation is called a frontend
- .wpa word to phonetic alphabet
- .cmp Composed acoustic features
- .scp system control program
- .mlf master label file
- .pam phonetic alphabets to model
- .mgc mel generalized cepstral feature
- .lf0 log f0 a representation of pitch(音高) 音高用基频表示
- .mgc
- .utt .utt files are the linguistic representation of the text that Festival outputs(full context training labels)
- .cfg
- initial && final 声母和韵母
缩略语表(摘自文献[5])
- AM Acoustic Model,声学模型
- ACR Absolute Category Rating,绝对等级评定
- ASR Automatic Speech Recognition,自动语音识别
- CART Classification and Regression Tree,分类回归树
- CCR Comparison Category Rating,比较等级评定
- CFHMM Continuous F0,连续基频模型
- CMLLR Constrained Maximum Likelihood Linear Regression,受限最大似然线性回归
- CMOS Comparison Mean Opinion Score,比较平均意见分
- CORC Correlation Coefficient,相关系数
- CR Command-Response,命令响应
- CSMAPLR Constrained Structural Maximum A Posterior Linear Regression,受限结构化最大后验概率线性回归
- DBN Dynamic Bayesian Network,动态贝叶斯网络
- DCR Degradation Category Rating,损伤等级评定
- DCT Discrete Cosine Transform,离散余弦变换
- DMOS Degradation Mean Opinion Score,损伤平均意见分
- ED Emotion Dependent,特定情感
- EM Expectation Maximization,期望最大化
- F0 Fundamental Frequency,基音频率
- GMM Gaussian Mixture Model,高斯混合模型
- GTD Global Tied Distribution,全局绑定分布
- HMM Hidden Markov Model,隐马尔科夫模型
- HNR Harmony Noise Ratio,谐波噪声比
- HSS HMM-based Speech Synthesis,基于HMM的语音合成
- HSMM Hidden Semi-Markov Model,隐半马尔科夫模型
- HTK HMM Tool Kit,HMM工具包
- HTS HMM-based Speech Synthesis System,基于HMM的语音合成系统
- LPC Linear Prediction Coefficient,线性预测系数
- MAP Maximum A Posterior,最大后验概率
- MCD Mel-Cepstral Distortion,倒谱系数失真
- MDL Minimum Description Length,最小描述长度
- MDS Multi-Dimensional Scaling,多维标度
- MGCC Mel-Generalized Cepstral Coefficient,梅尔广义倒谱系数
- MLI Maximum Likelihood Increase,最大似然增量
- MLSA Mel Log Spectral Approximation,梅尔对数谱近似
- MLLR Maximum Likelihood Linear Regression,最大似然线性回归
- MLPG Maximum Likelihood Parameter Generation,最大似然参数生成
- MOS Mean Opinion Score,平均意见分
- MSD Multi-Space Distribution,多空间分布
- PiTAR Pitch Target Realisation,基频目标实现
- PM Prosodic Model,韵律模型
- RMSE Root-Mean-Square-Error,根均方误差
- SA Speaker Adaptation,说话人自适应
- SI Speaker Independent,说话人无关
- SMAP Structural Maximum A Posterior,结构化最大后验概率
- SMAPLR Structural Maximum A Posterior Linear Regression,结构化最大后验概率线性回归
- SPTK Speech Processing Tool Kit,语音处理工具包
- SSM Supra-Segmental Model,超音段模型
- SSML Speech Synthesis Markup Language,语音合成标记语言
- TA Target Approximation,目标逼近
- ToBI Tone and Break Index,调式与停顿标记
- TTS Text-To-Speech,文语转换
- VC Voice Conversion,声音转换
- VFS Vector Field Smoothing,矢量场平滑
- VPR Voice Print Recognition,声纹识别
- VTLN Vocal Tract Length Normalization,声道长度规整
语音合成相关工具包¶
1. 自然语言处理工具包¶
`知乎 常用的开源自然语言处理/开发包<https://www.zhihu.com/question/19929473/answer/264555333>`_
python-pinyin¶
[python-pinyin](https://github.com/mozillazg/python-pinyin) 提供了汉字转换成拼音的工具,它的安装和使用都很方便
pip3 install pypinyin
使用可见 官方文档
关于拼音标注的风格,这里使用了pypinyin.Style.TONE3,举个例子 yuan2 jiu4 ,再稍加转换就称为本系统中使用的风格
注意:
- pypinyin不提供对数字符号[0-9]进行拼音标记,使用时需要自定义词典,注意覆盖3.4中间有个“点”的声音
结巴分词¶
结巴分词很容易安装和使用,可见 `[结巴分词-github主页]<https://github.com/fxsjy/jieba>`_ ,这里就不赘述了。 值得注意的是
2. 语音处理工具包¶
语音处理工具包(Speech Processing Tool Kit,SPTK)是由日本名古屋工业大学Tokuda实验室开发的用于语音信号处理的开源工具包,包括基频提取、LPC分析与合成、MGCC参数估计与波形合成等多种用于语音信号处理的基本工具[55]。在本论文中,将使用SPTK版本3.5的工具构造了一个基于MGCC的声码器,用于训练的声学参数提取和合成的波形生成。[5]
3. 声码器¶
STRAIGHT是由日本和歌山大学的Kawahara博士提出的语音信号分析工具[56]。使用STRAIGHT可以进行频谱分析,基频提取和非周期成分分析。其频谱比较平滑,与基于傅里叶变换的语音短时频谱相比,其中包含基频及其谐波的成分基本去除,因此允许对基频和频谱参数进行更大范围的修改而不损伤音质,更适用于作为个性化语音合成系统的声学分析模块。在本论文中,除特别说明,均使用STRAIGHT进行频谱和基频的提取。STRAIGHT频谱将进一步用SPTK的工具提取MGCC频谱系数,其基频直接用于声学模型训练。在合成时,使用改造的SPTK中的MLSA滤波器生成语音波形。[5]
具体介绍参见文献[24],并加以补充
World
4. HTK¶
HMM工具包(HMM Tool Kit,HTK)(http://htk.eng.cam.ac.uk/) 是由剑桥大学工程学院机器学习实验室开发的用于自动语音识别的工具包。其中包括基于K均值的HMM模型初始化(HInit)、HMM孤立参数估计(HRest)、HMM上下文参数估计(HERest)和模型状态聚类与模型编辑(HHEd)等工具。在此基础上,Tokuda实验室将HTK改造为基于HSS的合成系统(HMM-based Speech Synthesis System,HTS),主要的工作包括:用HSMM代替HMM实现显式时长建模与参数估计、基于最小描述长度(Minimum Description Length,MDL)的上下文聚类等。本文中使用由HTK版本3.4.1改造的HTS版本2.2进行短时声学参数建模[58]。[5]
请参考文献[24]中的内容对HTK进行补充
5. 其他工具¶
这里有与中文语言处理相关的Python package https://pypi.python.org/pypi?:action=browse&show=all&c=98&c=489
6. 其他¶
- HTS2.1 基于HTK开发的语音合成工具
- SPTK-3.8 用于提取语音信号频谱参数(如MFCC系数)的语音信号处理工具, 通常用语将STRAIGHT合成器中的谱参数(维数较高)转换成转换为 HTS训练中可用的 mgc(Mel-generalized cepstral)参数,
- snack 用于提取语音信号基频参数(f0系数)的语音信号处理工具
- Praat 4.6 用于语音文件标注的专业语音处理软件doing phonetics by computer [OL] .http://www.praat.org/ .2012
- FFmpeg 用于转换语音文件格式(如采样率、声道等)的开源软件
- SPPAS16 用于帮助Praat标注和处理的辅助标注软件
- Festvox(https://festvox.org)
参考文献和资料¶
下面的列表中的文献可以在知网上搜索查到
- [1] 汉语普通话语音合成语料库TH-CoSS的建设和分析
- [2] 基于HMM的可训练的汉语语音合成系统
- [3] 基于HMM的中文语音合成研究
- [4] 基于HTK的个性化语音合成研究与实现
- [5] 基于隐马尔可夫模型的个性化语音合成技术研究_那兴宇
- [6] 基于语料库的中文语音合成技术研究
- [7] 统计参数情感语音合成的研究
- [8] 统计参数语音合成中的基频建模与生成方法研究
- [9] 中文语音合成系统的评测方法研究
- [10] 语音合成方法与发展综述
- [11] 语音合成中韵律结构预测改进——深度学习在韵律预测模块中的应用研究
- [12] 简化LSTM的语音合成
- [13] 面向汉语统计参数语音合成的标注生成方法
- [14] 语音合成音库自动标注方法研究
- [15] 中科院-融合发音机理的统计参数语音合成研究
- [16] 中文语音合成系统中的语料库设计
- [17] 汉语TTS系统中的文本分析及韵律研究 硕士学位论文-山东大学
- [18] 语音合成中的语言学计算模型现状及展望
- [19] 汉语语音合成系统及其韵律调整 硕士学位论文
- [20] 汉语韵律切分的语音学和语言学线索
- [21] 语法信息与韵律结构的分析与预测 清华大学
- [22] 论文_基于深度神经网络的汉语语音合成的研究
- [23] 中文语音合成系统的设计与实现
- [24] 基于隐马尔科夫模型的语音合成技术研究
- [25] 个性化语音生成研究
- [26] 中文语音合成系统中的文本正则化和韵律结构预测方法的研究
- [27] 面向语音合成的文本处理技术的改进
- [28] HMM-based Mandarin Singing Voice Synthesis Using Tailored Synthesis Units and Question Sets
The research development of TTS¶
See 【知乎:深度学习于语音合成研究】