资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基于LabVIEW的录音笔程序设计(DOC) 作者: 日期: 成绩: 虚拟仪器技术及应用课程设计题 目:基于LabVIEW的录音笔程序设计学 期: 20132014学年第一学期 指导教师: 陶 林 姓 名: 龚 华 德 学 号: 20107150 年级、专业: 2010级机制1班 西南交通大学峨眉校区机械工程系目录1、录音笔程序设计背景12、录音笔VI流程图12.1录制声音文件VI流程图12.2播放声音文件VI流程图23、录音笔VI设计原理23.1录制声音文件VI设计23.2播放声音文件VI设计43.3播放声音的暂停/继续VI设计63.4录音笔VI整体设计74、效果测试114.1录制声音效果测试114.2播放声音效果测试115、程序增加或改进125.1增加录制/播放时长部分125.2增加录制/播放时间日期显示部分135.3增加波形图显示部分135.4增加播放音量大小调节部分135.5增加播放进度部分135.6增加暂停/继续按钮部分135.7增加显示播放文件时长部分135.8增加界面背景图片显示部分135.9增加当前播放/录音文件名称部分135.10改进保存/打开路径部分146、程序存在的问题147、结论14基于LabVIEW的录音笔程序设计1、录音笔程序设计背景数码录音笔,也称为数码录音棒或数码录音机,数字录音器的一种,为了便于操作和提升录音质量造型并非以单纯的笔型为主,携带方便,同时拥有多种功能,如激光笔功能、FM调频、MP3播放等。与传统录音机相比,数码录音笔是通过数字存储的方式来记录音频的。录音笔工作原理:通过对模拟信号的采样、编码将模拟信号通过数模转换器转换为数字信号,并进行一定的压缩后进行存储。而数字信号即使经过多次复制,声音信息也不会受到损失,保持原样不变。录音笔五大应用:(1)重要的现场采访录音;(2)会议录音,后期记录整理等;(3)重要交通现场,刑事现场;(4)教育工作者,学生等;(5)工检法执法者、记者/私家侦探。利用美国国家仪器公司的可视化图形编程软件LabVIEW作为开发平台,实现基于普通计算机声卡的虚拟录音笔的设计。通过计算机声卡实时声音采集,在前面板友好的显示采集波形和操作界面。2、录音笔VI流程图2.1录制声音文件VI流程图 如图2-1所示:图2-1 录制声音文件VI流程2.2播放声音文件VI流程图 如图2-2所示:图2-2 播放声音文件VI流程3、录音笔VI设计原理3.1录制声音文件VI设计3.1.1、录制声音文件VI界面设计,如图3-1-1所示:图3-1-1 录制声音文件VI界面3.1.2、录制声音文件VI程序框图设计,如图3-1-2所示:图3-1-2 录制声音文件VI程序框图用“输入”和“文件”子选板的VI构建一个录制声音的程序,用这个程序可以通过麦克风将音乐、声响或语音录制下来,保存在文件中,以备特定情况下播放,对操作者进行提示。录制声音的程序由一系列声音VI和一系列文件VI并列组成。 (1)读取并打开声音文件VI:这是一个多态VI,此处选取“写入”。它创建一个声音文件,用于写入“.wav”格式的声音文件。“声音格式”参数是一个簇,其中包含采样率、通道数、每采样比特数。程序中把这3个参数分别设置为22050、2、16,,它输出一个声音文件引用句柄。 (2)写入声音文件VI:将输入的声音数据写入声音文件。声音数据是一个簇数组,共两个元素;每个元素是一个波形簇,包括采样开始时间、采样时间间隔和声音数据y。和被忽略,y可以是DBL、SGL、U8、I16、I32几种数据类型。这是一个多态VI,要根据y输入的数据类型手工选择相应的子VI。 (3)关闭声音文件VI:根据输入的声音文件引用句柄将“.wav”声音文件关闭。 (4)配置声音输入VI:配置声音输入设备以采集声音数据。“每通道采样数”参数配置内存缓冲区中每个通道的采样数,连续录音时要用大一些的数值,本文配置为“10000”;“采样模式”参数在事前不清楚录制数据量大小时配置为“连续采样”;“设备ID”参数指定使用的声音设备;“声音格式”参数在写入声音文件VI中已经介绍过;“任务ID”参数输出一个关于制定设备配置信息的标识。 (5)读取声音输入VI:根据输入的任务ID从声音输入设备读取数据。“每通道采样数”的参数要和配置声音输入VI中的配置相同。这是一个多态VI,要根据需要的声音数据类型手工选择相应的子VI。 (6)声音输入清零VI:根据输入的任务ID结束声音采集、清空内存缓冲区、释放相关设备资源。 (7)简易错误处理器VI:报告整个程序执行过程中是否有错误。3.2播放声音文件VI设计3.2.1、播放声音文件VI界面设计,如图3-2-1所示:图3-2-1 播放声音文件VI界面3.2.2、播放声音文件VI程序框图设计,如图3-2-2所示:图3-2-2 播放声音文件VI程序框图 用“输出”和“文件”子选板的VI把声音文件播放出来,下面介绍程序的构成。 (1)打开声音文件VI:这是一个多态VI,此处选取“读取”。它创建一个声音文件,用于读取“.wav”格式的声音文件。“声音格式”参数是一个簇,其中包含采样率、通道数、每采样比特数。程序中把这3个参数分别设置为22050、2、16,,它输出一个声音文件引用句柄。 (2)读取声音文件VI:根据输入的声音文件引用句柄从“.wav”文件读取一个波形数组。“每通道采样总数”参数指定这个VI每次被调用时读出的采样数据量,尽量和“配置声音输入VI”的“每通道采样数”参数一致;“位置模式”和“位置偏移量”两个参数确定读取文件的起始位置,“绝对”是从文件开头加上偏移量的位置开始读数据,“相对”是从文件当前位置加上偏移量的位置开始读数据,默认值为“相对”;输出的“数据”类型与写入时一样,每次输出一次采样的数据;输出的“偏移量”参数是输入的偏移量加上本次读文件产生的偏移量之和;“文件结束?”参数输出“T”时到达文件末尾。这是一个多态VI,要根据声音文件的数据类型手工选择相应的子VI。 (3)关闭声音文件VI:根据输入的声音文件引用句柄将“.wav”声音文件关闭。 (4)配置声音输出VI:和“配置声音输入VI”的配置参数相同。 (5)配置声音输出音量VI:调节输出声音音量大小用。 (6)写入声音输出VI:将输入数据写入声音输出设备。这是一个多态VI,要根据声音文件的数据类型手工选择相应的子VI。 (7)声音输入清零VI:根据输入的任务ID结束声音采集、清空内存缓冲区、释放相关设备资源。 (8)简易错误处理器VI:报告整个程序执行过程中是否有错误。3.3播放声音的暂停/继续VI设计 暂停/继续VI:用于播放时暂停,暂停后再按此键,能够紧接上次播放进度继续播放,不用从头再放,暂停与播放之间能互相切换。此VI主要用到条件结构,当继续时(为真),条件结构内嵌一个While循环,如图3-3-1所示;当暂停时(为假),条件结构内什么都没,就是一个空跑,如图3-3-2所示。图3-3-1 继续VI图3-3-2 暂停VI3.4录音笔VI整体设计可以自由选择录音还是播放,所以采用选项卡控件,录音笔界面如图3-4-1、图3-4-2所示,录音笔程序框图如图3-4-3、图3-4-4所示:图3-4-1 录音笔播放界面图3-4-2 录音笔录音框图图3-4-3 录音笔播放程序框图图3-4-3 录音笔录音程序框图4、效果测试4.1录制声音效果测试 运行时能够通过计算机麦克风录制声音,在界面中显示声音波形和录音时长等,按停止按钮可停止录制,按退出按钮退出录制并将录好的声音保存,录制声音效果测试如图4-1所示:图4-1 录制声音效果测试4.2播放声音效果测试 运行时,先打开声音文件所在路径,便可播放之前录制的声音,中途可以按暂停/继续按钮,暂停播放,在按暂停/继续按钮,又会接着播放,声音播放完成或中途按停止播放按钮便会停止播放,按退出播放按钮可退出播放,播放声音效果测试如图4-2所示:图4-2 播放声音效果测试5、程序增加或改进这个程序是在图书馆借的LabVIEW参考书自己写的,当然是在参考了别人的想法的基础之上,通过自己的努力的结果。5.1增加录制/播放时长部分通过录音/播放时间前后的对比做差,得出时长,并将时长(原先为秒)转化为正常时间显示方式(时分秒),用到了“数值至十进制数字符串转换”和“连接字符串”。5.2增加录制/播放时间日期显示部分这部分比较简单,只要一个“获取日期/时间字符串”函数就可直接获得系统的当前日期/时间,再用“格式化日期/时间字符串”,将其显示变得更为美观。5.3增加波形图显示部分这部分更简单,只需要添加一个波形图就行。5.4增加播放音量大小调节部分在配置声音输出音量VI的卷接线处连接一个数值输入控件中的水平指针滑动杆,就可对音量大小进行调节,当然多加一个数值显示控件,有利于更为精确的看出调节的音量的具体数值,由于音量很小,所以在最开始就加上一个初始音量20。5.5增加播放进度部分通过录音/播放时间前后的做差,在其输出处添加一个显示控件水平进度条即可。5.6增加暂停/继续按钮部分在播放过程中,很多情况要突然中途暂停,然后接着继续播放,这不得不增加暂停/继续部分。这部分主要用到条件结构,当继续时(为真),条件结构内嵌一个While循环;当暂停时(为假),条件结构内什么都没,就是一个空跑。5.7增加显示播放文件时长部分播放文件总时长等于每通道采样总数除以采样率与通道数之积,增加这部分主要是为了播放者能清楚的知道所播放声音文件的总时长。5.8增加界面背景图片显示部分用“当前VI路径”进行“拆分路径”,将拆分的路径端连接到“创建路径”的基路径接线端,在名称或相对路径端创建一个字符串常量,写上照片的名称,添加的路径端连接到“读取JPEG文件”函数,通过“绘制平化像素图”显示出图片。5.9增加当前播放/录音文件名称部分 将文件路径和“当前播放/录音”字符串常量通过“连接字符串”函数连接起来并输出。5.10改进保存/打开路径部分可以手动在操作界面进行路径的选择,在打开声音文件VI的路径接线处改创建输入控件,而不是常量,创建文件对话框,以便对路径进行完善,判断是否为错误路径或空路径,如果为错误路径或空路径就要对路径进行重新选择。6、程序存在的问题 (1)进度条的值不知如何确定,就是当一个声音文件正好播放完时,进度条也正好满值; (2)当按下暂停时,声音文件是暂停没错,但是播放时长却还在后台运行,按下继续时,播放时长突然跳动到整个程序的运行时间,估计是由于暂停时的空运行引起的,目前还不
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号