深度学习-语音识别-音频处理2--79

1. 语音识别系统的一般架构

acoustic feature声学特征

基于生成模型的方法中,根据贝叶斯定理:

P(X|W) ----声学模型
P(W) ---- 语言模型
声学模型是对“从词或句子到其发音概率”进行建模,而语言模型是对“在特定语言中某个单词序列的出现概率”进行建模。

统计语音识别的问题可以分割成三个子问题:求声学模型P(X|W) ,求语言模型P(W),以及如何搜索出使它们乘积最大的W*
搜索解码是搜索W, W就是可以使得声学模型的概率乘上语言模型的概率最大的词序列。

2. 声学模型

以词(word)为单位建模,然后将它们衔接在一起组成句子,虽然不是不行,但模型数量会达到数万数十万,还是太多了。
想要添加新单词的时候还会出现另一个问题:必须收集该词的发音数据并重新训练模型。

考虑用比单词更小的语言单元进行建模。

使用组成中文词的一个个字符,或者英文则是26个字母,进行建模----grapheme

英文单词还能拆分例如(unbreakable->un_break_able),这种定义叫做词素morpheme,

其实我们还能用比字符grapheme更小的语言单元,音素(phoneme)进行建模。

英语中有48个音素(20个元音和28个辅音)。
采用元音和辅音来分类,汉语普通话有32个音素,包括元音10个,辅音22个。
但普通话的韵母很多是复韵母,不是简单的元音,因此拼音一般为声母(initial)和韵母(final)。

在汉语语音中,就是以声母和韵母为单位建模。总共有27个声母、38个韵母,

对4个声调和轻声加以区分

关键是,由于一种语音的音素是长期不变的,所以不必考虑添加新音素这种事情。

以一个音素为单位建模得到的声学模型称为单音素模型(monophone model)
但是单音素模型有一个很大的问题。连续发音的音素受到协同发音的影响,会有很大的变化,即使标记的是同样的音素,在实际的语音信号中也可能大相径庭。

因此,在连续语音识别中,根据某音素前后音素的不同为其建立不同的模型。这个模型就称为三音素模型(triphone model)
注意:这里不是三个音素合在一起,而是把单个音素拆解的更细致。


单音素模型也好,三音素模型也罢,建立出来的声学模型都是以音素为单位的,

3. 单词发音字典

Lexicon


目前,常用的开源中文词典有thchs30和CC-CEDICT,英文词典有CMU-dict。

4. HMM 模型

hide markov model

当选择HMM作为声学模型的时候,三音素串联起来的序列就是隐藏状态序列,acoustic features就是观测状态序列;

而且也非常符合人们对语音生成过程的直观理解,比如说话就是一个音素转移到下一个音素,一个音素内部有三个隐状态;当前时刻三音素的某一个隐状态决定了当前时刻acoustic eatures观测状态形成什么样的声波。

5. 声学模型自动机

Moore型自动机

人类的语音是通过改变声道形状而产生的。这里,我们把声道形状大致相同,即“输出语音的频率特性大致相同”这一生理状态,与自动机的某一个状态相对应

自动机的状态迁移也用概率的形式来表示,各个状态的持续时间因个体和语速的不同而不同,所以在模型中,某个状态会自循环一定时间,直到当前发音结束时才会迁移到下一个状态。

随着说话的进行,状态会从左到右进行单方向迁移,也就是只有下跳和自跳
对语音进行建模的自动机可以定义成这样一种结构:
从初始状态开始,经过几个带有自循环的状态,最后到达最终状态。

6. 高斯混合模型

GMM
高斯分布 也叫做态分布



λ为权重 μ为均值 sigma为方差
正太分布经常被用于对自然现象或社会现象进行建模。但是,简单的正太分布并不能完整地表达出语音特征。比如同一个三音素也会因为说话人性别或方言的不同而均值不同。
因此,要对多个正太分布取加权和,用得到的混合分布来表示复杂的分布,在实际的HMM中,会混合16/32/64/.../500个左右的正太分布,以此来表示各个状态的概率密度函数。

7. HMM的概率计算

前向算法: 已知一个序列,如何计算概率值

在HMM的概率计算中使用的“状态*序列”的二维空间称为Trellis空间,对照这个Trellis空间,有关HMM的计算问题就容易理解了。


左边这条线是一只跳
右边这条线是一直不跳(但是一定要到end出去 所以有不能保持不跳太久)
所有的可能路径都是在 这两条线之间

8 HMM的状态序列估计

从HMM中输出某个特征向量序列的正确概率值,可以通过上一节的前向算法求出。
我们就还有必要知道识别结果都经过了哪几条路径。即语音的各个部分都分别对应着哪个HMM(即音素)

将前向算法中的“各汇合路径概率的加和操作”替换成“取最大值操作”,并把概率最大路径信息保存下来,这种方法来同时求得概率和最大路径的方法就是维特比算法。

posted @ 2024-05-23 00:12  jack-chen666  阅读(8)  评论(0编辑  收藏  举报