实验选修课 虚拟仪器设计与应用
实验报告
姓名:学号:班号:专业:院系:时间:
电子信息类(实验班) 基础教育学院 2015年12月 实验选修课 虚拟仪器设计与应用
基于LabVIEW的 双声道语音录制系统
目录:
一、 二、 三、 四、 五、
设计任务 使用设备 任务分析 设计步骤 结论与展望
实验选修课 虚拟仪器设计与应用
实验摘要:
此次实验要求设计一套语音信号录制系统:PC机上的声卡作为音频信号采集硬件,使用者使用话筒录音,将声音信号由声卡输进计算机,然后由该系统采集音频信号,在最后程序结束以后将该音频文件保存为WAV文件存储到计算机中。
录音系统设计流程为:设置声卡的工作模式和参数,为声卡的正常工作做准备;启动声卡采集输入的信号,并将其数字化,转换成计算机能处理的数据;将声卡采集获得的新数据显示出来,并将它添加到原有信号的存在数组中;停止声卡采集任务,释放占用的系统资源、并将采集的数据按指定格式进行保存。声音质量为双声道;在开始采集前,操作者可根据实际需要,更改采样位数(8位和16位);
关键字:多声道、采样位数可调、录音系统。
一、 设计任务
1.内容
设计一套语音信号录制系统,即将PC机上的声卡作为音频信号采集硬件,使用者使用话筒录音,将声音信号由声卡输进计算机,然后由该系统采集音频信号,在最后程序结束以后将该音频文件保存为Wav文件存储到计算机 。 2.要求:
a)声音质量为双声道;
b)在开始采集前,操作者可根据实际需要,更改采样位数(8位和16位);
实验选修课 虚拟仪器设计与应用
c)按下”开始”按钮时,才开始采集声音;
d)在采集过程中,按下”暂定”按钮,暂定声音的采集,再次按下“暂定”按钮,继续采集声音。
e)按下“停止”按钮,停止采集声音,并弹出保存文件的对话框,保存成*.wav文件
f)在前面板上实时显示波形,并显示录音时间
二、 使用设备
硬件组成:计算机、声卡、话筒(MIC)
软件组成:数据采集程序、数据处理程序及数据存储程序
三、 任务分析
1、录音系统设计流程:
a) 配置声卡(设置声卡工作模式和参数,为声卡正常工作做准备。选择“声音输入设置”函数,在“声音格式”处创建“录音格式”输入控件,该控件为3元素簇,可以控制“声道”、“采样频率”、“采样位数”的输入。)→b)采集信号(启动声卡采集声音信号,实现录音、暂停、停止功能,并将声音信号转换成计算机能够识别和处理的数字信号,作为后续程序的数据来源。)—→c)数据处理(将声卡采集获得的新数据显示出来,并将它添加到原有信号的存在数组中)→d)关闭声卡(停止声卡采集任务,释放占用的系统资源。并将采集的数据按指定格式进行保存)
实验选修课 虚拟仪器设计与应用
信号处理
2、 数据采集程序:数据采集程序要实现的任务就是用软件控制
声卡采集输入的信号,并将其转换为数字信号(即我们常说的数据)提供给后续程序处理。它为后续程序提供了一个数据来源。
b)数据采集程序的流程:
数据采集程序实例:
实验选修课 虚拟仪器设计与应用
3、 数据处理程序:
任务:实时波形显示,并将它添加到已有信号的存在数组中。 a)因为是实时显示采集信号的波形,因此我们需要用Waveform Chart来实现;
b)将新信号添加到已有信号的数组中,可通过移位寄存器实现。 4、 数据保存程序:
任务:在最后程序结束以后,将该音频文件保存为Wav文件存到计算机 。(注:有已经建好的“录音保存.VI”,可在D:\\Program Files\\National Instrument\\Labview7.1\\example\\Sound\\Sound.llb中调用,具体具体路径由安装LABVIEW软件的盘确定。) 录音保存.VI:
实验选修课 虚拟仪器设计与应用
5、 局部变量
局部变量主要是解决数据和对象在同一VI程序中的复用问题 a) 创建局部变量
b) 设定局部变量状态(读操作和写操作)
c) 逻辑型控制量使用局部变量时,要求其机械动作必须设为
实验选修课 虚拟仪器设计与应用
Switch状态。
暂停按钮:采用case循环如下图:
四、设计步骤
1、创建前面板
上半部分选择“垂直平滑盒”,下半部分选择“上凸盒”(操作:
实验选修课 虚拟仪器设计与应用
新式→修饰→垂直平滑盒/上凸盒)。颜色设置为上天蓝色、下浅白色,具体请(按住shift右击鼠标调出工具模板→颜色工具→在需要改变颜色处右击鼠标选择所需颜色)。
2、设置声卡参数
建立SI CONFIG(All Functions→graphics&sound→sound→sound input→SI Config),设置声卡参数,建立如下框图
3、控制录音开始
选择while循环(All Functions→structures), 采样间隔设置为200ms(All Functions→Time&Dialog→wait until next ms multiple),在停止条件接线端创建“录音”输入控件,将其按钮动作设置为“释放时转换”,同时在前面板创建“工作状态”指示灯,显示
实验选修课 虚拟仪器设计与应用
“未录音”与“录音中”,在程序框图中将这个布尔按钮放在while循环外,与“录音”控件相连。建立SI Start,启动声卡,并将SI Config的task ID out与SI Start的task ID in通过while循环连接。如图:
4、建立while循环作为整体部分
因为要实时显示并记录信号,因此采用while循环,并通过移位寄存器来实现将新信号添加的已有信号的数组中(移位寄存器使用:在while图框右击鼠标,选择Add Shift Register)。在前面板显示录音时间(All Functions→Time&Dialog→format date/time string)。
实验选修课 虚拟仪器设计与应用
5、暂停设置
创建case structure,设置逻辑型控制量。
a 、当逻辑值为真时,在case内部建立SI Stop和SI Start,两个函数之间建立while循环,延迟时间设为100ms,建立“暂定”的局部变量(创建局部变量:在逻辑控制量上右击→creat→local variable)与while的“停止”相连,并将其设为continue if ture(右击鼠标进行选择)。将SI Stop和SI Start的输出与输入经过whilel连接。将SI Stop的输入经过case图框与SI Config的输出相连。
实验选修课 虚拟仪器设计与应用
b 、当逻辑值为假时false:不对信号做处理。
6、停止设置
创建case循环和逻辑控制量,ture时创建SI Stop,false时直接通过
7、信号的输出
实验选修课 虚拟仪器设计与应用
声音数据的读取要用到“声音输入读取”函数来实现,其输出是双声道8位还是16位则由输入控件“声音格式”决定。由于输入控件“声音格式”是一个3元素的簇,因此要用到“按名称解除捆绑”函数,并将解除捆绑后的“采样位数”作为case条件结构的输入值。创建字符串常量,用文本显示控件显示声道的不同,默认是双声道8位。选择“波形图表”来实现声音波形的实时显示,将“声音输入读取”函数的“立体声8位/16位”输出端接到“波形图表”上,并将“波形图表”属性中的“外观”改成“2曲线显示”,便可实现数据的实时显示。将新信号添加到已有信号的数组中,可通过“移位寄存器”来实现,将“读取声音输入”函数的输出数组和录制过程while循环的移位寄存器数组连接成一个数组,再连回移位寄存器,便可将新信号不断地添加到已有信号数组中,具体操作如下:
建立cases tructure,使用簇分解函数将录音模式的三个量分解,选择其中的采样位数作为判断的输入,
实验选修课 虚拟仪器设计与应用
a 、若输入为\bit\,则使用Si Read,输出端口为stereo 8-bit,建立Waveform Chart,与输出端口相连。同时显示使前面板字符串“双声道8位”(All Functions→String→String Constant→输入“双声道8位”→建立显示量)。b 、若判断为\,则输出端口为stereo 16-bit,字符串显示“双声道16位”。
8、while的终止判断
将Si Read的错误输出用簇分解函数分解,选择其中的staus与停止逻辑控制量进行“与”判断,然后与while的停止连接。 9、关闭声卡:整个声音采集、数据处理过程使用while循环来控制,循环条件为“停止”按钮和“错误输出状态”的或运算值,即当按动“停止”按钮或出现错误时,声卡采集任务立即停止。在这个while循环外面用“声音输入清零”函数实现声音输入清零,释放所占用的系统资源。在while外部建立Si Clear,关闭声卡。
实验选修课 虚拟仪器设计与应用
10、录音保存
在外部建立case structure,判断条件为采样位数,当位数为“8 bit”时,使用录音保存子VI,在while内部使用簇合并将Si Read与移位寄存器的一端合成后输入到录音保存VI的stereo8位输入端,创建录音格式的局部变量,并与录音保存VI的输出端相连接。当位数为“16 bit”,合成簇与录音保存VI的stereo16位输入端相连接,输出端仍与录音格式的局部变量相连。
11、波形显示
选择属性(properties),曲线显示设置为2(appearance→plots shown),X轴设置为时间(format and precision),plot0设置为白
实验选修课 虚拟仪器设计与应用
色线状,plot1设为红色线状。填充至0。
12、面板填写信息及颜色调整 While循环整体框图程序如下:
12.前面板:
实验选修课 虚拟仪器设计与应用
13.录音保存:
五 、结论与展望
结论:本设计满足所需要求。录音系统将PC机上的声卡作为音频信号采集硬件,使用者使用话筒录音,将声音信号由声卡输进计算机,然后由该系统采集音频信号。当程序运行后,按下“开始录音”
实验选修课 虚拟仪器设计与应用
键后程序开始录音;按下“暂停”后声音的录制暂停,再次按“暂停”声音的录制继续;按下“停止”后声音录制结束,同时将弹出保存文件的对话框,文件*.wav格式保存。
声音质量为双声道;在开始采集前,操作者可根据实际需要,更改采样位数(8位和16位);前面板上显示录音时间,同时显示录音状态和采样位数;前面板同时以不同颜色分开显示两个声道的波形。
不足及改进方法:
1. 程序框图中并没有关于mono声道的部分,因而当用户忽视这一点时有可能会出现不可预知的BUG或其他错误。使用者可通过对声道框右键—属性—编辑项中禁用mono即可避免。 2. 对于1条中的问题可加入单声道模块解决
3. 由于程序原因,有时采样的音质还不够完美,可以提高采样位数,采样频率或加入优化模块来实现。