搜索
您的当前位置:首页正文

虚拟仪器设计与应用实验报告

来源:二三娱乐
虚拟仪器设计与应用实验报告

选修实验课:虚拟仪器设计与应用 实验报告

姓名: 学号: 班号: 专业: 院系: 时间:

选修实验课:虚拟仪器设计与应用

基于LabVIEW的 双声道语音录制系统 实验摘要:

此次实验要求设计一套语音信号录制系统:PC机上的声卡作为音频信号采集硬件,使用者使用话筒录音,将声音信号由声卡输进计算机,然后由该系统采集音频信号,在最后程序结束以后将该音频文件保存为WAV文件存储到计算机中。

该录音系统所需要实现的功能依次为:配置声卡参数、将信号收集到声卡缓存区、从缓存区读取信号并保存在计算机上、停止并关闭声卡工作。

关键字:多声道、采样位数可调、录音系统。

1. 设计任务及要求

1.1设计任务

每个人的声音都有各自的特征以及讲话时特殊的语言习惯,这些都反映在声音信号中。本次实验设计一套语音信号录制系统,即将PC机上的声卡作为音频信号采集硬件,使用

者使用话筒录音,将声音信号由声卡输进计算机,然后由该系统采集音频信号,在最后程序结束以后将该音频文件保存为Wav文件存储到计算机 。 1.2要求

① 声音质量为双声道。 ② 在开始采集前,操作者可根据实际需要,更改采样位数(8位和16位)。 ③ 按下“开始”按钮时,才开始采集声音。

④ 在采集过程中,按下“暂定”按钮,暂定声音的采集,再次按下“暂定”按钮,继续采集声音。

⑤ 按下“停止”按钮,停止采集声音,并弹出保存文件的对话框,保存成“*.wav”文件。

2. 使用设备

选修实验课:虚拟仪器设计与应用

硬件设备: 计算机、声卡、话筒(MIC)。

软件设备: 据采集程序、数据处理程序及数据存储程序。 3. 任务分析

3.1 硬件组成

计算机、声卡、话筒(MIC) 3.2 软件组成

3.2.1 录音系统设计流程 配置声卡 采集信号 数据处理 关闭声卡

设置声卡的工作模式和参数,为声卡的正常工作做准备。

启动声卡采集输入的信号,并将其数字化,转换成计算机能处理的数 据

将声卡采集获得的新数据显示出来,并将它添加到原有信号的存在数组中。 停止声卡采集任务,释放占用的系统资源。 并将采集的数据按指定格式进行保 存

3.2.2 数据采集程序

数据采集程序要实现的任务就是用软件控制声卡采集输入的信号,并将其转换为数字信号(即我们常说的数据)提供给后续程序处理。它为后续程序提供了一个数据来源。 数据采集程序的流程 声卡参数设置 启动声卡 采集信号 停止声卡 关闭声卡 3.2.3 数据处理程序

实时波形显示,并将它添加到已有信号的存在数组中。因为是实时显示采集信号的波形,因此我们需要用Waveform Chart来实现;将新信号添加的已有 选修实验课:虚拟仪器设计与应用 信号的数组中,可通过移位寄存器来实现。 3.2.4 数据保存程序

在最后程序结束以后,将该音频文件保存为Wav文件存到计算机 。 4.设计步骤 4.1 配置声卡参数 函数: SI Config

功能:配置声卡参数,为声卡采集信号做准备。 输入端口:

◆device:设备号,默认值为0,该参数一般不需要改动。操作系统中用设备号表示硬件设备。

◆sound format:用于指定声卡的参数:单声道还是立体声,采样率, 8位还是16位。它是一个簇,包括下面三个元素:

★sound quality:声音质量,枚举型,两个取值:mono(单声道)和stereo(立体声)

★rate :采样率,枚举型,4个取值:0,1,2,3;分别对应四种采样率:11025,22050,44100和8000Hz。

★bits per sample:采样点位数,枚举型,两种取值:8位和16位 输入端口

◆buffer size:数据缓存区大小。是LabVIEW与声卡之间传递数据的一个中转站。默认大小为8192字节。 ◆error in :错误簇。 输出端口

◆task ID out :声卡的标识号。其它声音函数通过它对声卡进行操作。 ◆error out :错误簇。

此次实验中,用户可以自主选择声音质量、采样频率和采样位数,需要新建三个枚举型的输入变量来确定声卡参数,将三个参数捆绑成簇,作为配置声卡的声音参数。声卡在数据的收集时,便会按照用户的选择对声音进行收集。 4.2 信号的处理 函数: SI Start

功能: 启动声卡,开始采集信号并将数据保存到缓存区。 输入端口 ◆task ID in :声卡的标识号。 ◆error in :错误簇 输出端口

◆task ID out :声卡的标识号 ◆error out :错误簇 选修实验课:虚拟仪器设计与应用

函数: SI Read

功能: 从声卡缓存区读取数据。 输入端口

◆task ID in :声卡的标识号 ◆error in :错误簇 输出端口

◆task ID out:声卡的标识号 ◆error out :错误簇 函数: SI Stop

功能: 停止声卡采集的工作。 输入端口

◆task ID in :声卡的标识号 ◆error in :错误簇 输出端口

◆task ID out :声卡的标识号 ◆error out :错误簇

功能包含启动和停止声卡收集工作两部分。当按下“录音”按钮时,启动声卡的收集工作,此时信号作为输入流存储在声卡的缓存区里面。当按下“暂停”按钮时,停止声卡的收集工作,此时声卡的缓存区里面没有信号的输入。

当按下“录音”按钮时,启动一个每200毫秒一次的循环,并启动声卡的信号收集工作,将声音信号按先前配置好的参数收集到声卡缓存区内,同时更改工作状态为“录音中”。

当按下“暂停”按钮时,停止声卡的收集工作,并把工作状态由“录音中”改为“未录音”。

从声卡缓存区中读取信号,并将信号保存到本地计算机上。 将信号按照用户要求的格式从声卡缓存区中读出,需要刚开始时用户所设定的参数,使用老师提供的“录音保存.VI”将信号从缓存区中读取并保存到本地计算机上。

当按下“停止”按钮时,停止声音的采集工作,并将按下的“录音”按钮弹出,修改当前工作状态为“未录音”。然后使用录音保存功能将收集到的信息保存在本地计算机上。

4.3 停止并关闭声卡 函数:SI Clear

功能: 关闭声卡,并释放所有占用系统的资源。 输入端口 ◆task ID in :声卡的标识号 ◆error in :错误簇 输出端口

◆error out :错误簇

实验结束后,关闭声卡,并释放所有占用的资源,以便计算机执行其他任务。 选修实验课:虚拟仪器设计与应用

此次实验中,用“声音输入清零”来释放所占用的资源。

5.结论与展望

通过一周的努力,我终于完成了多声道采样位数可调录音系统的设计任务。基于LABVIEW的双声道语音录制系统的设计应用LABVIEW编程语言简单而较圆满的完成对语音信号的录制,录音文件成功保存,录音回放效果良好,达到预期效果,完成了既定设计任务。但是由于设备及程序多方原因,音频存在撕拉声等杂声。

感谢您的阅读,祝您生活愉快。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top