语言模型

语音增强和语音识别系列博文

电话有效语音范围125Hz3800Hz。使用HMM做为语音识别系统的前提是连续语音特征可以分成准静态序列。这些状态序列之间是不相关的,系统通常采用25ms的帧长,10ms的滑动长度,提取特征MFCC/PLP做分析特征。
上面的假设的HMM状态的独立性在语音上实际上并不成立,这是由于观察到的每一帧语音都或多或少依赖前面的语音(发音器官的生物物理特性)。所以希望将发音轨迹(或者说帧于帧之间的联系)做为一个特征合并到单帧得到的特征序列里(这样可以不破坏HMM结构)。这一添加的特征被称为动态系数(或者delta参数Δy(t)),可以按照如下的方式计算:
Δy(t)=τ=dDτ(y(t+τ)y(tτ))2τ=dDτ2
如果d=1,则可以计算得到线性回归动态delta参数。如果开始和结束帧的距离相等,如d=D,则反应不同的动态参数将回退到一个时间差的计算。如果把动态参数做为输入,则可以得到加速度Δ2
对于小词汇量识别,可以为每个单词构建一个HMM模型。然而,对于大词汇量识别,通常采取的方法是将单词拆分成更小的识别单元,如(音节或者音素)。发音字典的作用就是将单词和其识别单元(音节或者音素)建立映射关系。基于单词的HMM识别系统将最小识别单元序列连接起来。
.单音素模型:使用完整的音素集,而不考虑前后音素。然而随着前后音素的变化,当前音素的声学特征可以变化,也就是协同发音效应。
三音素模型:对于前后音素,选择当前最有可能的音素。
完整的三音素集非常大,并且训练数据也可能没有百分之百覆盖所有的三音素。为了获得好的模型参数估计,三音素之间需要尽可能使用相同的参数。最常用的方法是将在HMM状态层面上进行三音素之间合并(声学聚类)。三音素模型不能很好的处理训练语料不足的发音情况,这类情况的一种解决方法是使用音素决策树。

声学模型和语言模型是分开训练的,训练集差异导致不匹配问题,
W^=argmaxW[αlogP(W)+logp(YT|W)ϕNW]
α是语言模型缩放因子,ϕ是词嵌入惩罚因子,NW是单词序列W中单词的个数。

导谱均值归一化可以消除部分卷积噪声。提取噪声健壮性特性。
语音补偿和增强技术包括谱减法,自适应噪声消除以及概率最优滤波器。

语言模型的基本任务是估计一个每一个单词序列一个概率。wp(w)=1,在语音识别中影响词的选择,如:
p()>p()
语言模型的好坏估计使用perplexity。

基于计数的N-元语法模型

使用马尔科夫假设建模语音模型。

  • 只有之前的信息对当前的信息有影响
  • 只根据前K-1个单词推测当前单词
  • 这是一个k阶马尔科夫过程。
    对于2元语法模型:
    p(w1,w2,w3,...,wn)=p(w1)p(w2|w1)p(w3|w1,w2)×...×p(wn|w1,w2,...,wn1)p(w1)p(w2|w1)p(w3|w2)×...×p(wn|wn1)
    对于3元语法模型的最大似然估计是:
    p(w3|w1,w2)=count(w1,w2,w3)count(w1,w2)
    文本语料比较容易获得。由于可能存在统计语料不充分的情况,一个更好的平滑策略如下:
    p1(wn|wn2,wn1)=λ3p(wn|wn2,wn1)+λ2p(wn|wn1)+λ1p(wn)
    其中λ3+λ2+λ1=1

优点:
* 具有卓越可扩展性,训练的文本集可以可以包括万亿的单词
* 测试时间固定且快
* 复杂的平滑技术可以获得效果很好的语言模型

缺点
* N很大时将获得稀疏分布,难获取长时间依赖。
* 单词之间的相似性无法获得,如cat-dog( word2vec)

基于RNN的语法模型

语言模型
展开后是:
语言模型