基于matlab的声音采集图形界面的设计和实现

时间:2022-03-05 09:32:51

基于matlab的声音采集图形界面的设计和实现

摘要:该文介绍了利用matlab软件驱动声卡采集声音的一种人机交互的图形界面的方法。

关键词:matlab;声音信号;信号采集;图形界面

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2013)19-4527-02

本文是计算机辅助中医诊断治疗项目课题的一个分支研究项目——声音采集处理系统的分支课题。中国传统医学的主要诊断疾病的方法是:望、闻、问、切。其中“闻”就是听患者的声音来诊断病情。计算机辅助诊断病情主要是利用计算机在定量分析问题的准确与快捷的优点。对病情的诊断需要声音信号的处理,而这个前提就是让计算机获取声音信号,即信号采集。又由于matlab处理声音比较方便。所以基于上述需求设计一个便捷的声音信号采集的人机交互图形界面。

1 基于matlab的图形界面设计

本文设计的图形用户界面包括以下主要功能:声音的采集与储存;录入声音时实时显示声音波形图像;声音波形图像的存储;声音文档的读出;声音波形图像的读出。该文利用matlab自带的GUIDE设计声音采集图形界面。该界面包括两个坐标轴,分别用于显示录入时实时声音波形和显示打开储存声音的波形。该界面有5个菜单按钮,分别为:开始采集声音、停止采集声音、声音数据的保存、时域波形的保存、打开声音数据。以上按钮能够比较好地实现用户对该界面的人机互动和对该系统的功能需求。该界面的功能按钮如图1所示。下面内容将详细介绍该界面功能的实现。

2 matlab驱动声卡实现对语音信号的采集

本小节主要简单介绍matlab实现声音信号采集的主要库函数的用法。Matlab的库函数analoginput可实现对模拟信号的采集。可以定义AI = analoginput ('ADAPTOR'),其中'ADAPTOR'是设备的名称。函数analoginput的输入参数选项中的’ winsound’表示是微软Windows操作系统下的计算机声卡对声音的采集。为此,在GUI“开始采集声音”按钮的句柄要设置一个模拟信号变量AI = analoginput('winsound')。matlab软件支持多通道音频输入,但是必须要有支持多声道输入的声卡支持,该文使用单声道声卡,所以调用matlab的库函数addchannel(AI,1),其中addchannel的第二个参数1表示增加一个通道。 set (AI ,′SampleRate′, value) 是设置声音信号采样率。Value取值根据实际需求来确定,必须满足奈奎斯特采样定理。set(AI,'SamplesPerTrigger',value)是设置采集声音的长度,可以用秒作为单位也可以用采集的样本个数作为单位。Start(AI)函数打开声音采集的对象,一旦触发立即开始采集声音。而stop(AI)则是停止采集声音信号,即用户干预声音采集的过程,已经得到想要的声音信号,功能按钮“停止采集声音”就是通过stop(AI)实现的。通过主要运用以上函数就可以实现声音信号的采集。

3 声音数据的保存和播放以及声音信号时域波形图的保存

声音数据保存按钮的功能由uiputfile函数以及wavwrite函数实现。uiputfile函数是个标准保存文件对话框函数。其第一个参数是默认当前文件夹的默认文件名称,用户只需要点击“确定”按钮文件就会按照默认当前文件夹的默认文件名称存储,第二个参数'Save file name'表示可以由用户选择文件的存储名称和存储路径。wavwrite(y,Fs,nbits,wavefile) 函数的功能是写入Microsoft的wave(”.wav”)声音文件。其中参数”y”是声音信号的数据,” Fs”是采样率默认值为11025Hz,参数” nbits”表示声音信号数据的位数类型,而根据声音信号数据是整型或浮点型又有所区别。参数” wavefile”表示文件的名称和路径。

同样“时域波形的保存”功能按钮需要用到uiputfile函数。由于是画波形图,用到plot函数,如图2所示。具体为plot(handles.t,handles.data),其中handles.t是句柄返回的时间参数,handles.data是句柄返回的声音信号幅值参数。波形图像的保存用saveas( h, name, format )函数,该函数可以将图像以用户需要的格式保存某个路径上,其中“h”是GUI返回的句柄。

“打开声音数据”功能按钮实现的是播放以及存储的声音文件的功能。该按钮的功能主要通过uigetfile函数和sound函数实现。Uigetfile函数与uiputfile函数类似,只不过Uigetfile函数是个标准的打开文件的一个对话框函数。sound函数的功能则是把已经以向量形式存储起来的声音数据以声音的形式播放出来,其还有采样率和比特率的参数可供用户选择。

4 总结

本文介绍了基于matlab的声音采集图形界面的设计,该系统在声音采集播放等方面利用matlab的库函数,加快了研究的进程,避免了应用其他工具的繁琐性。Matlab库函数提供了丰富的输入参数,可以灵活地对参数进行修改,以适应不同的测试条件,达到最佳实验结果。

利用matlab 编写程序实现对声音信号的采集、存储、声音时域波形图的存储、声音的读取等功能。构建这个数据采集系统具有高精度、实时性能好、人机交互界面友好等优点。

参考文献:

[1] 陈璇,李启海,朱万彬,等.基于声卡和MATLAB 的音频信号的采集和处理[J].2010,33(3):71-74.

[2] 李亚微,郭敏.基于MATLAB 的音频数据采集系统[J].电声技术,2007,31(3):57-58.

[3] 付俊庆,李凤玲.MATLAB 环境下的实时数据采集方法[J].测控技术,2004,23(1):30 -32.

[4] 姜占才,袁海良.基于声卡和MATLAB 的数据采集和分析系统[J].青海大学学报,2006,24(6):67-69.

[5] 常春,倪铭.基于MATLAB 和声卡的虚拟仪器设计[J].自动化与仪器仪表,2005(3):23-25.

[6] 薛年喜.MATLAB 在数字信号处理中的应用[M].北京:清华大学出版社,2003.

上一篇:虚拟仪器技术在智能反向寻车系统中的应用 下一篇:计算机信息管理系统及应用探析