基于声卡的声音识别系统.docx
- 文档编号:23211358
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:13
- 大小:223KB
基于声卡的声音识别系统.docx
《基于声卡的声音识别系统.docx》由会员分享,可在线阅读,更多相关《基于声卡的声音识别系统.docx(13页珍藏版)》请在冰豆网上搜索。
基于声卡的声音识别系统
基于声卡的声音识别系统
学生所在学院:
学生所在班级:
学生姓名:
指导教师:
摘要
声音识别系统利用PC声卡对声音进行采集。
在LabVIEW中对采集的信号进行存储和重载,并对音频信号处理后提取关键参量进行比对。
比对结果比较准确,可以判断录入声音和密钥声音的相似性,实现密钥功能。
系统具有成本低,交互性高,便捷的优点,具有一定的应用前景。
关键词LabVIEW声卡声音识别信号处理
一.系统设计背景
1.1声卡工作原理
要用虚拟仪器技术完成一个测量任务,一般需要计算机配备具有一定性能的数据采集卡,而价格便宜的声卡是计算机的标准配置。
声卡作为声音信号与计算机的通用接口,其基本工作流程为:
输入时,麦克风或线路输入(LineIn)获取的音频信号通过A/D转换器转换成数字信号,送到计算机进行播放、录音、等各种处理;输出时,计算机通过总线将数字化的声音信号以PCM(脉冲编码调制)方式送到D/A转换器,变成模拟的音频信号,通过功率放大器或线路输出(LineOut)送到音响等设备转换成声波。
声卡不仅价格低廉,而且兼容性好、性能稳定、灵活通用,驱动程序升级方便。
如果测量对象的频率在音频范围,而且对指标没有太高的要求,就可以考虑使用声卡取代常规的DAQ设备。
而且LABVIEW中提供了专门用于声卡操作的函数节点,所以用声卡搭建数据采集系统是非常方便的。
1.2声音识别技术
网络安全建立在密码等个人信息基础上,各种卡、帐号、网络登录号等都需要输入密码,而因忘记密码而无法进入的情况时有发生。
若采用生物信息作为密码,则可以很好的解决这一问题。
常用的生物信息如声音、手印、指纹等。
声音识别技术和签名识别相同,都属于行为识别技术。
声音识别是一项根据语音波形中反映说话人生理和行为特征的语音参数,自动识别说话人身份的技术。
它的基本原理是通过分析人的声音,为每个人构造一个独一无二的数学模型,有计算机对模型和实际输入的语音进行精确匹配,根据匹配结构辨认出说话人。
声音识别的优点是非接触识别,用户较易接受。
但由于声音变化的范围较大,很难进行精确匹配;且采集的声音会随着音量、速度和音质的变化而变化,进而影响识别;另外,用录在磁带上的声音也可能欺骗声音识别系统。
1.3LabVIEW软件
LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)是一种程序开发环境,由美国国家仪器(NI)公司研制开发。
与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。
LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。
LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。
LabVIEW是一种用图标代替文本行创建应用程序的图形化编程语言。
传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。
LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。
用户界面在LabVIEW中被称为前面板。
使用图标和连线,可以通过编程对前面板上的对象进行控制。
这就是图形化源代码,又称G代码。
LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。
在LabVIEW“函数选板”“编程”“图形和声音”“声音”“输入”子选板上有LabVIEW提供的声卡输入函数,包括配置声音输入vi,启动声音输入采集vi,读取声音输入vi,停止声音输入采集vi,声音输入清零vi,此外还有声卡输出函数等,操作起来比较方便。
二.系统设计目的和意义
本次专业实训旨在熟悉和掌握虚拟仪器和LabVIEW图形化编程语音的基础知识。
通过自主设计一个完整系统,了解LabVIEW编写程序的详细流程。
同时有助于提高查阅文献的能力和自主学习的能力,以及运用所学知识解决复杂工程问题的能力,提高设计能力和实验技能,为以后进行毕业设计、就业等打下基础。
三.系统设计思路
3.1系统功能概述
样本声音定义为系统所有者自己设定的“声音密钥”,待检声音定义为任意用户输入的声音。
从使用者的角度,可以将系统大致分为两个大模块:
(一)样本声音输入模块:
合法用户向系统输入自己的声音,作为唯一的“声
音密钥”。
(二)声音识别模块:
任意用户向系统发出申请,输入自己的声音,系统将对
其进行识别,并对正确的“密钥”输入进行响应,若匹配则指示灯亮。
3.2系统流程图
如图所示为系统的流程图:
图1声音识别系统工作流程
系统的核心是声音匹配。
声音的匹配是严格的,不仅要求说话者说的是某句话,也需要说话者是同一个人。
识别过程中对用户的说话声音的基础特征有配对要求。
这需要对声音的音频有准确的记录和配对。
但是这可以是声音密码锁的一大好处,习惯的语速总是难以被人模仿的,因而其可靠性得以提高。
在采样与配对的过程中,声音的分析是关键,在转换过程中无法避免出现的失真需要尽量的减少,否则声音密码锁的精确度将受到很大的限制。
而所提供的硬件在这方面可能不能实现的很好,只能尽量做到精确,减小失真度。
四.程序设计介绍
在LabVIEW中所建立的系统两大块子vi实现以上的流程:
1.样本声音录用和保存子vi,这一部分实现了样本声音采集和声音保存的功能。
2.波形比对识别子vi,这一部分实现了待测声音的录入,样本声音的调用,比
对和最终的门锁控制。
在LabVIEW中的“函数选板”à“编程”à“结构”中选择条件结构,将枚举vi接入分支选择器,选择器标签设为“声音录入”和“声音比对”,分别编写上述两个模块的程序框图。
4.1声音录用和保存模块
4.1.1声音采集
(一)声卡设置
程序首先对声卡进行设置,使用簇常量将声卡的采样率设为44100Hz,通道形式设为双声道,采样位数设为16bit。
(二)按钮模块
为了提高交互性,在前面板生成一个“开始录音”按钮,只有当用户单击按钮时,才开始准备录制声音。
算法实现为:
外层为While循环,将出错信息和“开始录音”按钮取“或”,作为循环停止的条件。
这样,在单击“开始录音”按钮之前,系统一直处于执行这一循环状态,即等待录制命令的下达;当单击“开始录音”按钮之后(或有出错信息),程序将跳出这一循环,开始进入到后面的录制环节。
具体程序如图2所示:
图2声卡设置及按钮模块程序设计
(三)等待模块
在用户单击“开始录音”按钮后,程序进入这一模块。
此模块的功能是:
当用户还没有发出声音时,系统不会将声音录入;只有当系统检测到的声音信号幅值超过一个设定阈值后,才开始对声音信号进行采集。
这一模块的作用是避免系统对声音的错误记录。
算法实现为:
外层为While循环,每循环一次,就将声卡采集的信号用“提取单频信息”模块提取波形的主频率的幅值进行检测。
当幅值高于设定的门限(15)时,退出While循环,进入后面的录制程序模块。
具体程序如图3所示:
图3等待模块程序设计
(四)录制模块
当有声音信号输入时,就进行一次信号采集,然后等待下一次输入,直到按下“停止”按钮或者记够6次(6位密码)。
算法实现为:
用While循环对输入的声音信号进行依次采样,每次采集前都需要进入等待模式,以防止声音的错误记录。
具体程序如图4所示:
图4录制模块程序设计
4.1.2录入声音处理
由于声音录入过程中混入大量杂音,所以录入声音后,必须对声音进行放大和滤波。
在程序中,选择将波形放大100倍。
又由于人的声音在一定频率范围之内,所以为了使得录入声音更加准确,要滤去用户声音之外的其他噪声。
滤波器的参数设置为:
选用带通滤波器,低频截止频率设定为150Hz,高频截至频率设定为2000Hz。
原因如下:
对系统产生干扰的杂音频率均较低,集中在几十赫兹。
这样,通过150Hz的截止频率就可以将杂音部分滤除,改善采集声音的质量;而高于2000Hz’的频率事实上不应该作为用户发出声音的主频率,通过对高频的滤波就可以避免系统对主频率的误判断。
另外,为了提高滤波器的选频特性,选择有限长冲击响应滤波器,并将抽头数设为401。
如图所示为滤波器程序设计。
如图5所示:
图5对录入声音进行放大、滤波、存储程序设计
4.1.3录音保存
采集数据并将数据发送到缓存,然后通过“写入测量文件”vi将来自波形或波形数组的数据写入lvm文件。
通过这些vi便可以实现声音信号的采集,并将其存储为lvm格式的文件。
完整程序框图如图6所示:
图6声音采集子vi
在整个“声音录入”子vi中,使用了平铺式顺序结构,将按钮模块和录音保存模块分开,这样在结构上更加合理,防止误判。
上述操作已经完成了声音的录用和保存,下面将对声音进行比对和判断。
4.2波形对比识别模块
4.2.1用户开锁声音录用
类似于第一个子vi中对“密钥”声音的处理,对“开锁”声音一样采用放大和数字带通滤波器进行处理,并且显示出“开锁”声音的频谱波形,使用户对声音有直观的认识。
4.2.2样本声音“密钥”调取
基于波形存储中的文本测量文件(.lvm),通过“读取测量文件”模块对声音进行调取,同时显示出声音的频谱波形。
算法实现为:
外层为While循环,每循环一次,即读取一个声音波形数组元素,并显示其频谱,当单击“停止读取样本文件”按钮或者“读取测量文件”读到文件尾时跳出这一循环,开始进入声音比对判断模块。
具体程序如图7所示:
图7样本声音调取模块程序设计
4.2.3声音比对判断
声音的比对和判断是这个程序的核心内容,所以也是本次设计的重点内容。
算法实现为:
分别使用“取整”模块对从“提取单频信息”模块中得到的样本声音和待测声音的频率和幅值序列取整数,再对取整后的两个时间频率序列和两个时间幅值序列各自做比较(设定一个样本的误差范围,看待测时间序列值是否在该范围内),将比较结果送入LED灯阵列。
若待测声音频率和幅度序列均在设定的样本声音误差范围内,则相应的LED灯响应。
当所有元素均在阈值范围内时,表示声音完全匹配。
程序如图8所示:
当用户选择“声音比对”后,则整个系统执行波形比对子vi,并且通过指示灯显示比对结果。
整个模块采用平铺式顺序结构,将待测声音的录入设为第0帧,样本声音调取设为第1帧,声音比对判断设为第2帧。
如图9所示为声音比对子vi完整截图:
图9声音比对子vi
五.结果分析
整个程序前面板如图10所示:
图10系统前面板
由于本次设计的算法较简单,仅仅是提取声音信号中幅度最高的单频,故要求用户以特定语速说一句特定的话才能被系统正确识别。
设定密码为6位,如930308,在声音比对vi以同样的语速输入930308时,有80%左右的绿灯亮,表示基本匹配,而当语音录入的内容和设定密钥完全不相关时,则基本没有绿灯亮。
因此系统基本可以正确对密码声音进行匹配。
其样本声音和其中一次录入的待测声音的幅度和频率序列如图11所示:
图11样本和待测语音频率幅度序列
六.总结
通过本次专业实训,我对虚拟仪器有了基本的认知,对使用LabVIEW编写程序的流程有了初步的掌握。
通过查阅资料,完成任务,提高了自主学习的能力和解决复杂工程问题的能力,对语音识别的一些算法也有了大致的了解,增长了见识。
本次程序设计中,我深刻认识到使用调试工具的重要性,如在声音录用中的录制模块中,两个While循环嵌套,外层为声音的录用,内层为等待模块。
最开始测试程序时,发现按下“停止录音”按钮后,程序无法正常终止。
通过“高亮显示执行过程”工具,发现是内层循环的终止条件存在问题。
通过修改程序,问题得到完美解决,积累了一些经验教训,为以后毕设打下了基础。
参考文献
[1]黄松岭,吴静.虚拟仪器设计基础教程.清华大学出版社.2008.
[2]朱迪.基于LabVIEW的声音密钥系统设计.安徽电子信息职业技术学院学报.2013.
[3]史建峰.基于LabVIEW和MATLAB环境下的语音识别算法研究与实现.[硕士论文].中国科学技术大学.2007.
[4]杜京义,李阿妮.基于LabVIEW平台的语音识别系统的设计.全国虚拟仪器学术交流大会.2009.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 声卡 声音 识别 系统