基于LabVIEW的双声道语音录制系统的设计

时间:2022-08-31 02:48:20

基于LabVIEW的双声道语音录制系统的设计

摘要:本文论述了一款双声道语音录制系统的组成及开发过程,该系统利用LabVIEW进行设计,采用计算机声卡代替专用数据采集卡,实现语音信号的录制、显示、存储等功能,具有广阔的应用前景。

关键词:声卡 语音录制 LabVIEW

中图分类号: 文献标识码:A 文章编号:1007-9416(2012)02-0099-02

LabVIEW in Design of a Two-channel Voice Recording System

ZHI Geng

(College of Mechanics and Electronics, Beijing Institute of Technology, Beijng 100081, China)

Abstract:This paper discusses components and development process of a two-channel voice recording system, using LabVIEW and computer's sound card instead of a special DAC. This method could achieve functions of recording, displaying and saving signal data, enjoying broad application prospects.

Keywords:sound card signal recording LabVIEW

1、引言

本系统采用计算机自带声卡,利用LabVIEW开发一款双声道语音录制系统,即用户使用话筒录音,声音信号由声卡输入计算机,经数据处理保存为wav文件并存储到计算机上。与采用专用数据采集卡的录制系统相比,具有设计简便、成本低廉、通用性高、扩展性好、界面简洁等优点。

2、系统组成

该系统以计算机,声卡和话筒为硬件设备,由数据采集程序,数据处理程序和数据存储程序组成。仪器面板包括:①录音格式控制窗口:声道选择(mono/stereo),采样频率选择(8000/11025/22100/44200 Hz),采样位数选择(8/16位)。②录音、暂停、停止按钮:控制系统实现录音的进行、暂停和停止保存。③工作状态指示灯:工作时显示“录音中”,不工作时显示“未录音”。④两个波形显示器:实时显示声音信号波形。

3、系统实现

3.1 配置声卡

设置声卡工作模式和参数,为声卡正常工作做准备。选择“声音输入设置”函数,在“声音格式”处创建“录音格式”输入控件,该控件为3元素簇,可以控制“声道”、“采样频率”、“采样位数”的输入。

3.2 采集信号

启动声卡采集声音信号,实现录音、暂停、停止功能,并将声音信号转换成计算机能够识别和处理的数字信号,作为后续程序的数据来源。

3.2.1 “录音”功能的实现

选择while循环,在停止条件接线端创建“录音”输入控件,将其按钮动作设置为“释放时转换”,同时在前面板创建“工作状态”指示灯,显示“未录音”与“录音中”,在程序框图中将这个布尔按钮放在while循环外,与“录音”控件相连,如图1所示。

3.2.2 “暂停”功能的实现

选择sase条件结构,在选择器接线端创建“暂停”输入控件,当其值为“真”时用“声音输入停止”函数暂停录音,用while循环实现再次按下“暂定”按钮时继续采集声音的功能,其中的循环条件为布尔暂停按钮的局部变量;当其值为“假”时直接连接,如图2所示。

3.2.3 “停止”功能的实现

选择case条件结构,在选择器接线端创建“停止”输入控件,当其值为“真”时用“声音输入停止”函数停止录音,“停止”按钮的机械动作设置为“释放时触发”;当其值为“假”时直接连接。停止录音后,“工作状态”指示灯由“录音中”转换成“未录音”,“录音”按钮还原,其中的和需创建属性节点,如图3所示。

3.3 处理数据

数据处理程序实现的功能是读取声音数据并实时显示声音波形,将新信号添加到已有信号的存在数组中。

声音数据的读取要用到“声音输入读取”函数来实现,其输出是双声道8位还是16位则由输入控件“声音格式”决定。由于输入控件“声音格式”是一个3元素的簇,因此要用到“按名称解除捆绑”函数,并将解除捆绑后的“采样位数”作为case条件结构的输入值。创建字符串常量,用文本显示控件显示声道的不同,默认是双声道8位。选择“波形图表”来实现声音波形的实时显示,将“声音输入读取”函数的“立体声8位/16位”输出端接到“波形图表”上,并将“波形图表”属性中的“外观”改成“2曲线显示”,便可实现数据的实时显示。将新信号添加到已有信号的数组中,可通过“移位寄存器”来实现,将“读取声音输入”函数的输出数组和录制过程while循环的移位寄存器数组连接成一个数组,再连回移位寄存器,便可将新信号不断地添加到已有信号数组中,如图4所示。

3.4 关闭声卡

整个声音采集、数据处理过程使用while循环来控制,循环条件为“停止”按钮和“错误输出状态”的或运算值,即当按动“停止”按钮或出现错误时,声卡采集任务立即停止。在这个while循环外面用“声音输入清零”函数实现声音输入清零,释放所占用的系统资源。

3.5 保存录音

录音保存使用“录音保存.vi”实现。由于“采样位数”不同造成保存格式不同,因此使用case条件结构,将右侧移位寄存器引出线(即所有声音数据)连接到“录音保存.vi”输入端,便可将最终的录音文件保存为wav文件存入计算机,其中的为的局部变量。

4、结束语

这款双声道语音录制系统采用图形化编程语言软件LabVIEW作为开发工具,利用计算机声卡代替昂贵的数据采集卡采集数据,充分利用计算机强大的信息处理能力和LabVIEW模块化编程技术,实现了常见音频信号的实时采集、显示、存储及回放等功能。

参考文献

[1]陈东方.吴国红.一个基于声卡的LabVIEW虚拟示波器[J].《微计算机信息》.2008.(25).

[2]陈敏.汤晓安.虚拟仪器软件LabVIEW与数据采集[J].小型微型计算机系统.2001.(04).

作者简介

智耕(1990―),男,河北人,主要研究方向机电系统工程。

上一篇:EMC设计在电子设备中的应用 下一篇:“中国电信数字家庭用户体验中心”设计研究