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