HMM隐马尔科夫简介及语音合成
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在HMM训练之前,首先要对一些建模参数进行配置
声学参数:维语:24阶mel-cepstral(MCEP)参数以及一阶能量和一阶基频共26维,加上
这26阶参数的一阶二阶差分,总共78维参数 越南语:选择的是共123维lsf参数,lf0参数共三维,在HMM中参数流共4个 建模单元的尺度:维语:8个元音、24个辅音加sp和sil共34个基本建模单元 越南语:11个单元音,3个双元音,2个半元音,22个辅音共38个音素
21
Trainable TTS 系统实现方法
在Trainable TTS 基本思想下,IBM,Microsoft以及NIT 等不同研究机构提出了几种不同的实现技术和方法。它 们的共同点是都基于HMM对语音参数进行建模,并利用 音库数据进行自动训练,需要的人工标注和干预很少. NIT:HMM-based speech synthesis a) 参数预测:在统一的框架下进行谱、基频和时 长参数建模,并生产各自的状态决策树;参数 预测方法是先采用决策树进行模型预测,然后 根据动态特性来进行参数生成。 b) 合成方法:基于HMM进行时长、基频和谱参数 生成,并采用参数合成器的方法合成语音。
1. 由离散隐状态组成的状态序列 (路径)
Q = (q1,…,qT), 每个qt∈ S是一个状态
由初始状态概率及状态转移概率(π, A)所决定
2. 由 明字符组成的观察序列
O = (o1,…,oT), 每个ot∈ V均为一个离散明字符 由状态序列及各状态的明字符生成概率(Q,B)所决定
17
观察序列O
22
基于HMM的Trainable TTS系统的基本框架,它主要包括训练和合成两大部分。 在训练过程中,利用HMM训练对基频、时长和谱参数进行建模。在合成过程中, 对输入文本进行属性分析,并利用训练后的模型进行参数预测,最后通过参数合 成器合成出语音。
Trainable TTS系统框架图
23
一:模型训练
3.学习问题
• 给定一系列观察序列样本, 确定能够产生出这些序列的模 型 =(π, A, B)? • 如何从大量的点数序列样本中学习得出“作弊模型”的参数
20
解法
识别问题/评估问题:前向,后向算法。 解码问题: Viterbi算法。 学习问题(训练问题/参数估计问题):
常用EM( Expectation- maximization )算法 和Baum-Welch算法(ML最大似然准则)算法。
24
相对于TTS系统来说训练阶段包括三个大的步骤:
①单音素模型的初始化和HMM训练 •HTK提供了2个不同的初始化工具:Hinit和Hcompv. Hinit工具使用Viterbi算法通过训练数据的时间轴对HMM模 型进行初始化。 Hcompv 工具用来对模型进行平坦初始化,计算全局方差 以及做方差下限估计。它会输出一个vFloors的文件,它包含 乘以因子的全局变化向量(全局方差)。存储在varFloor1中 的值在后面训练过程中用作估计的变化向量的基底。在训练 迭代过程中,与特定HMM模型状态相关联的训练帧数可能很 低。该状态的估计变化值会很小,这种情况下可用基底来代 替,避免变化值趋于极小甚至产生计算错误。
18
HMM中的两条基本假设
1. 状态独立性 :
状态序列具有马氏性 P(qt|q1,…,qt-1) = P(qt|qt-1) 第t次所用的骰子类型只依赖于第t-1次的骰子类型
2. 观察独立性 :
观察到的明字符仅与当前时间的状态有关 P(ot|o1,…,ot-1,q1,…,qt) = P(ot|qt) 第t次掷出的点数只依赖于第t次所用的骰子类型
初始化
HMM(0)
Hinit和Hcompv工具
训练 程序
HMM(i+1)
收敛性 测试
False
Turn HMM(N) 程序结束并输 出.mmf文件
i=i+1
单音素模型初始化和HMM训练流程图
输入数据:要训练的单音素HMM原型 要训练的语音对应的参数化文件 相关训练集的单音素.lab文件。
26
②上下文相关的HMM训练
马尔科夫链
时间和状态都离散的马尔科夫过程称为马尔科 夫链 记作{Xn = X(n), n = 0,1,2,…}
– 是在时间集T1 = {0,1,2,…}上对离散状态的过程相继 观察的结果
链的状态空间记做I = {a1, a2,…}, ai∈R. 条件概率Pij ( m ,m+k)=P{Xm+k = aj|Xm = ai} 为马 氏链在时刻m处于状态ai条件下,在时刻m+k转 移到状态aj的k步转移概率。 由Pij ( m ,m+k)构成的矩阵称为马尔科夫K步转 移矩阵。
4
后端的韵律合成方面可以层次化分为两部分:一是按前端 给出的层次化文本信息生成合适的韵律,二是按照生成 的韵律来产生最后的合成语音。这篇论文所做的工作主 要是围绕后端来进行的。 三:语音合成方法介绍 ①物理机理语音合成:通过对人产生语音的物理结构进行建模
从而产生语音。
②源-滤波器语音合成:认为声音由激励和相应的滤波器形成。
HMM在语音信号处理中的应用 Trainable TTS 技术框架构建 Trainable TTS 技术改进 • 谱参数选取优化 • 时长模型改进 TTS训练准则改进 TTS技术应用
6
HMM在语音信号处理中的应用:
人的语言过程可以看作是一个双重随机过程,HMM较合理的模仿了这一过 程,很好地描述了语音信号的整体非平稳性和局部平稳性,是一种较为理想的语 音信号模型。 HMM用于语音信号建模已经有了二十多年,对于各种应用的建模参数也比 较成熟,下面列举了一些重要的建模参数: 谱参数选择:在Trainable TTS系统中,可以采用倒谱参数也可以采用LSF (Linear Spectral Frequency线谱频率)或LSP参数(Line Spectral Pair 线 谱对 )。 参数分布:一般都采用多维高斯分布,针对语音参数的特性,又可以有多 流和多高斯的情况。 建模单元尺度:一般都是对音素建模,对于中文而言就是声韵母单元,但 是在一些特殊应用中(比如数字串识别)可以以音节 或 词为基本单元进行 HMM建模。 HMM拓扑结构:对一般的单元建模采用的是从左到右各态历经的拓扑结 构,对于某些特殊单元(如sp)有时可以采用空跳结构。 状态数目:在Trainable TTS中为了达到一定的恢复精度,对于所有的音素 都采用5状态模型。 混合高斯数目:在Trainable TTS中,由于采用的是上下文相关的HMM建 模,所以只采用一个混合高斯分量。
模型拓扑结构:采用从左到右无空跳HMM模型 状态数目:一般对声韵母采用5状态
之后进行数据准备,一般训练数据包括两个部分:
声学数据:谱和基频(这些可以从wav数据中通过STRAIGHT分析得到) 标注数据:音段切分和韵律标注
除此之外,还需要对上下文属性集合用于决策树聚类的问 题集进行设计,即根据先验知识来选择一些对声学参数(谱 、基频和时长)有一定影响的上下文属性并设计相应的问题 集,比如前后调、前后声韵母等。这部分工作与语种和发音 风格有关。
19
三个基本问题
1.识别问题/评估问题
• 给定观察序列O和HMM =(π, A, B), 判断O是由产 生出来的可能性有多大?
• 计算骰子点数序列的确由“作弊”模型生成的可能性
2.解码问题
• 给定观察序列O和HMM λ =(π, A, B), 计算与序列 O相 对应的状态序列是什么? • 在骰子点数序列中, 判断哪些点数是用骰子B掷出的
10
转移概率矩阵
0.5 0.25
晴天
阴天
下雨
晴天 晴天 0.50
阴天 0.25 0.25
下雨 0.25 0.375
阴天 0.375
下雨
0.25
0.125
0.625
11
12
例子: 赌场的欺诈
某赌场在掷骰子根据点数决定胜负时 , 暗中采取 了如下作弊手段
在连续多次掷骰子的过程中 , 通常使用公平骰子 A, 偶而混入一个灌铅骰子 B
赌场例子对应: S={S1,…,SN} S={骰子 A, 骰子 B}
1/ 6 1/ 6 1/ 6 1/ 6 1/ 6 1/ 6 B= 0 1/ 8 1/ 8 3 / 16 3 / 16 3 / 8
HMM记作 λ=(S, V, π, A, B) 或 λ=(π, A, B)16
HMM将两个序列相联系起来
7
隐马尔可夫模型 Hidden Markov model
马尔可夫性和马尔可夫链 HMM实例分析 HMM的三个基本问题及求解
8
马尔可夫性
如果一个过程的“将来”仅依赖“现在” 而不依赖“过去”,则此过程具有马尔 可夫性,或称此过程为马尔可夫过程 X(t+1) = f( X(t) )
9
o1
o2
o3
o4
...
oT
HMM λ
状态序列Q
q1
q2
q3
q4
...
qT
赌场的例子中:
隐状态 AAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAABAABAAAAAAAAA … 明观察 3 3 4 5 4 1 4 1 5 5 3 6 6 3 4 4 1 1 3 4 6 2 5 4 4 5 3 3 4 2 2 3 3 3 2 1 2 4 2 2 5 6 3 1 3 4 1…
隐序列
15
HMM的定义
一阶离散HMM是一个关于时间 序列的随机生 成模型。其基本要素如下:
有限隐状态集 离散明字符集 V={V1,…,VM}V={1,2,3,4,5,6} 初始状态概率矢量 π=(π1,…, πN) π1=1, π2=0 状态转移概率矩阵 A=(aij)N× N A=
明字符生成概率矩阵 B=(bjk)N× M
论文阅读报告
1
所读论文
基于隐马尔科夫模型的语音合成技术研 究—吴 义坚
基于HMM的可训练越南语语音合成系来自百度文库—和林 钰 基于HMM的维吾尔语合成系统的研究与实现— 艾斯卡尔.肉孜 HTK BOOK ...
2
主要内容
概述
HMM 介绍 Trainable TTS 技术框架
Trainable TTS 技术改进
3
一:概述
一:根据人类语言功能的不同层次,语言合成可以分为三类层 次,它们是: (1)按规则从文字到语音的合成(Text-To-Speech) (2)按规则从概念到语音的合成(Concept-To-Speech) (3)按规则从意向到语音的合成(Intention-To-Speech) 我们现在做的是从文字到语音的合成,即TTS。 二:在语言层、语法层、语义层的工作可以归结为前端文本分 析,而语音层面上的韵律生成和声学层面上的按韵律合成语 音单元或在音库中挑选单元可以说是后端的韵律合成。对于 TTS系统来说,前端的文本分析部分都是相同的,只是由于 要求的不同而有不同信息表达方式。
在得到训练好的单音素模型后,首先根据上下文属性集合 进行模型拓展,然后对拓展后的模型,通过HERest工具进 行Embedded训练得到上下文相关模型文件fullcontext.mmf
0.8
0.9 A B 0.2
0.1
13
公平骰子 A与灌铅骰子 B的区别
骰子A 1/6 1/6 1/6 1/6 1/6 1/6 骰子B 0 1/8 1/8 3/16 3/16 3/8
14
1点 2点 3点 4点 5点 6点
一次连续掷骰子的过程模拟
时间 骰子 掷出 点数
1 A 3 2 A 3 3 A 4 4 B 5 5 A 1 6 A 6 7 A 2 明序列
25
•对HMM模型的训练,HTK提供了HRest工具。 通过多次HRest迭代,对HMM模型参数(主要是均值,方 差,权重,转移概率等)进行更新。每次HRest迭代时通过 change量度标示收敛性,当这个量度值不再从一个HRest迭 代到下一个迭代减少(绝对值),HRest迭代过程结束。最 终得到单音素HMM模型文件(.mmf) 输入 数据
(LPC(线性预测分析)合成,共振峰合成)
③基于波形拼接技术的语音合成 ④可训练的语音合成:基于一套自动化的流程,根据输入的语
音信号进行训练,并形成一个相应的合 成系统
5
四:本文研究目标和内容
①目标:
基于Trainable TTS技术框架并进行优化改进, 构建一个高品质,多样化的语音合成系统。
②内容:
声学参数:维语:24阶mel-cepstral(MCEP)参数以及一阶能量和一阶基频共26维,加上
这26阶参数的一阶二阶差分,总共78维参数 越南语:选择的是共123维lsf参数,lf0参数共三维,在HMM中参数流共4个 建模单元的尺度:维语:8个元音、24个辅音加sp和sil共34个基本建模单元 越南语:11个单元音,3个双元音,2个半元音,22个辅音共38个音素
21
Trainable TTS 系统实现方法
在Trainable TTS 基本思想下,IBM,Microsoft以及NIT 等不同研究机构提出了几种不同的实现技术和方法。它 们的共同点是都基于HMM对语音参数进行建模,并利用 音库数据进行自动训练,需要的人工标注和干预很少. NIT:HMM-based speech synthesis a) 参数预测:在统一的框架下进行谱、基频和时 长参数建模,并生产各自的状态决策树;参数 预测方法是先采用决策树进行模型预测,然后 根据动态特性来进行参数生成。 b) 合成方法:基于HMM进行时长、基频和谱参数 生成,并采用参数合成器的方法合成语音。
1. 由离散隐状态组成的状态序列 (路径)
Q = (q1,…,qT), 每个qt∈ S是一个状态
由初始状态概率及状态转移概率(π, A)所决定
2. 由 明字符组成的观察序列
O = (o1,…,oT), 每个ot∈ V均为一个离散明字符 由状态序列及各状态的明字符生成概率(Q,B)所决定
17
观察序列O
22
基于HMM的Trainable TTS系统的基本框架,它主要包括训练和合成两大部分。 在训练过程中,利用HMM训练对基频、时长和谱参数进行建模。在合成过程中, 对输入文本进行属性分析,并利用训练后的模型进行参数预测,最后通过参数合 成器合成出语音。
Trainable TTS系统框架图
23
一:模型训练
3.学习问题
• 给定一系列观察序列样本, 确定能够产生出这些序列的模 型 =(π, A, B)? • 如何从大量的点数序列样本中学习得出“作弊模型”的参数
20
解法
识别问题/评估问题:前向,后向算法。 解码问题: Viterbi算法。 学习问题(训练问题/参数估计问题):
常用EM( Expectation- maximization )算法 和Baum-Welch算法(ML最大似然准则)算法。
24
相对于TTS系统来说训练阶段包括三个大的步骤:
①单音素模型的初始化和HMM训练 •HTK提供了2个不同的初始化工具:Hinit和Hcompv. Hinit工具使用Viterbi算法通过训练数据的时间轴对HMM模 型进行初始化。 Hcompv 工具用来对模型进行平坦初始化,计算全局方差 以及做方差下限估计。它会输出一个vFloors的文件,它包含 乘以因子的全局变化向量(全局方差)。存储在varFloor1中 的值在后面训练过程中用作估计的变化向量的基底。在训练 迭代过程中,与特定HMM模型状态相关联的训练帧数可能很 低。该状态的估计变化值会很小,这种情况下可用基底来代 替,避免变化值趋于极小甚至产生计算错误。
18
HMM中的两条基本假设
1. 状态独立性 :
状态序列具有马氏性 P(qt|q1,…,qt-1) = P(qt|qt-1) 第t次所用的骰子类型只依赖于第t-1次的骰子类型
2. 观察独立性 :
观察到的明字符仅与当前时间的状态有关 P(ot|o1,…,ot-1,q1,…,qt) = P(ot|qt) 第t次掷出的点数只依赖于第t次所用的骰子类型
初始化
HMM(0)
Hinit和Hcompv工具
训练 程序
HMM(i+1)
收敛性 测试
False
Turn HMM(N) 程序结束并输 出.mmf文件
i=i+1
单音素模型初始化和HMM训练流程图
输入数据:要训练的单音素HMM原型 要训练的语音对应的参数化文件 相关训练集的单音素.lab文件。
26
②上下文相关的HMM训练
马尔科夫链
时间和状态都离散的马尔科夫过程称为马尔科 夫链 记作{Xn = X(n), n = 0,1,2,…}
– 是在时间集T1 = {0,1,2,…}上对离散状态的过程相继 观察的结果
链的状态空间记做I = {a1, a2,…}, ai∈R. 条件概率Pij ( m ,m+k)=P{Xm+k = aj|Xm = ai} 为马 氏链在时刻m处于状态ai条件下,在时刻m+k转 移到状态aj的k步转移概率。 由Pij ( m ,m+k)构成的矩阵称为马尔科夫K步转 移矩阵。
4
后端的韵律合成方面可以层次化分为两部分:一是按前端 给出的层次化文本信息生成合适的韵律,二是按照生成 的韵律来产生最后的合成语音。这篇论文所做的工作主 要是围绕后端来进行的。 三:语音合成方法介绍 ①物理机理语音合成:通过对人产生语音的物理结构进行建模
从而产生语音。
②源-滤波器语音合成:认为声音由激励和相应的滤波器形成。
HMM在语音信号处理中的应用 Trainable TTS 技术框架构建 Trainable TTS 技术改进 • 谱参数选取优化 • 时长模型改进 TTS训练准则改进 TTS技术应用
6
HMM在语音信号处理中的应用:
人的语言过程可以看作是一个双重随机过程,HMM较合理的模仿了这一过 程,很好地描述了语音信号的整体非平稳性和局部平稳性,是一种较为理想的语 音信号模型。 HMM用于语音信号建模已经有了二十多年,对于各种应用的建模参数也比 较成熟,下面列举了一些重要的建模参数: 谱参数选择:在Trainable TTS系统中,可以采用倒谱参数也可以采用LSF (Linear Spectral Frequency线谱频率)或LSP参数(Line Spectral Pair 线 谱对 )。 参数分布:一般都采用多维高斯分布,针对语音参数的特性,又可以有多 流和多高斯的情况。 建模单元尺度:一般都是对音素建模,对于中文而言就是声韵母单元,但 是在一些特殊应用中(比如数字串识别)可以以音节 或 词为基本单元进行 HMM建模。 HMM拓扑结构:对一般的单元建模采用的是从左到右各态历经的拓扑结 构,对于某些特殊单元(如sp)有时可以采用空跳结构。 状态数目:在Trainable TTS中为了达到一定的恢复精度,对于所有的音素 都采用5状态模型。 混合高斯数目:在Trainable TTS中,由于采用的是上下文相关的HMM建 模,所以只采用一个混合高斯分量。
模型拓扑结构:采用从左到右无空跳HMM模型 状态数目:一般对声韵母采用5状态
之后进行数据准备,一般训练数据包括两个部分:
声学数据:谱和基频(这些可以从wav数据中通过STRAIGHT分析得到) 标注数据:音段切分和韵律标注
除此之外,还需要对上下文属性集合用于决策树聚类的问 题集进行设计,即根据先验知识来选择一些对声学参数(谱 、基频和时长)有一定影响的上下文属性并设计相应的问题 集,比如前后调、前后声韵母等。这部分工作与语种和发音 风格有关。
19
三个基本问题
1.识别问题/评估问题
• 给定观察序列O和HMM =(π, A, B), 判断O是由产 生出来的可能性有多大?
• 计算骰子点数序列的确由“作弊”模型生成的可能性
2.解码问题
• 给定观察序列O和HMM λ =(π, A, B), 计算与序列 O相 对应的状态序列是什么? • 在骰子点数序列中, 判断哪些点数是用骰子B掷出的
10
转移概率矩阵
0.5 0.25
晴天
阴天
下雨
晴天 晴天 0.50
阴天 0.25 0.25
下雨 0.25 0.375
阴天 0.375
下雨
0.25
0.125
0.625
11
12
例子: 赌场的欺诈
某赌场在掷骰子根据点数决定胜负时 , 暗中采取 了如下作弊手段
在连续多次掷骰子的过程中 , 通常使用公平骰子 A, 偶而混入一个灌铅骰子 B
赌场例子对应: S={S1,…,SN} S={骰子 A, 骰子 B}
1/ 6 1/ 6 1/ 6 1/ 6 1/ 6 1/ 6 B= 0 1/ 8 1/ 8 3 / 16 3 / 16 3 / 8
HMM记作 λ=(S, V, π, A, B) 或 λ=(π, A, B)16
HMM将两个序列相联系起来
7
隐马尔可夫模型 Hidden Markov model
马尔可夫性和马尔可夫链 HMM实例分析 HMM的三个基本问题及求解
8
马尔可夫性
如果一个过程的“将来”仅依赖“现在” 而不依赖“过去”,则此过程具有马尔 可夫性,或称此过程为马尔可夫过程 X(t+1) = f( X(t) )
9
o1
o2
o3
o4
...
oT
HMM λ
状态序列Q
q1
q2
q3
q4
...
qT
赌场的例子中:
隐状态 AAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAABAABAAAAAAAAA … 明观察 3 3 4 5 4 1 4 1 5 5 3 6 6 3 4 4 1 1 3 4 6 2 5 4 4 5 3 3 4 2 2 3 3 3 2 1 2 4 2 2 5 6 3 1 3 4 1…
隐序列
15
HMM的定义
一阶离散HMM是一个关于时间 序列的随机生 成模型。其基本要素如下:
有限隐状态集 离散明字符集 V={V1,…,VM}V={1,2,3,4,5,6} 初始状态概率矢量 π=(π1,…, πN) π1=1, π2=0 状态转移概率矩阵 A=(aij)N× N A=
明字符生成概率矩阵 B=(bjk)N× M
论文阅读报告
1
所读论文
基于隐马尔科夫模型的语音合成技术研 究—吴 义坚
基于HMM的可训练越南语语音合成系来自百度文库—和林 钰 基于HMM的维吾尔语合成系统的研究与实现— 艾斯卡尔.肉孜 HTK BOOK ...
2
主要内容
概述
HMM 介绍 Trainable TTS 技术框架
Trainable TTS 技术改进
3
一:概述
一:根据人类语言功能的不同层次,语言合成可以分为三类层 次,它们是: (1)按规则从文字到语音的合成(Text-To-Speech) (2)按规则从概念到语音的合成(Concept-To-Speech) (3)按规则从意向到语音的合成(Intention-To-Speech) 我们现在做的是从文字到语音的合成,即TTS。 二:在语言层、语法层、语义层的工作可以归结为前端文本分 析,而语音层面上的韵律生成和声学层面上的按韵律合成语 音单元或在音库中挑选单元可以说是后端的韵律合成。对于 TTS系统来说,前端的文本分析部分都是相同的,只是由于 要求的不同而有不同信息表达方式。
在得到训练好的单音素模型后,首先根据上下文属性集合 进行模型拓展,然后对拓展后的模型,通过HERest工具进 行Embedded训练得到上下文相关模型文件fullcontext.mmf
0.8
0.9 A B 0.2
0.1
13
公平骰子 A与灌铅骰子 B的区别
骰子A 1/6 1/6 1/6 1/6 1/6 1/6 骰子B 0 1/8 1/8 3/16 3/16 3/8
14
1点 2点 3点 4点 5点 6点
一次连续掷骰子的过程模拟
时间 骰子 掷出 点数
1 A 3 2 A 3 3 A 4 4 B 5 5 A 1 6 A 6 7 A 2 明序列
25
•对HMM模型的训练,HTK提供了HRest工具。 通过多次HRest迭代,对HMM模型参数(主要是均值,方 差,权重,转移概率等)进行更新。每次HRest迭代时通过 change量度标示收敛性,当这个量度值不再从一个HRest迭 代到下一个迭代减少(绝对值),HRest迭代过程结束。最 终得到单音素HMM模型文件(.mmf) 输入 数据
(LPC(线性预测分析)合成,共振峰合成)
③基于波形拼接技术的语音合成 ④可训练的语音合成:基于一套自动化的流程,根据输入的语
音信号进行训练,并形成一个相应的合 成系统
5
四:本文研究目标和内容
①目标:
基于Trainable TTS技术框架并进行优化改进, 构建一个高品质,多样化的语音合成系统。
②内容: