两本书,《语音信号处理》赵力编和《语音信号处理》韩纪庆编。强烈推荐韩纪庆版本,知识点很全面,可以作为语音识别的入门中文书籍,章节很也短,很快就入门了。
P34
HMM是一个双内嵌式随机过程,由两个随机过程组成:
一个是状态转移序列,对应单纯markov过程;另一个是每次转移时输出的符号组成的符号序列。(这个也是随机的,理解为 不知道状态序列,也不知道输出符号序列。。。)
语音信号处理(第二版)韩纪庆编
P178
BW算法,重估算法证明
重估算法
引入GMM:
GMM: (韩纪庆版 P184)
k:第k个高斯分布
P130:
模板(模型)Mi,即 i 单词的均值和协方差矩阵。
P135:
语音信号的特征矢量序列的集合作为观察值序列O = O1,O2,…OT
P136:
声学模型和语言模型时单独训练的,所以要怎么把基于语言模型的句法约束结合进连续语言识别呢?较好的方法应该是实现帧同步的语音-语言处理的统合。一般采用的方法是把声学模型和语言模型结合在一个有限状态自动机的框架进行处理。
2019.4.7
似然度:就是条件概率
离散hmm:参数B是一个概率矩阵;
连续hmm:所有状态上的观察概率密度函数共同形成了参数B。(每个状态的分布是gmm)。
- 克服训练数据的不足:
将一个训练较充分,但细节较差(把一些出现次数很少的观察值概率为0)和一个训练不充分,但细节较好的模型进行混合。
新的模型参数:
删插平滑法(deleted interpolartion)
bjk为模型状态j对应的观察值概率。
怎么估计权值w呢?。。取决于各个状态上当前训练序列的数目占全部训练序列数目的比例。
在训练各个HMM时,除了保存模型参数之外,还应保存相应的状态数目。
2. 处理说话人的影响
3. 基于最大互信息的HMM
4. 考虑状态驻留时间的HMM(三音素?)
引入一个 在状态 i 上相继产生d个观察值的概率为:
这个概率值pi(d)描述了状态i的驻留时间(state duration),非指数分布。
连接词识别
P190
连接词识别:系统存储的HMM是针对孤立词的,但是识别的语音却是由这些词构成的词串。
包括数字串、拼写的字母串等。
- 二阶动态规划
- 分层构筑方法
大词表连续语音识别
P197
需要处理的问题:
- 切分
可以采用的方法:能量最低点最为边界,还要根据发音信息加以验证; - 发音变化
协同发音的影响。
字典:描述每一个词条是如何用音子串接而成的。
HMM模型中最基本的构成单位是状态及状态之间的转移弧。
声学模型中的三音素
考虑一个音素与其左和右相邻音素的相关情况后选取的基元,称为三音素triphone。
声韵组合的两种形式:前声后韵、前韵后声。22个声母、38个韵母。。。。
出现的可能种类还是很多,有些可能出现的次数很少的。
一般应该保证每个三音素在训练数据中出现的次数不少于10次,如果出现次数过少,则不能保证模型的准确性,这称为训练数据稀疏。
解决三音素训练数据稀疏问题的方法:根据一些准则对上下文相关的音素进行聚类,并根据聚类进行状态共享(同一类的使用同一个状态)。
常见的状态共享方法:
- 基于数据驱动
- 基于决策树
基于决策树的状态共享策略:l+c+r/env,左相关信息+中心基元+右相关信息,env该位置环境特征(包括前接/当前/后接音节声调、…字数、…词性、…长度等)
决策树分类依赖于问题集的设计,为了定义问题集,应先确认划分特征,包含:发音相似性和基元的上下文相关信息。(根据划分特征定义决策树的问题集)
建立问题集后,就可以构建决策树,构造决策树的方法:
- 中心基元。对每个中心基元的每个状态分别构造决策树,中心基元相同的归位一类,再决策。
- 同一状态。对所有基元的同一状态构造决策树。
决策树评估函数用来估计决策树的结点上的样本相似性。可以选择对数似然概率作为结点分裂的评估函数。从问题集中选择一个问题,根据此问题把结点分成两个子结点,并且计算评估函数的增量,可以选择具有最大增量的问题,并且根据此问题把结点分成两部分。当所有问题的增量都低于某个阈值的时候,结点上的分裂过程将停止。同一个叶子结点中的状态将被共享捆绑到一起。
基于子词单元的HMM训练 (分段、切分、词边界)
Ngram语言模型
P206
语言模型分为基于文法的语言模型(现在很少人用了)和基于统计的语言模型。
2gram中,为了使P(wi|wi-1)在i=1时有意义,一般会在整个句子前面家一个特殊标识<s>
,这样可以假设w0=<s>
。为了使的字符串整体的概率为1,在整个句子的结尾也需要加上特殊标识</s>
C(W)是词串W在训练数据中出现的次数。
- 规则聚类
- 平滑技术
大词表连续语音识别中的解码技术
搜索过程中的路径扩展方式,可以分为1.基于词;2. 基于时间。
图的基本搜索算法:
OPEN表、CLOSE表
1. A*搜索
代价的概念。 f(N) = g(N)+h(N)
f(N)是结点N的估价函数,g(N)是在搜索空间中从初始结点到N结点的实际代价,h(N)是从N到目标结点最佳路径的估计代价。
2. Beam搜索
这部分看不太懂,要再看。
面向语音识别的搜索算法(decoder解码用到)
- Viterbi Beam 搜索算法
- 令牌传递模型 token passing
- 基于前向搜索后向回溯的N-best算法(Viterbi+A*)
大词表连续语音识别后处理技术
语音识别中间结果的表示形式。
识别结果的三种结构形式分别是:
1. One-best
2. N-best
3. Lattice