htk语音识别matlab程序,基于htk调用matlab语音识别的研究

41528d3028836879cd698677c3999917.gif基于htk调用matlab语音识别的研究

基于 HTK 调用 MATLAB 的语音识别的研究 张戈,严欢,殷景华 (哈尔滨理工大学,哈尔滨,150080) 摘 要:根据 HTK(Hidden Markov Model Toolket)原理,介绍基于 HTK 调用 MATLAB 的语 音识别过程。利用 HTK 软件建立隐马尔科夫模型(HMM) 对录制的语料进行训练和 识别。修改 HMM 中参数(包含语音特征,声学模型等) ,再利用 Matlab 计算速度 快及其编程开发节省时间优势来对其计算仿真,通过仿真图来显示各类参数的语音 识别结果,分析参数对语音识别系统识别率的影响,以便改进并提高语音识别率, 从而达到更好的效果。 关键词:HTK ;HMM 模型;声学模型 0 引言语音识别是指及其通过学习实现从语 音信号到文字符号的理解过程,是一种十 分重要的人机交互方式。本文应用剑桥大 学开发的专门用于建立和处理 HMM 的实 验工具包 HTK(Hidden Markov Model Toolket),主要用于语音识别领域。基于 HTK 的重复实验比较浪费时间的缺点,本 文利用 Matlab 计算速度快及其循环编程开 发节省时间优势处理语音识别中各个模块, 使其节约开发时间,提高工作效率。 1 语音识别系统的总体框架 基于 HMM 的语音识别系统如图 1 所 示:主要由特征提取单元、声学模型、识 别网络、语音识别器等四部分组成 [1] 。 声学 模型 (HMM ) 识别 网络 训练数 据 语音语料 库 词典 语 言模型 特征 提取单 元 语 音识 别器 语音 输入 文本 输出 图 1 语音识别系统特征提取单元主要包括预处理和端点 检测。语音库中的训练语料数据经信号处 理确定音素的起始点和终点,便于在声学 建模中加入静音和停顿音拟合为接近自然 的语音。语音测试识别时需经过特征提取 单元。 语音库由训练库和测试库组成,分别用于 声 学模型的训练及其测试。声学模型通过建模 模拟人类的语音产生和感知特征。识别网 络主要用来搜索最佳词序列,能够得出最 大的识别概率作为可能的识别结果。语言 模型应用统计语言模型,词典包括了在识 别过程中所有可能遇到的单词,并定义每 个单词的因素级的发音。 2 HTK 工作原理 HTK 工具包是由语音数据准备、HMM 训练工具、识别工具、数据分析工具等组 成。在语音数据准备时,用 Cooledit 等录 音软件进行语音语料的采集 [3] 。训练工具主要基于 EM 重估算法,利 用 HCompv、HInit 用于估计一套初始模型 参数,使用 HRset、HERest 命令用 EM 算 法重估参数,对 HMM 训练主要应用上下 文无关的建模方法,直接利用 HERest 进行 嵌入式训练,利用 EM 算法对待训练的孤 立音素进行重估,更新孤立音素对应的 HMM 参数,使系统中所有模型彼此间的距 离增大,降低识别时的难度。不断调整系 统模板的参数,使参数性能不断向最佳状 态逼近 [4] 。 HVite 是基于 Viterbi 算法用于识别未 知的语音,HResults 是模型性能分析工具, 用于分析识别率。 3 语音声学建模及其优化在选择识别单元时候,模型识别单元Comment [U1]: 格式有问题 大小(词发音模型、字发音模型、半音节 模型或 音素模型) 对语音训练数据量大小、 语音测试识别率有较大的影响 [2] 。由于本 文实验数字语音、语言比较简单,所以选 择音 素为识别基元。通过 HTK 的 HLEd 命令 将音节转换为音素便于声学训练。在声学 模型中通过 matlab 命令将*.wav 文件转换 为*.fea 文件确定其对应关系,应用 HTK 的 HCopy. 指令来产生 MFCC 文件。声学模型是语音识别声学处理中比较 关键的步骤,首先调用 Matlab 中 genTemplateHmmFile.m 文件来建立 隐马 尔科夫模型(HMM)模板 文件, 在声学模型 的训练中通过 EM 训练算法和利用 HTK 的 HHEd 来分裂 HMM 的状态数及增加混 合高斯分量,更好地涵盖数据集和表达模 型特征,求最佳参数优化模板,为每个声 学单元建立一套声学模型参数。语音的识 别特征参数的选取也是语音识别中重要的 一方面 [2] 。当前最普及的是 Mel 频率倒谱 参数(MFCC)符合人耳的听觉特性,在 有信道噪声和频谱失真的情况下,MFCC 参数的鲁棒性比较好。 在大语料库连续语音识别中选取基于 上下文的相关模型,三音子的音素和音节 模型与音节相比,识别性能有很大地提高 [5] 。 4 语音识别实验 语音采集通过 cooledit 声音处理软件完 成,采集过程中,以 0-9 这 10 个语音数字 作为实验对象,通过对这十个汉语数字进 行多遍录音,生成 29 组(共 580 个声音样 本) ,分别来自 25 个男生和 4 个女,前 22 个为 inside test,后 7 个为 outside test,兼 顾男女声音的基频和最高频率,用 11025Hz 的采样率,单声道录音,量化为 16 bits。 4.1 语音识别结果 通过 HTK 调用 Matlab 函数来处理在 语音识别系统中涉及到训练和测试的数据。 MFCC 参数选用 13 阶, 利用 HTK 的界面 产生 Inside test 和 outside test 的识别结果如 图 2 和图 3 所示。 图 2 Inside test HTK 的识别结果 图 3 outside test HTK 的识别结果 从图 2、3 可以看出每个数字的识别率 和总体的识别率,每个数字的识别率不一 样,主要由于汉语的声母为清音的缘故, 而且录入语音样本的幅度不够大而导致识 别率不是很高。从中还可以看出,得到 outside test 并没有 Inside test 识别率那么高, 是因为训练语料库并没有足够的大语料训 练库去覆盖各种说话人的发声。 4.2 改变 Mixture 个数对识别 率的影响本节研究 Mixture 个数对识别性能的 影响,即取 13 阶 MFCC 特征向量,识别 模型为 GMM。本次实验不需要再重复原 来的试验步骤,而是利用 Matlab 计算速 度快和循环编程开发来节省时间,只需要 把 HTK 的命令及其各类参数用 Matlab 语 言编写出来,直接在 Matlab 上相互调用来 训练数据和测试识别率,这样就大大的节 约了重复实验时间。Matlab 在参数更改时 简单的编程实现如图 4 所示:图 4 Matlab 在参数更改时简单的编程实现 从图 4 中可以看出,确定 MFCC 阶数 不变的情况下,做 Mixture 个数对识别率 的影响的实验中,仅仅通过 Matlab 调用语 音工具箱中的相关接口函数,通过 Matlab 编程计算生成各个 Mixture 个数的识别率, 从而节省了同样实验只需改变几个参数而 重复做实验的时间。生成识别结果图 5 所 示。 图 5 Mixture 个数变化对识别率的影响理论研究表明,随着 Mixture 的个数

你可能感兴趣的:(htk语音识别matlab程序)