基于Matlab的语音识别系统设计

这篇具有很好参考价值的文章主要介绍了基于Matlab的语音识别系统设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘 要

  本文主要介绍并运用了高斯混合模型(GMM)和MFCC(Mel频率倒谱系数)这两个算法来实现语音识别的过程。用高斯函数最大程度的近似表示信号的概率。首先,对语音信号进行预处理;其次通过Mel倒谱系数MFCC提取语音特征参数;设置一个模板库,用来存储大量并已提取特征参数的语音信号;将待识别的语音信号与模板库中的语音信号经过同一通道后进行比较,最终得到比较结果。由于在程序中难以观察到结果,故添加了MATLAB GUI界面,用户可以通过操作MATLAB GUI界面中的按钮观看到语音识别的基本过程,并且最终的识别结果也会清晰的显示在界面上。本次设计经过多次的实际操作,语音识别正确率可达百分之九十左右。
关键词:MATLAB GUI,GMM,MFCC

一、系统介绍

1.1 课题研究主要内容

(1)本文主要围绕国内外语音识别技术的研究背景,意义和研究现状。语音识别技术之所以吸引了各国科学界的关注的原因,对于人类来说具体的重要意义。
(2)本文对语音识别技术设计系统方案,根据软件代码编写思路,介绍了高斯混合模型(GMM)的数学原理和算法及语音信号的预处理、语音信号的特征参数提取,语音识别的过程,还介绍了MFCC的算法。
(3)最后对程序的运行和设计做了简要介绍,也表明对本次毕业设计的总结及对课题设计的展望。

1.2 课题研究方法

(1)理论推导+文献研究法:根据所学的专业理论知识和查阅相关的专业书籍,针对语音识别研究目的以及课题的需要,对语音识别技术研究进行全面系统的设计和选择设计的方案。从而全面了解语音识别技术,不断发现问题,解决问题。
(2)仿真法:用MATLAB对设计的语音识别系统进行仿真、调试,并不断加以改进。
(3)实验法:对设计出的系统进行试验分析,不断改进直至达到预期效果。

1.3 方案设计思想方法

  本文语音识别系统以MATLAB软件为平台。语音识别系统本质上是一种模式识别过程,首先输入需要识别的语音信号;其次对输入的语音信号进行分析和处理以过滤掉冗余信息;之后是提取出语音信号中具有区分性的语音特征,建立语音识别所需的参考模式库,并把处理过的语音特征保存到模板库;最后语音信号经过相同信道得到的语音参数与模板库里的语音匹配得到最终识别结果[4]。其研究基本思路方法如下图1.1展示。
对截取到的语音信号进行识别,matlab,matlab,语音识别,开发语言

图1.1 语音识别流程

二、提取语音信号特征参数

.1 MFCC概述
  梅尔频率倒谱(简称MFCC)是一种基于人类听力的模型,主要基于频率作为基本特征。它将频谱转化为基于梅尔标度频域提取出来的非线性频谱,然后将其转换为倒谱域上。用滤波器组计算MFCC参数,频带在梅尔刻度上是等宽的,信号能量通过滤波器输出,用作信号的基本特征,再进一步的处理,就可以作为语音信号的输入特征。由于人类的听觉特性,在不做任何前提假设和无限制的情况下,使用MFCC提取语音信号特性参数具有出色的抗干扰和识别能力。MFCC的过程主要是把经过预处理后的信号前后经过分帧、加窗、快速傅里叶变换(FFT)、Mel滤波器组、对数运算、离散余弦变换(DCT)、动态差分参数(一阶差分和二阶差分参数)的提取。对信号进行帧化并进行汉明窗处理,然后通过短时傅立叶变换获得频谱,并对频谱进行平方,即能量谱。然后用m个Mel带通滤波器进行滤波,对每个滤波器的输出进行对数运算,以获得对应频带对数的功率谱,并进行离散余弦变换。获得的MFCC特征用作静态特征以提取动态差分参数,得到动态特性[6]。提取语音信号过程与下图3.1所示。
对截取到的语音信号进行识别,matlab,matlab,语音识别,开发语言

图3.1 语音信号提取参数流程
3.2 语音信号的截取
  在MATLAB中对语音信号的截取主要是通过epInSampleIndex=epdByVol(y, fs)函数来实现的,信号的MFCC特征参数可以通过melcepst函数计算[7]。人在说话的时候可能会有停顿且说话时也不能一次性表达完整,所以本次设计采取端点检测法,能在一段语音信号中准确检测出信号的始端和终端。系统对语音进行端点定位,然后去除语音前后多余的噪音段,所以本次语音识别设计采用端点检测法截取有效的语音信号。利用具有短期能量和短时平均过零率的特性的双门限算法,实现了语音信号端点的检测,有效消除语音的无声部分引起的噪声,减少处理信号的时间,提高性能[8]。
3.3 分帧
  语音信号只有处于平稳的状态时才能更好地对信号进行处理和分析,由于语音信号具有短期稳定的特点,在短时间里能维持它的基本特征,因此要采用短期分析技术。把语音信号进行帧处理来变成平稳的状态,即分割成多个片段,这可以通过重叠信号来实现。移帧是指两个帧之间的重叠的部分。通常情况下,语音信号的帧长约为20ms,可以看做处于平稳的状态,帧移和帧长的比率通常是0-0.5。可用enframe函数对语音信号进行分帧。
3.4 加窗
  在对语音信号进行分帧后,每一帧都会出现间断或重叠,且分割的帧越多,原始信号的误差越大,故在帧处理后要进行加窗,加窗后可以增加语音信号的连续性,且每一帧都能表现出周期函数的特性。故在本文对语音信号的处理中,增加的是汉明窗,用hamming函数来实现加窗。

三、MATLAB GUI与程序流程设计

4.1GUI界面的设计

  创建一个GUI界面,在命令行中输入guide,然后按回车,如下图4.1所示。
对截取到的语音信号进行识别,matlab,matlab,语音识别,开发语言

图4.1 创建GUI界面
  启动GUIDE快速入门,选择Blank GUI(Default),然后单击“确定”按钮,如下图4.2所示。
对截取到的语音信号进行识别,matlab,matlab,语音识别,开发语言

图4.2 选择保存界面
之后出现主界面,即用户使用的图形界面。在图形用户界面中添加程序所需的按钮或图标,就可以实现程序的操作。如下图4.3所示。在学习GUI界面中,我们必须了解主界面中每一个图标的含义,从而正确语音识别设计所需要的操作按钮。
对截取到的语音信号进行识别,matlab,matlab,语音识别,开发语言

图4.3 GUI界面

4.2 程序流程设计

4.2.1 创建文件

  首先创建YUYINSHIBIE.m文件,先设置一个全局变量sc,把sc附一个内容并显示在listbox2上,并在listbox2上显示“请选择需要训练的语音库”这一字样。

4.2.2 录制语音库

  下面对现场录音识别进行操作,用户在“请输入需要录制的语音名称”这一可编辑文本框里输入想命名的文件名,点击录制语音库,此时界面上显示“开始录音”,本次设计是6秒的语音录制,6秒过后,界面则显示“结束录音”,保存文件并在界面上可显示文件保存的路径。如下图4.7所示。
对截取到的语音信号进行识别,matlab,matlab,语音识别,开发语言

图4.7 录制语音库

4.2.3 添加语音库

  接下来对按钮1进行编辑,如下列程序所示,把按钮1命名为“添加语音库”。需要先设置一个全局变量,读取文件夹的路径代码,然后读取文件夹里的说话人数,如果文件夹里没有语音文件,在listbox2中提示“抱歉,请在文件夹中放入需要训练的语音”,如果文件夹里有语音文件则显示“需要训练的语音有’,num2str(speakerNum),'个”,如下图4.8所示。
对截取到的语音信号进行识别,matlab,matlab,语音识别,开发语言

图4.8 添加语音库

4.2.4 提取并训练语音库

  下列程序是对按钮2,编辑成“提取并训练语音库”。在listbox2中提示用户“正在提取第’,num2str(i),'个人”,并停顿0.5秒,让用户更直观的观察。这段程序是实现经过预处理和高斯混合模型(GMM)),提取语音信号的特征并将其保存在一个模式库中,如下图4.9所示。
对截取到的语音信号进行识别,matlab,matlab,语音识别,开发语言

图4.9 提取训练语音库

4.2.5 选择识别语音

  下列程序是对按钮3,编辑成 “选择识别的语音”。这段程序是让用户选择需要识别的语音文件,并对它进行预加重、特征提取等步骤。如下图4.10所示。
对截取到的语音信号进行识别,matlab,matlab,语音识别,开发语言

图4.10 选择识别语音

4.2.6 语音识别

  下列程序是对按钮4,编辑成“开始识别”。这段程序是把选择的语音信号文件与模式库中的语音文件进行对比,得出的最终识别结果会显示在listbox2上,如下图4.11所示。
对截取到的语音信号进行识别,matlab,matlab,语音识别,开发语言

图4.11 识别结果

四、结论

  通过这次毕业设计的制作与编写,我有了非常多的收获常言道,一个好的开始意味着成功的一半。在这次毕业设计的选题当中,我选择了一个自己非常感兴趣的题目,本课题研究的是基于Matlab的语音识别系统设计。在该次论文的编写上,我首先对语音识别技术做了一个基本的介绍,然后在分析语音信号的基础上,采用高斯混合模型(GMM)和MFCCC参数算法来保证语音特征识别的准确性。同时为了更直观的观测到语音识别的结果和实现算法的运行,利用MATLAB编写图形界面GUI。除此之外介绍了语音识别的各个功能模块,编写了一套基于MATLAB的语音识别程序,在编写程序中遇到了许多的困难,不断地查阅文献和请教老师同学。也介绍了程序的设计和运行。通过MATLAB强大的算法功能,能够非常准确地实现语音识别的检测。

五、 目录

目 录

第1章 绪 论 1
1.1 语音识别技术的研究背景与意义 1
1.2 文献综述 1
1.2.1 国内研究 1
1.2.2 国外研究 2
1.3 课题研究主要内容 2
1.4 课题研究方法 3
1.5 方案设计思想方法 3
第2章 高斯混合模式及语音信号的预处理 4
2.1 高斯混合模式(GMM)介绍与数学原理 4
2.2 语音信号的数字化处理 5
2.3 预加重处理 5
2.4 预滤波处理 5
第3章 提取语音信号特征参数 6
3.1 MFCC概述 6
3.2 语音信号的截取 6
3.3 分帧 7
3.4 加窗 7
3.5 快速傅里叶变换(FFT) 7
3.6 应用Mel滤波器组 7
3.7 对数运算 8
3.8 离散余弦变换(DCT) 8
3.9 动态差分参数的提取 9
第4章 MATLAB GUI与程序流程设计 10
4.1 MATLAB GUI 10
4.1.1 MATLAB GUI的背景介绍 10
4.1.2 GUI界面的设计 10
4.2 程序流程设计 13
4.2.1 创建文件 13
4.2.2 录制语音库 14
4.2.3 添加语音库 14
4.2.4 提取并训练语音库 15
4.2.5 选择识别语音 16
4.2.6 语音识别 16
4.2.7 退出 17
第5章 总结与展望 18
5.1 总结 18
5.2 展望 18
参考文献 19
致谢 20
附录 21文章来源地址https://www.toymoban.com/news/detail-766571.html

到了这里,关于基于Matlab的语音识别系统设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于matlab的语音识别系统

    一 . 设计任务及要求 1.1设计任务 作为智能计算机研究的主导方向和人机语音通信的关键技术,语音识别技 术一直受到各国科学界的广泛关注。以语音识别开发出的产品应用领域非常广泛,有声控电话交换、语音拨号系统、信息网络查询、家庭服务、宾馆服务、 旅行社服务

    2024年01月17日
    浏览(47)
  • 【语音识别】BP神经网络语音特征信号分类【含Matlab源码 2338期】

    获取代码方式1: 完整代码已上传我的资源:【语音识别】基于matlab BP神经网络语音特征信号分类【含Matlab源码 2338期】 点击上面蓝色字体,直接付费下载,即可。 获取代码方式2: 付费专栏Matlab语音处理(初级版) 备注: 点击上面蓝色字体 付费专栏Matlab语音处理(初级版

    2024年02月21日
    浏览(46)
  • 基于matlab的语音信号处理

    摘要 利用所学习的数字信号处理知识,设计了一个有趣的音效处理系统,首先设计了几种不同的滤波器对声音进行滤波处理,分析了时域和频域的变化,比较了经过滤波处理后的声音与原来的声音有何变化。同时设计实现了语音的倒放,变速播放,回响,音调转换等处理效果

    2024年02月08日
    浏览(49)
  • 基于MATLAB车牌识别系统设计

    基于MATLAB车牌识别系统设计   智能交通系统已成为现代社会道路交通发展趋势。在智能交通系统中,车牌自动识别系统是一个非常重要的发展方向。对于车牌识别系统的要满足当车辆通过摄像头采集车辆图片,将其图片进行图像预处理、车牌定位、字符分割、字符识别、输

    2024年02月06日
    浏览(53)
  • 毕业设计——基于ESP32的智能家居系统(语音识别、APP控制)

    多种控制方式 ① 语音控制 ②APP控制 ③本地按键控制 ESP32嵌入式单片机实战项目演示  这一个基于esp32c3的智能家居控制系统,能实现语音、app和按键控制。有手动和自动两种模式,自动模式下会根据当前的光照强度控制灯的亮灭,当温湿度达到设定值之后报警器会响。而且

    2024年04月25日
    浏览(112)
  • 毕业设计——基于STM32的智能家具系统(语音识别控制、步进电机、舵机)

    智能家具系统分为两个不同版本系列: ①系列一:手机app远程控制、远程检测温湿度显示在app,(云平台)!!!!                   https://blog.csdn.net/m0_59113542/article/details/123737710 ②系列二:语音识别控制-------本文章 硬件采购链接: 步进电机及相关驱动 ULN2003步进电机驱动

    2024年02月05日
    浏览(76)
  • 毕业设计-基于 MATLAB 的车牌识别系统设计

    目录 前言 课题背景和意义 实现技术思路 一、车牌识别系统总体方案设计 二、车牌识别系统硬件设计 三、车牌识别系统软件设计 四、 实验结果与分析 部分源代码 实现效果图样例 最后     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升

    2023年04月18日
    浏览(97)
  • 【语音识别】基于matlab小波变换DWT 0-9数字语音识别【含Matlab源码 3715期】

    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。 🍎个人主页:海神之光 🏆代码获取方式: 海神之光Matlab王者学习之路—代码获取方式 ⛳️座右铭:行百里者,半于九十。 更多Matlab仿真内容点击👇 Matlab图像处理(进阶版) 路径规划

    2024年02月03日
    浏览(42)
  • 基于MATLAB的说话人语音识别

    基于 MATLAB 的说话人 语音识别                           目录 系统设计任务及要求………………………………………………3 语音识别的简介……………………………………………………3 三、语音识别原理………………………………………………………3 3.1语音识别

    2024年01月18日
    浏览(40)
  • Matlab语音识别系统

    目录 设计任务及要求………………………………………………1 语音识别的简单介绍 2.1语者识别的概念……………………………………………2   2.2特征参数的提取……………………………………………3   2.3用矢量量化聚类法生成码本………………………………3   2.4VQ的

    2024年02月01日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包