基于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]。

语音

输入

图1语音识别系统

特征提取单元主要包括预处理和端点检测。语音库中的训练语料数据经信号处理确定音素的起始点和终点,便于在声学建模中加入静音和停顿音拟合为接近自然的语音。语音测试识别时需经过特征提取单元。语音库由训练库和测试库组成,分别用于声学模型的训练及其测试。声学模型通过建模

模拟人类的语音产生和感知特征。识别网络主要用来搜索最佳词序列,能够得出最大的识别概率作为可能的识别结果。语言模型应用统计语言模型,词典包括在识别过程中所有可能遇到的单词,并定义每个单词因素级的发音。

2HTK工作原理

HTK工具包是由语音数据准备、HMM 训练工具、识别工具、数据分析工具等组成。在语音数据准备时,用Cooledit等录音软件进行语音语料的采集[2]。

训练工具主要基于EM重估算法,利用HCompv、HInit估计一套初始模型参数,使用HRset、HERest命令重估参数,对HMM 训练主要应用上下文无关的建模方法,直接利用HERest进行嵌入式训练,利用EM算法对待训练的孤立音素进行重估,更新孤立音素对应的HMM参数,使系统中所有模型彼此间的距离增大,降低识别时的难度。不断调整系统模板的参数,使参数性能不断向最佳状态逼近[3]。

HVite是基于Viterbi算法用于识别未知的语音,HResults是模型性能分析工具,用于分析识别率。

3语音声学建模及其优化

在选择识别单元时候,模型识别单元大小(词发音模型、字发音模型、半音节模型或音素模型)对语音训练数据量大小、语音测试识别率有较大的影响[4]。由于本文实验数字语音、语言比较简单,所以选择音素为识别基元。通过HTK的H LEd命令将

matlab htk tools,基于HTK调用MATLAB的语音识别的研究相关推荐

  1. matlab信号内插,基于VC++和Matlab的数字信号内插处理系统

    0引言目前,利用并行交替式(Parallalinterleaving)技术,超高速数字化示波器的实时采样速率已突破了10Gsa/s.按照Nyquist定理,这种系统的实时带宽可接近5GHz.在数字化示 ...

  2. linux c++ 调用matlab,ubuntu系统下C++调用matlab程序的方法详解

    前言 最近因为工作的需要在研究C++怎么调用matlab程序,发现网上的资料较少,所以将自己学习的内容总结分享出来,下面话不多说了,来一起看看详细的介绍吧. 实验平台: ubuntu  matlab ...

  3. matlab的exec程序,C++调用Matlab画图的一段程序

    劳动节闲来无事,写了一天程序,just for fun. 看,这是C++调用Matlab画图的一段程序.暂时不想多解释了,有兴趣的话,看看下面的代码吧. 以下几段代码由上到下,越来越旧.最上面的是最新 ...

  4. python调用matlab函数_从 Python 调用 MATLAB 函数的三种方法

    0. 实验环境Ubuntu 16.04 Matlab R2015b 1. 借助于 mlab 库 安装方法非常简单,只需一行命令 sudo pip install mlab 即可. import num ...

  5. cvi调用matlab dll,cvi通过artix调用matlab

    [实例简介] cvi通过artix调用matlab,官方例程改的,不过官方例程一般人运行不起来,因为库不匹配,这个是matlab2015b32位和cvi2017的 [实例截图] [核心代码] f403 ...

  6. 调用matlab dll报错,c#调用MATLAB的dll时出错

    MATLAB是2014a,VS是2013的. 在C#中调用matlab生成的dll文件时,ceshi.Class1 yaoyi = new Class1();  对类进行实例时,抛出异常.异常为: 未 ...

  7. C++ MATLAB 混合编程——VS项目调用MATLAB函数

    引言 MATLAB无疑是一款强大的矩阵运算与数据分析软件,内部集成了众多函数.如果在C++编程时可以调用相关的函数将对我们的数据分析研究带来极大的方便.这里就总结一下如何在VS工程中调用MATLAB函 ...

  8. MATLAB中SSQJ,基于lqr的一级倒立摆仿真研究

    基于lqr的一级倒立摆仿真研究 综合性实验设计题目:直线一级倒立摆班级:0802姓名:郭长春指导老师:张白莉学号:200807211065摘要倒立摆是一个复杂的多变量强祸合不稳定非线性的系统,借助于这 ...

  9. python调用matlab需要的库_python调用matlab文件

    python和matlab在计算机各具优势,最近在研究一个文字识别的小程序.同时用到matlab和python,matlab负责图片的前期处理,python负责图片的文字识别,需要相互调用.我尝试了很 ...

最新文章

  1. java多图片上传json_SpringMVC框架五:图片上传与JSON交互
  2. 编写函数,模拟内置函数 sorted()。
  3. 赠书 | 《数据驱动:从方法到实践》预售正式开启
  4. 51 nod 1495 中国好区间 奇葩卡时间题 700ms 卡O(n*log(n)), 思路:O(n)尺取法
  5. 关于python测试webservice接口的视频分享
  6. iphone视图放大_如何将iPhone用作放大镜
  7. MATLAB figure中提取数据
  8. .Net Core 商城微服务项目系列(二):使用Ocelot + Consul构建具备服务注册和发现功能的网关...
  9. 《转》不要过打折的生活,当你发现这些你有了,说明你开始成熟了
  10. android x86 笔记本卡屏,笔记本死机卡屏怎么办
  11. Windows函数错误处理
  12. Atitit m4a文件元数据结构 目录 1. 一、基本概念 1 2. MP4文件由若干称为Atom(或称为box)的数据对象组成, 2 2.1. MP4文件概述 2 2.2. M4A没有视频流而已
  13. C++ 类(继承中的构造和析构)
  14. 计算机提示资源管理器停止,电脑重复弹出“windows资源管理器已停止工作”怎么处理...
  15. 邮箱登录名身份证号码等验证
  16. 【联邦学习】横向联邦学习(Horizontal Federated Learning,HFL)
  17. 在直播软件搭建中,如何基于rtmp实现视频直播?
  18. mmdetection安装教程 | 踩坑总结
  19. 你对前端开发岗的看法
  20. Discuz中常用数据库操作

热门文章

  1. PCB Stack设计规范
  2. Https/Tcp抓包工具Charles、fiddler,ping (网络诊断工具),Android平台HTTPS抓包解决方案及问题分析HttpCanary
  3. Java微服务性能优化
  4. jira是干什么_JIRA简介及基本概念
  5. 优化理论在计算机中的应用软件是指,最优化:理论、计算与应用
  6. js+jq实现坦克大战
  7. 餐饮水单打印软件_火锅配送用哪款生鲜配送软件好?
  8. 复旦大学2016--2017学年第一学期高等代数I期末考试情况分析
  9. 【Java学习从入门到入土,手把手吧基础知识填充进你的大脑】
  10. 11 | 你能写出正确的网址吗?