基于matlab的语音识别系统设计
来源:互联网 发布:c 变量已被优化掉 编辑:程序博客网 时间:2024/04/29 20:58
这是上学期跟老师做的一个创新实验项目,当时老师给我推荐了一本书好像叫“matlab扩展编程”,看了真是受益匪浅啊。
花了大半个月做出了这么个小东西,识别出语音命令,执行相应操作,比较幼稚,但识别率是相当高的,识别0到9九个数字
时除了2和8有时分不清外,其他都很好,识别开灯关灯之类的命令几乎没有错过。共享给大家参考参考吧。
这个是begin.m,必须先运行它,用来启动串口,我是用串口通过单片机控制灯亮灭的。
begin.m:
g=serial('com6');g.InputBufferSize=4096;g.timeout=0.6;g.BaudRate=9600;g.Parity='none';g.StopBits=1;g.Terminator='LF';f.FlowControl='hardware';fopen(g);串口要选和单片机相连的口,我这是6。
还有语音命令录制文件
luzhi.m:
fs=8000;mingling=('关灯开灯闪烁快闪狂闪脉冲');display('即将录制参考模板语音,请做好准备。')i=wavrecord(fs,fs);help vadhelp mfccclcfor i=1:6 fprintf('请说出"%s%s"……', mingling(i*2-1),mingling(i*2));yuyin=wavrecord(fs*2,fs,'int16'); fprintf('正在计算%d的参数……',i-1)x = yuyin;[x1 x2] = vad(x);m = mfcc(x);m = m(x1-2:x2-2,:);ref(i).mfcc = m; clear yuyin x x1 x2 fprintf('计算完成。\n')endclear i m x1 x2save muban.matclear根据屏幕提示做就行了,注意时间。
然后就可以进行语音识别了,运行shibie.m说出你刚才说的命令就可以了。
shibie.m:
load muban.matdisp('请发出一个命令:');x=wavrecord(fs*2,fs,'int16');[x1 x2] = vad(x);m = mfcc(x);m = m(x1-2:x2-2,:);xcanshu = m;disp('录音结束');disp('正在进行模板匹配...');dist = zeros(1,6);for j=1:6 dist(1,j) = dtw(xcanshu, ref(j).mfcc);enddisp('正在计算匹配结果...')[d,j] = min(dist(1,:));fprintf('语音输入的识别结果为:%s%s\n',mingling(2*j-1),mingling(2*j));fwrite(g,47+j); %发送命令fwrite(g,47+j); %发送命令%out=fread(g,5,'uint8') %接受5个数fprintf('命令已发出');
玩够了别忘了把串口关掉。
tingzhi.m:
fclose(g);delete(g);clear
注意里面用到了一些voicebox工具箱的文件,分别是:dwt.m(动态弯折算法),enframe.m(分帧用的),melbank.m(好像是分段用的,我也忘了),mfcc.m(这个是核心文件,马尔科夫模型就在这里面),vad.m(这个好像是显示吧)。
voicebox工具箱网上都有的,我就不上传了,大家自己找找吧,很好找的。
- 基于matlab的语音识别系统设计
- 第13章 基于MATLAB的语音识别系统
- 基于智能语音识别的云电视系统设计
- 语音识别系统中增加图像识别技术的设计
- 基于语音类 应用的识别和 跟踪系统
- 基于Julius的机器人语音识别系统构建
- 基于语音识别的微博签到系统
- iOS开发 基于系统原生的语音识别助手
- 基于科大讯飞的语音识别
- 鲁棒性语音识别系统设计与实现
- 基于Matlab的BP神经网络在语音特征信号识别中的应用
- 基于matlab的bp神经网络在语音特征信号识别中的应用
- 基于MATLAB的EAN-13条码识别系统
- 基于USB2.0的语音数据采集系统设计
- 【语音识别】日语语音识别系统Julius(v4.4)的基于DNN的识别(5月8号:识别结果更新)
- 求解matlab语音识别
- 基于TMS320VC5509A的语音识别与控制系统
- 基于DBN的语音识别技术分析
- 如何选择虚拟机
- int main(int argc,char *argv[])中参数的意义
- 学习
- VC中CPropertySheet 属性对话框
- 浅析反射、工厂和配置文件
- 基于matlab的语音识别系统设计
- 面试题:输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
- Android Emulator UnknownHostException 解决方案
- Hibernate chapter2 各表连接查询配置
- 自定义标签库开发
- 【任务分配】解题报告
- .NET将数字转换为人民币大写;泛型;11.8
- 如何在Tomcat中配置数据源?如何使用其数据源对象?
- POJ1201:Intervals(差分约束系统)