基于LabVIEW的声音识别
2021-11-14许凡
许凡
摘要:利用计算机声卡作为声音信号采集的硬件,设计了一个基于LabVIEW和声卡的声音信号采集与识别系统,它可以通过电脑上的声卡采集样本和待测声音信号,并对采集的信号加以存储和显示波形,能够存储的信号进行识别,最终能够实现对声音信号的识别。
关键词:声卡;LabVIEW;声音采集
引言
声音识别系统是利用PC声卡对声音进行采集。在LabVIEW中对采集的信号进行存储和重载,并对声音信号处理后提取关键参量进行比对。比对结果比较准确,可以判断录入声音的相似性,实现声音识别功能。系统具有成本低,交互性高,便捷的优点,具有一定的应用前景。系统的核心是声音匹配。识别过程中对录入的声音的基础特征有配对要求。这需要对声音的音频有准确的记录和配对。但是这可以是声音密码锁的一大好处,习惯的语速总是难以被人模仿的,因而其可靠性得以提高。在采样与配对的过程中,声音的分析是关键,在转换过程中无法避免出现的失真需要尽量的减少,否则声音密码锁的精确度将受到很大的限制。而所提供的硬件在这方面可能不能实现的很好,只能尽量做到精确,减小失真度。
1、硬件设计
笔记本电脑一般使用耳麦二合一接口,没有Line in,因此我们只采集声音信号。首先对声卡进行设置,将声卡的采样率设为44100Hz,通道形式设为双声道,采样位数设为16 bit。
2、软件设计
2.1按钮模块
在前面板生成一个“开始录音”按钮,只有当单击按钮时,才开始准备录制声音。
算法实现为:外层为While循环,将出错信息和“开始录音”按钮取“或”,作为循环停止的条件。这样,在单击“开始录音”按钮之前,程序一直处于执行这一循环状态,即等待录制命令的下达;当单击“开始录音”按钮之后(或有出错信息),程序将跳出这一循环,开始进入到后面的录制环节。
2.2等待模块
在單击“开始录音”按钮后,程序进入这一模块。此模块的功能是:当用户还没有发出声音时,系统不会将声音录入;只有当系统检测到的声音信号幅值超过一个设定阈值后,才开始对声音信号进行采集。这一模块的作用是避免系统对声音的错误记录。
算法实现为:外层为While循环,每循环一次,就将声卡采集的信号用“提取单频信息”模块提取波形的主频率的幅值进行检测。当幅值高于设定的门限(15)时,退出While循环,进入后面的录制程序模块。
2.3录制模块
当有声音信号输入时,就进行一次信号采集,然后等待下一次输入,直到按下“停止”按钮或者记够6次。
算法实现为:用While循环对输入的声音信号进行依次采样,每次采集前都需要进入等待模式,以防止声音的错误记录。
2.4录音保存
采集数据并将数据发送到缓存,然后通过“写入波形文件”vi将来自波形或波形数组的数据写入dat文件。 通过这些vi便可以实现声音信号的采集,并将其存储为dat格式的文件。待测声音的采集和保存和处理与样本声音的类似。
2.5声音识别模块
声音的比对和判断是这个程序的核心内容,所以也是本次设计的重点内容。算法实现为:使用“取整”模块对从“提取单频信息”模块中得到的样本声音和待测声音的频率序列取整数,再对取整后的两个时间频率序列序列做比较(设定一个样本的误差范围,看待测时间序列值是否在该范围内),幅值的比较和频率的类似,最后通过指示灯显示比对结果。若待测声音频率和幅度序列均在设定的样本声音误差范围内,则相应的灯响应。当所有元素均在阈值范围内时,表示声音完全匹配。程序如下图所示:
结论
结果有三种情况,分别是:匹配、不完全匹配、不匹配。两个声音的频率的差值小于等于50,为匹配,两个声音的幅值的差值小于等于0.01为匹配,然后这两个的值相与,指示灯的显示即为最终结果。本文用LahVIEW软件设计的声音识别系统,经仿真测试结果表明,具有一定的实用性为进一步提高系统的识别的准确性,硬件方面可进步提高声卡的性能参数软件方面可对信号分析群分的程序进一步优化。
参考文献:
[1]贺天柱,兰羽.基于声卡的监控系统虚拟仪器设计[J].国外电子测量技术,2012,31(10):58-60
[2] 杨阳,陈永明.声纹识别技术及其应[J].电声技术,2007(2)