首页 > 编程知识 正文

语音识别和自然语言处理区别(语音识别系统结构——鸟瞰)

时间:2023-05-05 05:14:24 阅读:123629 作者:2758

语音识别的概要语音识别是指将语音信号转换为文字的过程。 现在通行的语音识别系统的框架如下:

信号处理模块根据人耳的听觉特征,提取语音中最重要的特征,并将语音信号转换为特征向量序列。 目前语音识别系统中常用的声学特征有线性预测码(LPC )、跳跃长颈鹿频率倒谱因子(Mel-frequencycepstrumcoefficients,MFCC )、

解码器(解码器)基于声学模型和语言模型将输入的语音特征向量序列转换为字符序列。

声学模型是对声学、语音学、环境变量以及说话者性别、口音差异等的知识表示。 语言模型是由一系列单词序列组成的知识表示。

模型训练现代语音识别系统中的声学模型和语言模型主要采用大量词汇进行统计分析和建模。

声学模型语音识别中的声学模型利用声学、语音学、环境特性、说话人的性别口音等信息,对语音进行建模。 在目前的语音识别系统中,多采用隐马尔可夫模型(Hidden Markov Model,HMM )建模,表示一个语音特征向量序列对一个状态序列的后验概率。 马尔可夫模型是一种概率图模型,可用于表示序列之间的相关性,常用于时间序列数据的建模。

隐马尔可夫模型是加权有向图,图上的各个节点称为状态。 在某个时刻,隐马尔可夫模型从一个状态跳到另一个状态,以一种概率发射观测符号。 跳跃的概率如图所示,S0和S1表示状态,a和b是可以发射的观测符号。

隐马尔可夫模型假设每个状态的转变只与前面的状态有关,而与前面和后面的其他状态无关。 也就是说,马尔可夫假设。 在每种状态下发射的符号只与当前状态有关,与其他状态或其他符号无关。 也就是说,独立输出假说。

隐马尔可夫模型一般由三元组=(a,b,)表示,其中a是状态转移概率矩阵,表示在一种状态下转移到另一种状态的概率; b是表示发射处于某一状态的符号的概率的符号概率矩阵; 是初始状态概率向量,表示处于初始时的状态的概率。

隐马尔可夫模型可以生成两个随机序列:状态序列和观测符号序列,因此是双随机过程,但外界只能观测观测符号序列,不能观测状态序列。 利用viterbi算法,可以在给定观测符号序列的条件下,找到发生概率最大的状态序列。 对某一观测码序列的概率可通过前向后向算法(Forward-Backward Algorithm )有效地确定。 每个状态的转移概率和观测符号发射概率可以用kldbg算法(Baum-Welch Algorithm )计算。

在语音识别中,通常采用隐马尔可夫模型对声学单元与语音特征序列之间的关系进行建模。 一般来说,音响单元的级别越低,其数量越少,但对上下文的敏感性越大。 在大词汇量连续语音识别系统中,英语采用音素,汉语采用声韵母等,一般采用子字Sub-word作为音响单元。

声学模型中隐马尔可夫模型的拓扑结构一般采用从左到右的三态结构,每种状态都有指向自身的弧线,表明音素/t /在三态模型中建模,如图所示。

由于连续语音存在协同发音现象,必须对前后三个音素共同考虑,称为三叉戟(Triphone )模型。 引入三音符后,隐马尔可夫模型的数量急剧增加,一般对状态进行聚类,聚类后的状态称为Senone。

虽然语音识别任务中声音特征向量的可能值是连续的,但是为了消除量化过程导致的误差,可以利用连续概率密度函数对特征向量状态的概率进行建模。 混合fkdmp模型(高斯混合模型,GMM )可以逼近任意概率密度函数,成为建模的首选。

ssdrg等人在语音识别的声学建模中引入了深度学习,用深度神经网络对声学特征向量与状态的关系进行建模,大大提高了语音识别的精度。 然后,深度学习语音识别的语音建模,如利用语音特征向量上下文关系的循环神经网络(Recurrent Neural Networks,RNN )及其特殊情况的长短时记忆网络(Longshorks )

语言模型语言模型可以表示某个单词串发生的概率。 语音识别中常用的语言模型是统计n元,即前后n个字符出现的概率。 n元语法假设一个单词出现的概率只与前面N-1个字符出现的概率有关。

现在,假设有一个字符串w=(w1、w2、w3、wU ),其发生概率可以分解为:

p(w ) ) p ) w1,w2,w3,…,wn ) ) p ) P(w2|w1,w2 )…p(wn|w1,w2,w3,…,wn1 ) ) ) )

但是,这样的概率是无法统计的。 根据马尔可夫假设,只要考虑前n个字符发生条件下的概率即可。 假设N=2

p(w )=p (w1 ) P(w2|w1 ) P(w3|w2 )…p(wn|wn1 ) ) ) ) ) ) 652

而且根据贝叶斯公式,可以得到一个字在另一个字的条件下发生的概率

p(w )

n|wn−1)=P(wn,wn−1)P(wn−1)
由此,在大量的语料中统计出相邻的字发生的概率,再统计出单个字出现的概率,即可。
由于必然会有一些生僻词组在语料中未曾出现,但其也存在着发生的概率,所以需要算法生成这些生僻词组的概率,即平滑。常用的平滑方式有sxdsj-图灵平滑(Good-Turing Soothing)和标致的小笼包平滑(Katz Smoothing)等。

基于加权有限状态转换器的解码

语音识别中的“解码”问题可以表示为如下过程:对于一个长度为T的给定的声学观测
(acoustic observation)序列 X=(x1,x2,x3,⋯,xT) ,求出一个长度为U的对应的字( word )序列 W=(w1,w2,w3,⋯,wU) ,使得后验概率 P(W|X) 最大化,即求得字序列 W ,有
W^=argmaxP(W|X)
后验概率 P(W│X) 不易直接求得。根据贝叶斯公式可得:

W^=argmaxP(W|X)=argmaxP(X|W)P(W)P(X)
由于声学观测序列已经给定,所以声学观测的概率是常数,故可以归约为如下形式:
W^=argmaxP(W|X)=argmaxP(X|W)P(W)
目前一般采用的大词汇量语音识别技术,会将声学、语音学以及语言学的知识引入进系统中去。用 H 表示隐含马尔科夫模型的状态序列,C 表示上下文相关的音素序列,L 表示音素序列,并假设声学特征序列、隐含马尔科夫模型的状态序列、音素序列、字序列之间是独立的,可以将式子展开,得:
W=argmax∑H∑C∑LP(X|H)P(H|C)P(C|L)P(L|W)P(W)
式 子中, P(X|H) 称为声学模型,表示声学特征序列对隐马尔科夫状态序列的后验概率; P(H│C) 、 P(C│L) 和 P(L│W) 分别表示状态序列对上下文相关的音素序列、上下文相关的音素序列对音素序列,以及音素序列对字序列的后验概率; P(W) 表示句子发生的概率,称为语言模型。这些概率都是由前面的“训练”过程得到的。
目前,语音识别的解码一般基于加权有限状态转换器(Weighted Finite State Transducer)进行。
加权有限状态转换器是一种赋权有向图,其每一个节点表示一个“状态”,当接受到一个输入符号以后,就会由对应的弧跳转到另一个“状态”,并“发射”一个输出符号,弧上还可以赋予权值。其形式化描述如下:
半环K上的加权有限状态转换器T是一个八元组 T=(Σ,Δ,Q,I,F,E,λ,ρ) ,其中 Σ 为输入符号集合, Δ 为输出符号集合, Q 为状态集合,I, Q 为初始状态集合,F, Q 为终止状态集合,五元关系E⊆Q×(Σ∪ϵ)×(Δ∪ϵ)×K×Q表示转移函数,映射 λ:I→K 表示初始状态的权值,映射 ρ:F→K 表示终止状态的权值 。
为了扩大加权有限转换器的适用范围,将“权重”的含义推广到更一般的代数结构——半环上去。给定集合K及其上的两种运算 ⊕ 和 ⊗ ,如果 (K,⊕,0¯) 为带有单位元 0¯ 的交换幺半群, (K,⊗,1¯) 为带有单位元 1¯ 的幺半群,且 ⊕ 运算对于 ⊗ 运算具有分配性, 0¯ 对于 ⊗ 运算为零化子,即对于任意的 a⊆K 有 a⊗0¯=0¯⊗a=0¯ 。于是,由首状态到末状态“路径”上各个弧的总权重,可以由 ⊗ 运算求“积”得到,而多条路径的总权重,则可以由 ⊕ 求和得到。下图表示了一个简单的加权有限状态转换器。其输入符号集为 {a,b,c} ,在图中表示为弧上冒号前的符号,输出符号集为 {x,y,z} ,在图中表示为弧上冒号后的符号,半环为实数域,在图中表示为斜线后的数,双圆圈表示终止状态。

在语音识别中,路径的总权重可以看作在输入序列的条件下,输出序列的联合概率,又因为标致的钢笔的无后效性假设,所以总权重可以看作路径上权重的乘积。由于计算机运算,需要防止浮点数的下溢,这些概率常常取对数,即表 中对数半环,其中 ⊕log 运算的定义为 x⊕logy=−log(e−x+e−y) ;又由于语音识别中常需要在加权有限状态转换器上寻找权值最优的路径,故定义了热带半环。

半环集合 ⊕ ⊗ 0¯ 1¯ 对数半环(Log) R∪{−∞,+∞} ⊕log + +∞ 0热带半环(Tropical) R∪{−∞,+∞} Min+ +∞ 0

可以利用加权有限状态转换器的组合(composition)操作,将不同层次的加权有限状态转换器合并起来。比如,在实际的语音识别系统中,一般会构建四个加权有限状态转换器:表示隐含马尔科夫模型状态序列到上下文相关音素序列映射的H,表示上下文相关音素序列到音素序列映射的C,表示音素序列到字序列的L,以及语言模型G,将此四个加权有限状态转换器组合,形成HCLG,其对应着语音学和语言学的知识,其上弧的权重,可以看作输入隐含马尔科夫模型状态,输出对应的字发生的概率。
声学模型P(X|H) 根据训练得出。将一句语音输入训练好的网络前馈以后,得到一个矩阵,其列表示帧数,行表示此帧对隐含马尔科夫模型状态的概率分布,即一个某帧对某隐含马尔科夫状态的概率查询表。
于是,语音识别的解码问题可以归结为在加权有限状态转换器 HCLG 的最优路径搜索问题,只是路径的总权值除了要考虑 HCLG 弧上的权值以外,还要考虑声学模型的权值,令总权值最大化。
根据带权有向无环图单源最短路径算法 ,考虑到事实“对于图的最短路径上的某一节点u,若其在此路径上的前驱为σ,则σ必然在源点到u的最短路径(之一)上”,可以使用由源点开始,逐层构建最短路径树的方法进行。实际系统中,由于搜索图的庞大,为了减少对计算机内存的消耗,常使用启发式的波束搜索(Beam Search)技术,即设定一个阈值,在搜索树中保留阈值范围内的路径,裁剪掉阈值范围以外的路径。加权有限状态转换器上的解码过程可以用伪代码简略地描述为

foreach frame:foreach token: if token->cost > cut_off: foreach arc: if arc.weight > cut_off: add arc to tokenelse: delete token

其中,token表示保存路径的数据结构,其每一个节点可以保存弧,以及当前这条路径的总代价。
在实际的语音识别系统中,最优路径不一定与实际字序列匹配,我们一般希望能够得到得分最靠前的多条候选路径,即N-best。为了紧凑地保存候选路径,防止占用过多内存空间,我们一般采用词格(Lattice)来保存识别的候选序列。词格没有一般的定义,常用的方法是利用有限状态自动机的数据结构来构建词格。

后记:这是我学习语音识别的一个小结,也是我毕设的一个章节。拿出来给大家看看,有错误的地方希望大家不吝赐教。

参考文献 Huang X, Acero A, Hon H, et al. Spoken Language Processing[J]., 2000.Rabiner L R. A tutorial on hidden Markov models and selected applications in speech recognition[J]. Proceedings of the IEEE, 1989, 77(2): 257-286.Mohri M, Pereira F C, Riley M, et al. Weighted Finite-state Transducers in Speech Recognition[J]. Computer Speech & Language, 2002, 16(1): 69-88.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。