如何利用Matlab完成数字1-9的语音识别

本文介绍如何利用Matlab构建一个GUI程序,实现1-9数字的语音识别。程序包括录制语音、显示波形图、保存语音、语音识别等功能。通过VAD、mfcc和dtw算法进行语音特征提取和匹配,完成数字识别。
摘要由CSDN通过智能技术生成

第四堂课布置了一个Mission Impossible:如何利用Matlab完成数字1-9的语音识别

要事先准备好1-9数字的图片文件和声音文件。

任务的目标是:制作一个Matlab图形界面程序,它的核心控件是'录制语音'和'语音识别'按钮,主要是用来实现在线录制一段语音,比如'5'这个音,然后点击'语音识别'按钮,就会在程序的上方显示'5'这个数字图片,效果如下图所示:

准备1-9数字的图片文件:

准备1-9数字的声音文件:

接下来,我们来搭建一个Matlab GUI的框架:

它呈现出来的样子是这样的:

(a)左上方是工作目录:根据 .m 文件当前的位置,我们是可以获取当前的工作目录的(利用 fileparts函数和mfilename函数的嵌套可以获取当前工作目录,具体代码见初始化功能模块),然后把工作目录和语音文件所在的文件夹名称合并就可以get到默认的当前工作路径,在初始化的时候,这个路径信息会自动写在当前目录的编辑框中。

(b)左侧专门放置了一个Listbox,通过 Load All按钮可以把语音文件目录中所有文件都载入到 Listbox这个控件中来,如下图所示:

(c)增加了一个import和export两个功能按钮。为什么要这么操作?是因为作为模板的声音文件,最好还是要标准一点,所以语音文件的录制过程往往是需要反复的,录制,显示,播放,如果不满意要重新录制,如此循环直到最后的结果满意为止。等录制的效果令人满意了,你就可以点击'<<' 按钮把当前录制的语音另存为一个文件。可能在后来的使用过程中,对于先前录制的某个语音文件还不是很满意,可以通过 '>>' 载入之前的语音文件(在Listbox里选取的那个文件),听这个语音有什么问题,看看能不能重新录制达到更好的效果。

(d)右侧上方和右侧中间是识别后呈现的数字图片,和录制的语音显示出来的波形图。

(e)右侧下方是一排的按钮,分别实现语音的'录制','显示','播放','保存'和'识别'。(f)这排按钮的上方专门增加了两个文本编辑框(Tag和Label),这两个编辑框在保存语音文件的时候可以标记你保存的文件名。

*** **

这个语音识别程序的算法简单地说是:不管是刚刚录制的语音信息,还是已经录制好的语音文件,都可以通过Vad完成一次切割,然后利用mfcc函数将语音流转换成一个特征矩阵。利用dtw函数,可以计算刚录制的语音和已经生成好的一组语音的分数(当然是按照1-9的顺序排列的),取分数最小的即是识别的数字。

实现语音识别至少有3种实现方法,一种是(比如用Python)直接调用现成的网络API(谷歌的语音识别据说连川普都可以搞定)来实现语音的文本转换,获取语音对应的数字;第二种是dtw结合mfcc的方法,当前的Matlab程序就用的是

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值