语音识别技术学习:原理部分 FOROSS 2013/12 1 概述 4 1.1 语音识别 4 1.2 语音识别的分类方法 4 1.2.1 按词汇量大小分 4 1.2.2 按发音方式分 5 1.2.3 按说线 从语音识别的方法分 5 1.3 语音识别的主要方法 5 1.4 学习资源 6 2 HMM 与语音识别 8 2.1 马尔可夫链 8 2.2 隐马尔可夫模型 (HMM ) 9 2.2.1 一个具体例子 10 2.2.2 三个基本问题 12 2.3 离散、连续和半连续的HMM 16 2.3.1 离散HMM 16 2.3.2 连续HMM 16 2.3.3 半连续HMM 17 2.4 HMM 实现、训练中的问题 18 2.4.1 拓扑结构 18 2.4.2 初始模型选取 18 2.4.3 数据下溢问题 19 2.4.4 训练数据的不足 19 2.4.5 处理说线 基于HMM 的基本架构 22 3.3 信号处理、特征分析 22 3.3.1 数字化 23 3.3.2 时域分析 24 3.3.3 频域分析 25 3.4 特征提取 25 3.4.1 线性预测系数 (LPC) 25 3.4.2 倒谱系数 25 3.4.3 梅尔频率倒谱系数 (MFCC) 26 3.4.4 感知线 声学、语言学模型 29 4.1 声学模型 29 4.1.1 基本声学单元 29 4.1.2 基元的扩展 29 4.2 字典 30 4.3 语言学模型 31 4.3.1 基于文法的模型 31 4.3.2 基于统计的模型 32 4.3.3 性能 33 5 识别过程 34 5.1 孤立词语音识别 34 5.2 连接词语音识别 35 5.3 大词表连续语音识别 35 5.4 解码技术 37 5.4.1 搜索策略 37 5.4.2 搜索算法 38 1 概述 本文档介绍语音识别技术,具体来说是基于HMM 的语音识别技术。 语音识别本身是很复杂的技术。前面先用几章来介绍相关的概念和原理,这些是比较基 础的知识,大部分都是理解实际例子的必要基础知识,语音应用的主要开发人员都应该 了解。为易于理解,尽量不涉及数学公式和算法细节。如果要深入理解相关原理,还要 进一步阅读相关资料。 文档用两章来分别介绍两个语音平台:HTK 和CMU Sphinx,包括基于这两个平台的应用 开发的例子,也包括建立声学模型、语言学模型和字典的步骤。在前面的章节也会提到 这两个平台。 1.1 语音识别 语音识别 (Speech Recognition, SR )是机器通过识别和理解过程把人类的语音信号转变为 相应的文本或命令的技术。除了SR,它也被称为ASR (automatic speech recognition)、 computer speech recognition、STT (speech to text)。 语音识别技术的根本目的是研究出一种具有听觉功能的机器,这种机器能直接接收人的 语音,理解人的意图,并作出相应的反应。技术上看,它属于多维模式识别和智能接口 的范畴。语音识别技术是一项集声学、语音学、计算机、信息处理、人工智能等于一身 的综合技术,可广泛应用在信息处理、通信与电子系统、自动控制等领域。 要达到让机器听懂人类的语言的目标,面临着诸多的困难。这些困难具体表现在: 语音信号的声学特征随与之前后相连的语音的不同而又很大的变化,且连续语音流中各 语音单位之间不存在明显的边界 语音特征随发音人的不同、发音人生理和心理状态的变化而发生很大的差异 环境噪声和传输设备的差异也将直接 影响语音特征的提取 一个语句所表达的意思与上下文内容、说话时的环境条件及文化背景等因素有关,而语 句的语法结构又是多变的,并且语境信息几乎是计算机语音识别无法利用的,所有这些 都给语意的理解带来很大的困难 由于出发点不同,识别又分为说话人识别和语音识别。 就说话人识别来看,可分为与文本有关和与文本无关两类。从用途上看,可分为说话人 辨认和说话人确认。前者判定某一待识别的声音是多个说话者中的一个,是多选一的问 题,属于闭集识别范畴。后者判定一个待识别的声音是或不是某一特定话者的语音,其 输出只有两种结果,为肯定或者否定的问题。 1.2 语音识别的分类方法 就语音识别而言,也存在着以下几种不同的分类方法。 1.2.1 按词汇量大小分 每个语音识别系统都有一个词汇表,系统只能识别词汇表中所包含的单词。通常按词汇 量可分为小词汇量、中词汇量和大词汇量。一般小词汇量包括10~100 个词,中词汇量包 括100~500 个词条,相应的大词汇量至少包含500 个以上的词条。一般情况下语音识别 的识别率会随着词汇量大小的增加而下降,因此,语音识别的研究困难是随着词汇量的 增加而逐渐增加的。 1.2.2 按发音方式分 语音识别可以分为孤立词识别、连接词识别、连续语音识别以及关键词检出等。 在孤立词识别中,机器只是识别一个个孤立的音节、词或者短语等,并给出具体识别结 果 在连续语音识别中,机器识别连续自然的书面朗读形式的语音 在连接词识别中,发音方式介于孤立词和连续语音之间,它表面上看像连续语音发音, 但能明显感觉到音与音之间有停顿。这是通常可以采用孤立词识别技术进行串接来实现 对关键词检出,通常用于说话人以类似自由交谈的方式的发音,这种发音称为自发发音 方式;在这种发音方式下,存在着各种各样影响发音不流畅的因素,如犹豫、停顿、更 正等,并且说话人发音中存在大量不是识别词表中的词,判断理解说话人的意思,只从 其中一些关键的部分就可做出决定,因此只需要进行其中的关键词识别 1.2.3 按说话人分 可分为特定说话人和非特定说话人两种。前者只能识别固定某个人的声音。其他人要想 使用这样的系统,必须实现输入大量的语音数据,对系统进行训练;而对后者,机器能 识别任意人的发音。由于语音信号的可变性很大,这种系统要能从大量的不同人的发音 样本中学习到非特定人的发音速度、语音强度、发音方式等基本特征,并归纳出其相似 性作为识别的标准。使用者无论是否参加过训练都可以使用一套参考模板进行语音识别。 从难度上看,特定说话人的语音识别比较简单,能得到较高的识别率,并且目前已经有 商品化的产品;而非特定人识别系统,通用性好、应用面广、但难度也大,不容易获得 较高的识别率。 1.2.4 从语音识别的方法分 有模版匹配法,随机模型法和概率语法分析法。见下一节。 1.3 语音识别的主要方法 主要识别方法有模版匹配法、随机模型法和概率语法分析法。这些方法都属于统计模式 识别方法。 其识别过程大致如下:首先提取语音信号的特征构建参考模版,然后用一个可以衡量未 知模式和参考模板之间的似然度的测度函数,选用一种最佳准则和专家知识做出识别决 策,给出识别结果。 模版匹配法是将测试语音与参考模板的参数一一进行比较与匹配,判决的依据是失真测 度最小准则。 随机模型法是一种使用隐马尔可夫模型 (HMM)来对似然函数进行估计和判决,从而得 到相应的识别结果的方法。由于隐马尔可夫模型具有状态函数,所以这个方法可以利用 语音频谱的内在变化 (如说话速度、不同说话人特性等)和它们的相关性。 概率语法分析法适用于大范围的连续语音识别,它可以利用连续语音中的语法约束知识 来对似然函数进行估计和判决。其中,语法可以用参数形式来表示,也可以用非参数形 式来表示。 语音识别中最简单的是特定人、小词汇量、孤立词的语音识别,最复杂最难解决的是非 特定人、大词汇量、连续语音识别。无论是哪一种,当今采用的主流算法仍然是隐马尔 可夫模型方法。 在隐马尔可夫模型方法之前,比较成功的方法是DTW (Dynamic Time Warping ),这是模 板匹配的一种方法,能把不同时间长度的两个序列进行对齐,再计算距离。它是把时间 归正和距离测度结合起来的一个种非线性归正技术。目前DTW 在孤立词识别、连接词识 别中仍是很有效的方法。 近年来,基于神经网络、支持矢量机、遗传算法等语音识别技术方兴未艾。 1.4 学习资源 HMM 维基条目 (/wiki/ ): Hidden_Markov_model、Viterbi_algorithm 、Baum–Welch_algorithm、 Forward_algorithm、Forward-backward_algorithm、EM_algorithm 语音 维基条目: 信号 Fourier_transform、Fast_Fourier_transform、Audio_signal_processing 、 处理 Window_function 、Linear_predictive_coding /miscellaneous/machine-learning/guide- mel-frequency-cepstral-coefficients-mfccs/ /vq.shtml 语音 维基条目: 识别 Speech_recognition 、List_of_speech_recognition_software、 Dynamic_time_warping、Beam_search、A*_search_algorithm 、 Perplexity /speaker-independent-connected-s-r.htm /viewvc/chrome/trunk/src/content/browser/spee ch/ HTK 官方手册The HTK Book (PDF) 文档: Sphinx4Whitepaper.pdf、Architecture.pdf 、sphinx4Overview.pdf、 sphinx4ArchitectureOverview.pdf sphinx4 API : /sphinx4/javadoc/index.html pocketsphinx API : /api/pocketsphinx/ 图书 语音信号处理 (第2 版)(韩纪庆等编著) Spoken Language Processing A Guide to Theory Algorithm and System Development 2 HMM 与语音识别与语音识别 隐马尔可夫模型 (Hidden Markov Models, HMMHidden Markov Models, HMM)作为语音信号的以一种统计模型作为语音信号的以一种统计模型,在语 音处理的各个领域中获得了广泛的应用音处理的各个领域中获得了广泛的应用。现在已成为公认的有效的语音识别方法现在已成为公认的有效的语音识别方法。 2.1 马尔可夫链 马尔可夫性质是概率论中的一个概念马尔可夫性质是概率论中的一个概念。当一个随机过程在给定现在状态及所有过去状态当一个随机过程在给定现在状态及所有过去状态 情况下,其未来状态的条件概率分布仅依赖于当前状态其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时在给定现在状态时, 它与过去状态 (即该过程的历史路径即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫那么此随机过程即具有马尔可夫 性质。具有马尔可夫性质的过程通常称之为马尔可夫过程具有马尔可夫性质的过程通常称之为马尔可夫过程。 马尔可夫链是数学中具有马尔可夫性质的离散是数学中具有马尔可夫性质的离散时间随机过程。该过程中,在给定当前知在给定当前知 识或信息的情况下,只有当前的状态用来预测将来只有当前的状态用来预测将来,过去 (即当前以前的历史状态即当前以前的历史状态)对 于预测将来 (即当前以后的未来状态即当前以后的未来状态)是无关的。 马尔可夫链由发射状态集和状态之间的转移集来定义马尔可夫链由发射状态集和状态之间的转移集来定义。状态用圆表示,而转移用箭头表而转移用箭头表 示。每个转移有一个相关联的转移概率每个转移有一个相关联的转移概率,表示从给定的当前状态转移到下一步状态的条表示从给定的当前状态转移到下一步状态的条 件概率。给定状态的所有转移概率之和必须等于给定状态的所有转移概率之和必须等于1。 下面是一个有两个状态的马尔可夫链的例子下面是一个有两个状态的马尔可夫链的例子。 上面例子表明: 如果当前的状态是E,那么下一个状态有那么下一个状态有0.3 的概率仍为E,有0.7 的概率变为的概率变为A ; 如果当前的状态是A ,那么下一个状态有那么下一个状态有0.6 的概率仍为A ,有0.4 的概率变为的概率变为E。 以下是一个假想的股市的状态转换图以下是一个假想的股市的状态转换图,构成一个马尔可夫链。它给出了给定一周是牛市它给出了给定一周是牛市、 熊市,还是萧条的走势。 它的状态空间为{1 = bull, 2 == bear, 3 = stagnant},它的转移矩阵为: 马尔可夫链是生成序列的模型马尔可夫链是生成序列的模型,其中一个符号的概率仅依赖与前一个符号。。描述马尔可 夫链的最重要的参数就是转移概率矩阵夫链的最重要的参数就是转移概率矩阵。但转移矩阵决定不了初始分布,因此除了转移因此除了转移 矩阵之外,还必须引进初始概率还必须引进初始概率 (一般记为π)。 在实际当中,马尔可夫链的每一状态可以对应于一个可观测到的物理事件的每一状态可以对应于一个可观测到的物理事件。。比如天气预 报中的雨、晴、雪等,这时可称之为天气预报的马尔可夫链模型这时可称之为天气预报的马尔可夫链模型。根据这个模型根据这个模型,可以 计算出各种天气 (状态)在某一时刻出现的概率在某一时刻出现的概率。 2.2 隐马尔可夫模型夫模型 (HMM ) HMM 是在马尔可夫链的基础之上发展起来的是在马尔可夫链的基础之上发展起来的。由于实际的问题比马尔可夫链模型描述比马尔可夫链模型描述 的更为复杂,观察到的事件并不是与状态一一对应观察到的事件并不是与状态一一对应,而是通过一组概率分布相联系而是通过一组概率分布相联系,这 样的模型就成为HMM。它是一个它是一个双重随机过程,其中之一就是马尔可夫链其中之一就是马尔可夫链,这是基本 随机过程,它描述状态的转移它描述状态的转移。另一个随机过程描述状态和观察值之间的统计对应关系另一个随机过程描述状态和观察值之间的统计对应关系。 这样站在观察者的角度,只能看到观察值只能看到观察值,不像马尔可夫链模型中的观察值和状态一一不像马尔可夫链模型中的观察值和状态一一 对应,因此,不能直接看到状态不能直接看到状态,而是通过一个随机过程去感知状态的存在及其特性而是通过一个随机过程去感知状态的存在及其特性。 因而称之为“隐”马尔可夫模型马尔可夫模型。 以下是一个HMM 例子,状态为状态为X1 、X2 、X3 ,观察值为y1 、y2 、y3 、y4 。 一个HMM 可以由下列参数描述可以由下列参数描述: N:模型中马尔可夫链状态数目模型中马尔可夫链状态数目 M:每个状态对应的可能的观察值数目每个状态对应的可能的观察值数目 π:初始状态概率 A :状态转移概率矩阵 B:观察值概率矩阵 这样可以记一个HMM 为 λ=(N,M, π,A,B) 或简写为 λ=( π,A,B) 2.2.1 一个具体例子例子 假设你有一个住得很远的朋友假设你有一个住得很远的朋友, ,他每天跟你打电话告诉你他那天做了什么。。你的朋友仅 仅对三种活动感兴趣:公园散步公园散步,购物以及清理房间。他选择做什么事情只凭天气他选择做什么事情只凭天气。你 对于他所住的地方的天气情况并不了解对于他所住的地方的天气情况并不了解,但是你知道总的趋势。在他告诉你每天所做的在他告诉你每天所做的 事情基础上,你想要猜测他所在地的天气情况你想要猜测他所在地的天气情况。 你认为天气的运行就像一个马尔可夫链你认为天气的运行就像一个马尔可夫链,其有两个状态 雨和晴,但是你无法直接观但是你无法直接观 察它们,也就是说,它们对于你是隐藏它们对于你是隐藏的。每天,你的朋友有一定的概率进行下列活动你的朋友有一定的概率进行下列活动: “散步”,“购物”,或 “清理”。 因为你朋友告诉你他的活动,所以这些活动就是你的观 察数据。这整个系统就是一个隐马尔可夫模型HMM。 你知道这个地区的总的天气趋势,并且平时知道你朋友会做的事情。也就是说这个隐马 尔可夫模型的参数是已知的。你可以用程序语言(Python)写下来: states = (Rainy, Sunny) observations = (walk, shop, clean) start_probability = {Rainy: 0.6, Sunny: 0.4} transition_probability = { Rainy : {Rainy: 0.7, Sunny: 0.3}, Sunny : {Rainy: 0.4, Sunny: 0.6}, } emission_probability = { Rainy : {walk: 0.1, shop: 0.4, clean: 0.5}, Sunny : {walk: 0.6, shop: 0.3, clean: 0.1}, } 在这些代码中,start_probability 代表了你对于你朋友第一次给你打电话时的天气情况的 不确定性 (你知道的只是那个地方平均起来下雨多些)。在这里,这个特定的概率分布并 非平衡的,平衡概率应该接近 (在给定变迁概率的情况下){Rainy: 0.571, Sunny: 0.429} transition_probability 表示基于马尔可夫链模型的天气变迁,在这个例子中,如果 今天下雨,那么明天天晴的概率只有30% 。代码emission_probability 表示了你朋友每天 做某件事的概率。如果下雨,有 50% 的概率他在清理房间;如果天晴,则有60%的概率 他在外头散步。 2.2.2 三个基本问题基本问题 对于一个特定的 HMM,有三个感兴趣的问题有三个感兴趣的问题,分别是估计问题、解码问题和学习问题解码问题和学习问题。 这些都属于推理问题。 HMM 是语音识别的核心技术是语音识别的核心技术,而理解这三个问题对于理解HMM、乃至语音识别系统至乃至语音识别系统至 关重要。 估计 给定一个HMM 模型 (λ)和一个和一个特定的观察序列 (O=o ,o ,...o ),计算这个序列由这个这个序列由这个 1 2 T 模型产生的概率 (求p(O λλ) ),或者说模型产生这个观察序列的概率是多少或者说模型产生这个观察序列的概率是多少。 由于多个状态都可能产生同一个观察值由于多个状态都可能产生同一个观察值,因此有很多状态序列都可能产生同样的观察序产生同样的观察序 列。每个状态序列都有一定的发生概率每个状态序列都有一定的发生概率,而在每个状态序列下产生某个观察序列也有一而在每个状态序列下产生某个观察序列也有一 定的概率。要计算模型产生这个观察序列的概率要计算模型产生这个观察序列的概率,就要把所有可能的状态序列下的就要把所有可能的状态序列下的产生 这个观察序列的条件概率累加起来的条件概率累加起来。 例如有一个HMM 模型,有三个状态有三个状态:Sunny 、Cloudy、Rainy,三个状态之间都可以互相三个状态之间都可以互相 转换。产生观察序列为dry,damp,soggydry,damp,soggy,则可以由下面的格型结构来表示:: 要计算模型产生观察序列dry,damp,soggy 的概率,则要考虑所有的路径 (状态转移序列), 每个路径的发生概率,以及这个路径下产生这个观察序列的概率 (条件概率)。 如果直接累加所有可能的条件概率,计算量会非常惊人,大约2TNT 的数量级 (N 是状态 数量,T 是序列长度)。 前向算法 (forward algorithm )是解决这一问题的有效算法。前向算法是对观察序列长度 从1 到T 的递推过程。每一次递推,都考虑了所有的状态转移。例如下面从t=2 到t=3 的递推,共有9 种状态转移。而从t=1 到t=2 ,也有9 种状态转移。 前向算法是一种动态规划算法,计算序列的概率时会使用已计算的子序列的概率,因此 2 能够大大减少计算量,只需要进行N T 次运算。 这个问题也可以用后向算法来解决。它与前向算法类似,只不过是从t=n 到t=n-1 来进行 递推。 解码 给定一个HMM 模型 (λ)和一个特定的观察序列 (O=o ,o ,...o ),寻找最可能的能产生 1 2 T 这个序列的隐含状态的序列。即什么样的状态转移最可能产生这个观察序列。 这个问题可以用维特比算法 (Viterbi 算法)来解决。 对于给定一个状态序列,可以直接计算出产生某个观察序列的概率 (每个状态的转移概 率乘以发射概率)。如果计算出所有可能的状态序列下的概率,从而找出最大的概率对应 的状态序列,是可以的。但是可能的状态序列数量会非常大 (指数级),计算量会非常大。 维特比算法同样是使用了动态规划算法,因而可以大大减少计算量。维特比算法也是一 种格型结构,而且和前向算法类似。同样,有后向算法的思想出发,也可以推导出维特 比算法的另一种实现方式。 下面是维特比算法的一个格型结构 (纵轴是状态,横轴是时间)。 .1 一个例子 想象一个乡村诊所。村民有着非村民有着非常理想化的特性,要么健康要么发烧。他们只有问诊所他们只有问诊所 的医生的才能知道是否发烧的医生的才能知道是否发烧。 聪明的医生通过询问病人的感觉诊断他们是否发烧聪明的医生通过询问病人的感觉诊断他们是否发烧。村民 只回答他们感觉正常、头晕或冷头晕或冷。 假设一个病人每天来到诊所并告诉医生他的感觉假设一个病人每天来到诊所并告诉医生他的感觉。医生相信病人的健康状况如同一个离医生相信病人的健康状况如同一个离 散马尔可夫链。病人的状态有两种病人的状态有两种 “健康”和 “发烧”,但医生不能直接观察到但医生不能直接观察到,这意味 着状态对他是 “隐含”的。。每天病人会告诉医生自己有以下几种由他的健康状态决定的每天病人会告诉医生自己有以下几种由他的健康状态决定的 感觉的一种:正常、冷或头晕冷或头晕。这些是观察结果。 整个系统为一个隐马尔可夫模型整个系统为一个隐马尔可夫模型 (HMM) 。 医生知道村民的总体健康状况医生知道村民的总体健康状况,还知道发烧和没发烧的病人通常会抱怨什么症状烧和没发烧的病人通常会抱怨什么症状。 换句 话说,医生知道隐马尔可夫模型的参数医生知道隐马尔可夫模型的参数。 这可以用Python 语言表示如下:: states = (Healthy, FeverFever) = (normalnormal, cold, dizzy) observations start_probability : : = {HealthyHealthy 0.6, Fever 0.4} transition_probability = { : : : Healthy {HealthyHealthy 0.7, Fever 0.3}, : : : Fever {HealthyHealthy 0.4, Fever 0.6}, } emission_probability = { : : : : Healthy {normalnormal 0.5, cold 0.4, dizzy 0.1}, Fever {normal 0.1, cold 0.3, dizzy 0.6}, : : : : } 在这段代码中, 起始概率start_probability 表示病人第一次到访时医生认为其所处的HMM 状态,他唯一知道的是病人倾向于是健康的。这里用到的特定概率分布不是均衡的,如转 移概率大约是{Healthy: 0.57, Fever: 0.43} 。 转移概率transition_probability 表示潜在的马 尔可夫链中健康状态的变化。在这个例子中,当天健康的病人仅有30%的机会第二天会 发烧。发射概率 emission_probability 表示每天病人感觉的可能性。假如他是健康的,50% 会感觉正常。如果他发烧了,有60%的可能感觉到头晕。 病人连续三天看医生,医生发现第一天他感觉正常,第二天感觉冷,第三天感觉头晕。 于是医生产生了一个问题:怎样的健康状态序列最能够解释这些观察结果。维特比算法 解答了这个问题。 以观察序列[normal, cold, dizzy]为例,通过运行维特比算法,可以发现这个观察序列最 有可能由状态序列 [Healthy, Healthy, Fever]产生。 换句话说,对于观察到的活动, 病人 第一天感到正常,第二天感到冷时都是健康的,而第三天发烧了。 学习 给定一个HMM 模型 (λ)和一个特定的观察序列 (O=o ,o ,...o ),怎样调整模型参数 1 2 T ( π,A,B) ,才能使产生这个观察序列的可能性最大 (即p(O λ)最大)? 这是HMM 的训练问题,通过学习或调整模型的参数,以便更好地预测未来状态序列的 路径。由于给定的训练序列有限,因而不存在一个估计模型参数的最佳方法。与前面的 两个问题相比,是最困难的问题。 解决这个问题,依据不同的最优准则,有不同的方法。主要有两个最优准则,最大化似 然度 (Maximum Likelihood)和最大化互信息 (Maximum Mutual Information)。最大化似 然度准则是在给定模型参数的条件下,让产生给定序列的概率 (条件概率)最大化;最 大化互信息准则是让模型参数和产生给定序列的联合概率最大化。 .1 最大化似然度准则 Baum-Welch 算法是最大似然度准则下的一个参数估计方法,它是一种期望最大化 (Expectation Maximization, EM)算法。EM 算法是一族算法,用于学习涉及隐藏状态问 题的概率模型。 Baum-Welch 算法利用递归的思想,寻找局部最优解。首先,把这些概率 (模型参数)估 计为任意值。然后,不断地重新估计这些概率,直到收敛。重新估计这些概率是通过著 名的重估 (re-estimation )公式 (请参考相关资料)来计算的。 最大似然度准则下,除了Baum-Welch 算法,还有基于梯度的方法。 Baum-Welch 算法只是得到广泛应用的解决这一问题的经典方法,但并不是唯一的,也远 不是最完善的方法。 .2 最大化互信息准则 最大似然度并不是唯一的准则,也不是所有情况都适用的准则。研究表明:当事先假定 的模型不正确时,最大互信息估计器优于最大似然估计器。 但目前对最大互信息估计还没有找到类似于最大似然估计中的前向-后向算法那样有效的 方法,因此,一般采用经典的最大梯度法。 2.3 离散、连续和半连续的HMM 典型的HMM 是离散的,但是可以扩展为连续和半连续的HMM。离散HMM 的精确性比 连续HMM 低,但计算量更少。 HTK 对离散、连续和半连续的HMM 均支持。CMU Sphinx 目前不支持离散HMM。 2.3.1 离散HMM 前面所说的HMM 基本都是离散HMM,离散HMM 的观察值空间是一个有限集合。有限 集合意味着要把连续的值空间映射到一个离散空间,这就涉及矢量量化技术。 矢量量化 (VQ )技术把特征向量空间分为若干子空间,每个子空间用一个中心向量来表 示,表征这个中心向量的是一个码字,所有码字的集合构成码本。这样计算输出概率时, 是针对矢量量化后的码字进行的,通过简单的计数就可以实现,缺点是描述误差比较大。 2.3.2 连续HMM 如果观察值不是来自于有限的集合,而是来自于一个连续空间,前面讨论的离散输出分 布则需要修改。离散HMM 和连续HMM 之间的差异就在于输出概率函数的形式。对于 语音识别,连续HMM 的使用意味着,对于离散HMM 中需要的从连续空间映射观察矢 量到离散空间的量化过程是不必要的。 在选择一个连续概率密度函数时概率密度函数时,首选就是高斯混合密度函数 (Gaussian mixture densityGaussian mixture density , GMD )。当混合数足够大时,,GMD 可以比较准确的描述特征向量的概率密度可以比较准确的描述特征向量的概率密度,可以用EM 算法估计出概率密度。 以下是一个连续HMM,其输出概率是一个概率密度函数其输出概率是一个概率密度函数。 2.3.3 半连续HMM 传统上,离散和连续混合密度离散和连续混合密度HMM 是分别地对待的。事实上,这两者之间的缺口是可这两者之间的缺口是可 以缩小的。虽然GMD 描述方法中需要存储的参数不多描述方法中需要存储的参数不多 (均值、方差、转移矩阵等转移矩阵等),但 是当混合数很大时,也比较浪费空间也比较浪费空间,半连续HMM 结合VQ 技术和连续密度描述的特技术和连续密度描述的特 点 较好的解决了这个问题。。这里,所有模型公用L 个类似于码字的密度函数个类似于码字的密度函数,记录一个 模型中不同状态的概率密度函数只需要一组系数即可模型中不同状态的概率密度函数只需要一组系数即可。 半连续HMM 其实就是所说的其实就是所说的Tied-Mixture System (在HTK 中就只说Tied-MixtureMixture)。 如下图所示,所有高斯密度函数组件都存储在一个池里所有高斯密度函数组件都存储在一个池里 (Tied-Mixture CodebookMixture Codebook),所有 状态输出分布共享这个池。。 2.4 HMM 实现、训练训练中的问题 2.4.1 拓扑结构 在语音识别应用中,一个HMMHMM 表示一个基本声学单元 (基元),拓扑一般为有限的几个拓扑一般为有限的几个 状态,每个状态都包括自跳转弧每个状态都包括自跳转弧。如下图是HMM 的马尔可夫链部分,有有4 个状态, 最后一个是不发射的终结状态最后一个是不发射的终结状态。 下图与上图类似,但是有状态跨越但是有状态跨越。 上面两种马尔可夫模型有一个特点上面两种马尔可夫模型有一个特点,从状态1 出发,沿状态序号增加的方向转移沿状态序号增加的方向转移,最终 停在最后一个状态。由这种马尔可夫链构成的由这种马尔可夫链构成的HMM,一般称之为左-右模型右模型。这种模 型在实际语音处理应用中被广泛采用型在实际语音处理应用中被广泛采用,尤其是在孤立词识别中。 为了方便,一般在实现中都会给模型增加不发射的初始和终结状态一般在实现中都会给模型增加不发射的初始和终结状态。在语音识别工具在语音识别工具 HTK 中,HMM 模型一般是55 个状态,包括不发射的初始和终结状态。 下面是一个简单的左-右模型右模型,中间三个状态是发射状态。 2.4.2 初始模型选取初始模型选取 Baum-Welch 算法由训练数据得到HMM 参数时,一个重要问题就是初始模型的选取。不 同的初始模型有不同的将产生不同的训练结果。选取好的初始模型,是最后求出的局部 极大与全局最大接近是非常重要的。 实际处理是有一些经验方法,π(初始概率)和A (转移概率)对初始值的选取结果影 响不大,只要满足约束条件。B (发射概率)的初值对训练出来的HMM 影响较大,一般 倾向采取较为复杂的初值选取方法。初始模型可以任意选取,在用重估公式递推改进。 HMM 有很多种类型,针对不同的HMM,也可以选取不同的初值选取方法。 2.4.3 数据下溢问题 前向-后向算法和Baum-Welch 算法中,都有概率的递推计算,所有量都小于1,因此随 着t 的增加,它们将迅速趋向零。为了解决这种数据下溢问题,通常可以采取增加比例 因子的方法,对有关算法加以修正。 做了上述处理后,为了保证所有公式计算结果不变,必须在常用计算公式中做相应处理, 以消去比例因子的影响。如概率P(O λ)的计算公式,重估公式,Veterbi 算法的处理。 对Viterbi 算法,为防止数据下溢可采用对数化处理。事实上,语音识别中通常是比较多 个概率值之间的相对大小,并由此做出决策。因此取对数运算后,既可以防止概率值的 下溢,又不会影响多个概率值之间的大小关系。 2.4.4 训练数据的不足 根据HMM 的定义,一方面,一个HMM 的模型还有很多待估计的参数,因此为了得到 满意的模型,必须要有很多训练数据,实际中很难办到。另一方面,选择规模较小的模 型,既减少模型中的状态数和每个状态上的混合高斯分量数,也有实际的困难。训练数 据少的情况下,一些出现次数很少的观察值没有包含在整个训练数据库中,这样训练出 来的HMM 参数中就会有不少为零的概率值。事实上,在实际语音识别测试中,这样观 察值有可能出现,因而需要对训练好的模型进行相应的处理。 一种常用的方法是将一个训练较充分,但细节较差的模型与一个训练虽不充分,但细节 较好的模型进行混合。前一个模型可以在HMM 模型结构中将有些状态转移概率及观察 输出概率相近的进行 “捆绑”,即一些转移概率或观察输出概率共享相同的值,从而可以 减少模型参数。这样使用相同的训练数据就可以对这种 “捆绑”后的模型进行较充分的 训练。问题的关键是合并的权值的估计。 2.4.5 处理说话人的影响 由于语音的动态范围很大,不同说话人的语音,甚至同一说话人在不同时间和场合的语 音都有很大的不同,因此训练HMM 时,充分考虑说话人的影响,对于较好的估计HMM 参数是十分重要的。 这个问题可以表述为:设训练数据集A ,所训练出来的模型λ。模型λ较好的反映了A 的特性。如果又增加一个训练数据集B,希望经过一个处理过程,B 的特性也能反映在 结果模型之中。B 相对于A 来说,可以使不同说话人的语音,也可以是同一说话人在不 同时间所发出的语音。因此,这个问题对语音识别,尤其是非特定人语音识别是很有意 义的。 根据Baum-Welch 算法,一个直接处理方法是一起使用A 和B 重新训练一个模型。但这 样做,一方面不经济,没有利用已经训练好的模型1 的信息,另一方面,实现起来也有 困难,因为在很多实际场合中并没有保留训练数据集A ,而只保存了反映其特性的占用 很少存储空间的模型λ。 另一个既简单又容易的想到的方法为,以λ为初始模型,用数据B 通过重估公式进行若 * * 干次的迭代,得到新模型λ。但是很显然,这个λ只能较好的反映数据集B 的特性, 而不可能同时很好的反映出A 的特性。 针对这个问题,经过分析Baum-Welch 算法,可以给出一种处理说话人影响的方法。它 在小词汇量语音识别和大词汇量语音识别中都有成功的应用。 这个方法要改写重估公式 (请参考相关资料),改写之后就能使HMM 参数估计的过程具 有很好的自适应性和很强的自学能力。只要增加新的训练数据,通过这种方式最后产生 的模型就能反映这些新增数据的信息。 3 语音识别系统系统 介绍语音识别系统的一般处理过程介绍语音识别系统的一般处理过程,和基本架构。展开讲述处理过程中的信号处理展开讲述处理过程中的信号处理、特 征分析和特征提取的内容。。其他部分在后两章讲述。 3.1 一般过程 语音识别系统本质上是一种模式识别系统语音识别系统本质上是一种模式识别系统。它的基本框架是: 与常规的模式识别系统一样与常规的模式识别系统一样,包含有特征提取、模式匹配和参考模式库三个基本单元模式匹配和参考模式库三个基本单元。 由于语音识别系统所处理的信息是结构非常复杂由于语音识别系统所处理的信息是结构非常复杂、内容及其丰富的人类语言信息内容及其丰富的人类语言信息,因此 它的系统结构比通常的模式识别系统要复杂得多它的系统结构比通常的模式识别系统要复杂得多。 后处理单元,可能涉及句法分析可能涉及句法分析、语音理解、语意网络以及语言模型等。它往往不是一它往往不是一 个孤立的单元,而是与模式匹配计算单元而是与模式匹配计算单元、参考模式库融合在一起,构成一个逻辑关系构成一个逻辑关系 复杂的系统整体。 对基于HMM 的语音识别系统来说的语音识别系统来说,“参考模式库”部分就是声学模型、语言学模型语言学模型, “模式匹配”过程就是基于过程就是基于HMM、格型结构的搜索、解码过程。 以下是“预处理与数字化””和 “特征提取”两个步骤的示意图。 上图显示了对语音信号的数字化上图显示了对语音信号的数字化、加窗、分帧、提取特征的过程,最后得到标示语音特最后得到标示语音特 征的矢量。 3.2 基于HMM 的基本架构的基本架构 基于HMM 的语音识别系统的基本架构的语音识别系统的基本架构,一般如下图 (虚线框是系统的边界虚线框是系统的边界)。 信号处理包含了语音特征参数的提取信号处理包含了语音特征参数的提取;解码器需要声学模型和语言学模型的支持解码器需要声学模型和语言学模型的支持;自适 应是对模型进行训练。 3.3 信号处理、特征分析特征分析 只有将语音信号分析表示成其本质特性的参数只有将语音信号分析表示成其本质特性的参数,才可能建立用于识别的模版或者知识库才可能建立用于识别的模版或者知识库。 语音识别率的高低,取决于对语音信号的分析的准确性和精度取决于对语音信号的分析的准确性和精度。 因此,应先对语音信号应先对语音信号 进行特征分析,得到提高语音识别率的有效数据得到提高语音识别率的有效数据,并据此来设计语音识别系统并据此来设计语音识别系统。 语音信号分析可分为时域、、频域、倒谱域等方法。 贯穿语音信号分析全过程的是贯穿语音信号分析全过程的是 “短时分析技术”。根据对语音信号的研究,,其特性是随时 间而变化的,所以它是一个非稳态过程所以它是一个非稳态过程。但从另一方面看,在一个短时间范围内在一个短时间范围内,其特 性基本保持不变,即相对稳定即相对稳定,所以可以将其看做一个准稳态过程。基于这样的考虑基于这样的考虑, 对语音信号的分析和处理必须建立在对语音信号的分析和处理必须建立在 “短时”的基础上,即进行 “短时分析短时分析”。将语音信 号分为一段一段来分析,其中每一段称为一帧其中每一段称为一帧。由于语音信号通常在10~30ms10~30ms 之内是保 持相对平稳的,因而帧长一般取因而帧长一般取10~30ms。 3.3.1 数字化 语音信号是时间和幅度都连续变化的语音信号是时间和幅度都连续变化的一维模拟信号,要想在计算机中对它进行处理要想在计算机中对它进行处理,就 要先进行采样和量化,将它变成时间和幅度都离散的数字信号将它变成时间和幅度都离散的数字信号。 语音信号数字化之前必须先进行放混叠滤波和防工频干扰滤波语音信号数字化之前必须先进行放混叠滤波和防工频干扰滤波。 采样 根据采样定理,当采样频率大于信号最高频率的两倍时当采样频率大于信号最高频率的两倍时,在采样过程中就不会丢失信息在采样过程中就不会丢失信息, 并且可以用采样后的信号重构原始信号并且可以用采样后的信号重构原始信号。 在实际的语音信号处理中,,采样频率一般为8~10kHz 。 对于语音识别系统,不同采样率采样率对识别性能的影响,大致如下: 采样率 相对误识率的降低程度相对误识率的降低程度 8kHz 基线% 在上表中,将8kHz 采样率时的系统作为基线系统采样率时的系统作为基线kHz 时,,系统的误识率 有 10%的降低;继续升高采用率到继续升高采用率到 16kHz 时,系统的误识率与 11kHz 相比有相比有 10%的降低; 当采样率继续增加时,误识率几乎没有降低误识率几乎没有降低。因此在一般的语音识别系统中因此在一般的语音识别系统中,采样率最 高选择在16kHz。 语音识别系统一般需要知道语音信号的采样率语音识别系统一般需要知道语音信号的采样率。如果语音信号来自输入设备如果语音信号来自输入设备 (麦克风), 语音识别系统要能够读取输入设备的采样率语音识别系统要能够读取输入设备的采样率,如果不能读取,则需要手工配置则需要手工配置。 量化 下图是模拟信号和采样后的离散信号下图是模拟信号和采样后的离散信号。 可以看出,采样后的信号在时采样后的信号在时间域上是离散的形式,但在幅度上还保持着连续的特点保持着连续的特点, 所以要进行量化。 量化器就是将整个信号的幅度值分成若干个有限的区间,并且把落入同一个区间的样本 点都用同一个幅度值表示,这个幅度值称为量化值。量化方式有3 种:零记忆量化,分 组量化和序列量化。 零记忆量化是每次量化一个模拟采样值,并对所有采样点都使用相同的量化器特性。分 组量化是从可能输出的离散集合中,选出一组输出值,代表一组输入的模拟采样值。序 列量化是在分组或非分组的基础上,用一些邻近采样点的信息对采样序列进行量化。 短时加窗处理 经过数字化的语音信号实际上是一个时变信号。为了得到短时的语音信号,要对语音信 号进行加窗操作。窗函数平滑地在语音信号上滑动,将语音信号分成帧。分帧可以连续, 也可以采用交叠分段的方法,交叠部分称为帧移,一般为窗长的一半。 窗函数的形状可以有矩形窗,汉明窗,或者汉宁窗。 对语音信号的时域分析来说,窗函数的形状是非常重要的,矩形窗的谱平滑性较好,但 波形细节丢失,并且矩形窗会产生遗漏现象;汉明窗可以有效的克服泄漏现象,应用范 围也最广泛。 不论什么样的窗函数,窗函数的长度对能否反应语音信号的幅度变化起到决定性的作用。 3.3.2 时域分析 进行语音信号分析时,最先接触到的、也是最直观的是它的时域波形。语音信号本身就 是时域信号,因而时域分析分析是最早使用且应用范围最广的一种方法。时域分析具有 简单直观、清晰易懂、运算量小、物理意义明确等优点。 语音信号典型的时域特征包括短时能量,短时平均过零率,短时自相关系数和短时平均 幅度差等。 时域图以时间为横轴,频域图以频率为横轴,两者都是以振幅为纵轴。时域图是不同频 率信号的叠加,而频域图则是展现信号中不同频率的振幅。 下图揭示了时域和频域的区别和关系。从时间轴 (Time Axis )看是时域图,从频率轴 (Frequency Axis)上看在是频域图。 3.3.3 频域分析 尽管时域分析具有多个优点,但更为有效的分析多是围绕频域进行的,因为语音中最重 要的感知特性反映在其功率谱中,而相位变化只起到很小的作用。 时域波形较易随外界环境变化,但语音信号的频谱对外界环境变化具有一定的顽健性。 另外,语音信号的频谱有非常明显的声学特性,利用频域分析获取的语音特征具有实际 的物理意义,如共振峰参数,基音周期参数等。 常用的频域分析方法有带通滤波器组方法、傅里叶变换法和线性预测分析法。 信号处理中的 “不确定原理”指出,对给定的信号,其时宽与带宽的乘积为一常数。当 信号的时宽减小时,其带宽将相应增大,当时宽减到无穷小时,带宽将变成无穷大;反 之亦然。即信号的时宽与带宽不可能同时趋于无穷小。也就是说,信号分析时的时间分 辨率和频率分辨率是一个矛盾,不能同时取得很小。 3.4 特征提取 声学特征的提取与选择是语音识别的一个重要环节。声学特征的提取既是一个信息大幅 度压缩的过程,也是一个信号解卷过程,目的是使模式划分器能更好地划分。 正如前面所提到的,由于语音信号的时变特性,特征提取必须在一小段语音信号上进行, 也即进行短时分析。这一段被认为是平稳的分析区间称之为帧,帧与帧之间的偏移通常 取帧长的1/2 或1/3。通常要对信号进行预加重以提升高频,对信号加窗以避免短时语音 段边缘的影响。 常用的一些声学特征有线性预测系数 (LPC)、梅尔频率倒谱系数 (MFCC)、感知线性预 测 (PLP)等。HTK 和CM Sphinx 均支持这几种声学特征。 3.4.1 线性预测系数 (LPC ) 线性预测分析从人的发声机理入手,通过对声道的短管级联模型的研究,认为系统的传 递函数符合全极点数字滤波器的形式,从而n 时刻的信号可以用前若干时刻的信号的线 性组合来估计。通过使实际语音的采样值和线性预测采样值之间达到均方差最小LMS, 即可得到线性预测系数 (LPC)。 对LPC 的计算方法有自相关法 (德宾Durbin 法)、协方差法、格型法等等。计算上的快 速有效保证了这一声学特征的广泛使用。 与LPC 这种预测参数模型类似的声学特征还有线谱对LSP、反射系数等等。 3.4.2 倒谱系数 倒谱域是将对数功率谱进行反傅里叶变换后得到的,它可以将声道特性和激励特性有效 的分开,因此可以更好的揭示语音信号的本质特征。 利用同态处理方法,对语音信号求离散傅立叶变换DFT 后取对数,再求反变换就可得到 倒谱系数。对LPC 倒谱,在获得滤波器的线性预测系数后,可以用一个递推公式计算得 出。 实验表明,使用倒谱可以提高特征参数的稳定性。 3.4.3 梅尔频率倒谱系数 (MFCC ) 不同于LPC 等通过对人的发声机理的研究而得到的声学特征,Mel 倒谱系数 (MFCC)是 受人的听觉系统研究成果推动而导出的声学特征。 对人的听觉机理的研究发现,当两个频率相近的音调同时发出时,人只能听到一个音调。 临界带宽指的就是这样一种令人的主观感觉发生突变的带宽边界,当两个音调的频率差 小于临界带宽时,人就会把两个音调听成一个,这称之为屏蔽效应。Mel 刻度是对这一 临界带宽的度量方法之一。 MFCC 的计算首先用FFT 将时域信号转化成频域,之后对其对数能量谱用依照Mel 刻度 分布的三角滤波器组进行卷积,最后对各个滤波器的输出构成的向量进行离散余弦变换 DCT,取前N 个系数。 3.4.4 感知线性预测 (PLP ) 感知线性预测 (PLP)同样是受人的听觉系统研究成果推动而导出的声学特征。它将人耳 听觉的各种特性通过工程化处理,采用简化的模型来加以模拟。因而经过这样处理后获 得的频谱更符合人耳的听觉特点,有利于进行语音信号处理。 PLP 仍用德宾法去计算LPC 参数,但在计算自相关参数时用的也是对听觉激励的对数能 量谱进行DCT 的方法。 一些研究表明,对噪声环境下的语音识别,采用 PLP 特征比 MFCC 特征的性能更好一些。 3.5 矢量量化 语音信号在提取出特征后,得到一个个标示某一短时间内 (一帧)的语音特征的矢量。 矢量的维数跟特征的类型有关,比如MFCC,有三十几维。这些矢量作为HMM 的观察序 列,用于训练模型、语音解码。 这些特征矢量的取值并不是离散的,连续HMM、半连续HMM 可以处理它。为了能适用 于离散 HMM,就要对这些矢量进行量化,即得到离散的特征值,特征值空间是有限的。 这就是矢量量化 (Vector Quantisation )技术。 量化可以分为两类:一类是标量量化,一类是矢量量化。 标量量化是将采样后的信号值逐个进行量化,这时将一维的零到无穷大值之间设置若干 个量化阶梯,当某个输入信号的幅度值落在某相邻的两个量化阶梯之间时,就被量化为 与其最近的一个阶梯的值。如下图,把无限的值空间映射到00、01、10、11 四个离散 值。 矢量量化是将若干个采样信号分成一组,即构成一个矢量,然后对此矢量一次进行量化。 它是将d 维无限空间划分为K 个区域边界,每个区域称为一个胞腔,然后将输入信号的 矢量与这些胞腔的边界进行比较,并被量化为 “距离”最小的胞腔的中心矢量值。 以下星空体育登录入口 星空体育在线官网是2 维矢量的矢量量化示意图,把平面上无限的空间划分为有限个胞腔。 这里胞腔的中心称为码字,而码字的组合称之为码书 (codebook )。 在矢量量化中主要有两个问题: 如何划分K 个区域的边界。这需要大量的 输入信号矢量,经过统计实验才能确定。这个 过程称为 “训练”或建立码本,一般采用K-means 算法或LBG 算法 如何确定两个矢量在进行比较时的距离测度,可以采用欧拉距离 (均方差距离)或 Itakura-Satio 距离,以及似然比失真等。 K-means 矢量量化算法的设计原则是使整体的均方差达到最小。它是直接将d 维空间分 成K 个胞腔, 然后不断迭代,更新码本,直到相邻迭代的误差不高于阀值。 K-means 算法是在码书大小已知的情况下对样本聚类的方法,但在很多应用中,事先聚 类中心的个数未知,这是可以采用LBG 算法。LBG 算法的核心思想是先生成一个聚类中 心的码本,然后逐层分裂,直到聚类误差达到要求 (可参考:)。 3.6 后续步骤 在提取语音信号的特征以及矢量量化之后,就到了解码过程。对于基于HMM 的语音识 别系统,HMM 就是解码的核心。解码过程要有声学模型的支持;对于大词表的语音识 别来说,语言学模型也很重要。对于大词表连续语音识别,还涉及到网络的构建 (格型 结构,lattice)和图搜索算法。 这些内容将在后续章节阐述。 4 声学、语言学模型 在语音识别系统中,声学模型包含了基元的发音模板和词汇的发音字典,发音模板是一 套训练好的HMM 模型及其参数,发音字典包含了语言中每个词的发音,一个词用一行 文本或一个网络结构表示。声学模型是语音识别系统的基础和核心。 在连续语音识别系统中,除了声学模型,一般还要建立语言学模型,以利用语言中的句 法规则、词频等知识,提高识别率。词汇量越大,语言学模型就越重要。 4.1 声学模型 4.1.1 基本声学单元 基本声学单元 (简称基元)的选择是声学模型建模中一个基本而重要的问题。基元的选 择有音素、半音节、音节、词等几种。 声学模型的建模单元的选择需要考虑三方面的因素。 其一是该单元的可训练性,亦即是否能够得到足够的语料对每个单元进行训练,以及训 练所需要的时间长短是否可接受 其二是该单元的可推广性,当语音识别系统所针对的词汇集发生变化时,原有建模单元 是否能够不加修改的满足新的词汇集 最后还需要考虑建模的精确性 以词作为基本单元建立模型,对于简化识别系统的结构和训练过程是很有效的。但对大 词汇量连续语音识别系统来说,采用此作为基本单元建模就不合理了。在连续语音识别 中,以词作为基本单元,各种音联关系可能得不到充分的训练;并且以词为单位构成的 系统,需要的存储量很大,计算复杂度很高;由于词内的各因素重复出现,造成大量不 必要的冗余存储和计算。因此在大词汇连续语音识别中,一般采用比词小的子词识别基 元,如音节、半音节等。一般来说,声学单元越小,其数量也就越小;但是另一方面, 单元越小,对上下文的敏感性就越大,越容易受到前后相邻的影响而产生变异,因此, 其类型设计和训练样本的采集更困难。 一般在声学建模中,考虑上下文相关信息,这样识别基元就会变成上下文相关的基元。 当考虑上下文信息时,基元的数目会变得非常庞大,这将导致声学模型的规模变得无法 接受。因此在进行上下文相关建模时,不适宜采用音节模型。 基于音素的基元在英语连续语音识别系统中得到了广泛的 应用。声韵母基元是适合汉语 特点的一种识别基元。声韵母跟半音节在形式上非常接近。 4.1.2 基元的扩展 单纯的一个音素,称为上下文无关音素,简称单音素。所谓上下文相关音素,就是考虑 一个音素与其左或右相邻音素的相关情况后选取的基元。这样对N 个基元,就可能存在 N2 个坐或右上下文相关基元,称为双音素,可能存在N3 个左或右上下文相关的音素, 称为三音素。 三音素又分为两种,逻辑三音素和物理三音素。前者指语言上可能的音素组合,即在语 言中可能出现的音素组合;后者指训练语音数据中出现的 音素组合。 在训练语音模型时,一般应该保证每个三音素在训练数据中出现的次数不少于10 次。如 果出现次数太少,则不能保证模型的准确性,这称为训练数据稀疏。最直接解决这种问 题的方法是,根据一些准则对上下文相关的音素进行聚类,并根据聚类进行状态共享, 以此来解决数据稀疏的问题。常见的状态共享策略有基于数据驱动的和基于决策树两种。 对于基于数据驱动的状态共享策略,HTK 提供了一种基于最小类合并的聚类方法,它在 初始时将所有状态都作为一个类,每次合并两个最小的类,直到最大类的大小达到一个 阀值或者类的数目达到聚类的要求。 基于决策树的聚类方法,可以获得与数据驱动聚类方法类似的聚类效果,同时还能处理 训练数据中没有出现的三音素。 4.2 字典 声学-语音学层之上有一个词层,词层中应有一部字典来规定词表中每一个词是用哪些 子词单元以何种方式构筑而成的。 最简单实用的方案是每个词用若干子词单元串接而成。但是,每个词的发音可能有多种 变化方式,因而串接也有相应的困难。 发音的变化有两个方面: 替换,即词中的某个音子可能被用其他相似而略有差异的子词单元所替换,这种替换具 有一定的随机性 插入和删除错误,即词中有时候增加一个不是本词成分的子词单元,有时又将本词成分 中的某个子词删除了,何时插入以及何时删除也是随机的 针对这些问题有以下的几种方案: 第一种方案是在词典中为每一个词建立多套子词单元串接规则来代替单一的规则,这样 可以表现同一个词的不同发音变异。这种方案使词典容量扩充很大,但对识别效果收效 甚微,因而不是一种优选方案 第二种方案将子词单元构成词的规则用一个网络图来描述,其中包含替代和插入、删除 等各种变化 以下就是单词tomato 的一个可能的发音网络,还加上了转移概率。 4.3 语言学模型 语言学模型 (或叫语言模型或叫语言模型)分为基于文法的语言模型和基于统计的语言模型分为基于文法的语言模型和基于统计的语言模型。基于文 法的语言模型是总结出语法规则乃至语义规则法的语言模型是总结出语法规则乃至语义规则,然后用这些规则排除声学识别中不合语然后用这些规则排除声学识别中不合语 法或语义规则的结果。基于文法的语言模型在特定任务系统中获取很好的应用基于文法的语言模型在特定任务系统中获取很好的应用基于文法的语言模型在特定任务系统中获取很好的应用,可以较 大幅度地提高系统的识别率大幅度地提高系统的识别率。在大词汇量的语音识别系统中,统计语言模型由于可以克统计语言模型由于可以克 服文法规则难以处理真实文本的局限性服文法规则难以处理真实文本的局限性,因而获得了越来越广泛的应用。 统计模型的基本原理是,采用大量的文本资料采用大量的文本资料,统计各个词的出现概率及其相互关联的统计各个词的出现概率及其相互关联的 条件概率,并将这些知识与声学模型匹配相结合进行结果判决并将这些知识与声学模型匹配相结合进行结果判决,以减小声学模型不够合以减小声学模型不够合 理而产生的误识。 然而,要可靠地估计一种语言所有词在所有序列长度下的条件概率几乎是不可能的事可靠地估计一种语言所有词在所有序列长度下的条件概率几乎是不可能的事可靠地估计一种语言所有词在所有序列长度下的条件概
2、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
3、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
4、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
轻松突破高考完形填空+第一章+解题指导【更多资料关注微博@高中学习资料库 】.doc
近三年新课标卷2物理试卷分析【更多资料关注微博@高中学习资料库 】.doc
通史教材整合表1:中国古代史知识点整合表【更多资料关注微博@高中学习资料库 】.doc
轻松突破高考完形填空 第三章 选择型完形填空【更多资料关注微博@高中学习资料库 】.doc
通史教材整合表2:世界古代史知识点整合表【更多资料关注微博@高中学习资料库 】.doc
13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
原创力文档创建于2008年,本站为文档C2C交易模式,即用户上传的文档直接分享给其他用户(可下载、阅读),本站只是中间服务平台,本站所有文档下载所得的收益归上传人所有。原创力文档是网络服务平台方,若您的权利被侵害,请发链接和相关诉求至 电线) ,上传者