摘要:本文論述了一款雙聲道語(yǔ)音錄制系統(tǒng)的組成及開發(fā)過(guò)程,該系統(tǒng)利用LabVIEW進(jìn)行設(shè)計(jì),采用計(jì)算機(jī)聲卡代替專用數(shù)據(jù)采集卡,實(shí)現(xiàn)語(yǔ)音信號(hào)的錄制、顯示、存儲(chǔ)等功能,具有廣闊的應(yīng)用前景。
關(guān)鍵詞:聲卡語(yǔ)音錄制LabVIEW
中圖分類號(hào): 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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 cardsignal recordingLabVIEW
1、引言
本系統(tǒng)采用計(jì)算機(jī)自帶聲卡,利用LabVIEW開發(fā)一款雙聲道語(yǔ)音錄制系統(tǒng),即用戶使用話筒錄音,聲音信號(hào)由聲卡輸入計(jì)算機(jī),經(jīng)數(shù)據(jù)處理保存為wav文件并存儲(chǔ)到計(jì)算機(jī)上。與采用專用數(shù)據(jù)采集卡的錄制系統(tǒng)相比,具有設(shè)計(jì)簡(jiǎn)便、成本低廉、通用性高、擴(kuò)展性好、界面簡(jiǎn)潔等優(yōu)點(diǎn)。
2、系統(tǒng)組成
該系統(tǒng)以計(jì)算機(jī),聲卡和話筒為硬件設(shè)備,由數(shù)據(jù)采集程序,數(shù)據(jù)處理程序和數(shù)據(jù)存儲(chǔ)程序組成。儀器面板包括:①錄音格式控制窗口:聲道選擇(mono/stereo),采樣頻率選擇(8000/11025/22100/44200 Hz),采樣位數(shù)選擇(8/16位)。②錄音、暫停、停止按鈕:控制系統(tǒng)實(shí)現(xiàn)錄音的進(jìn)行、暫停和停止保存。③工作狀態(tài)指示燈:工作時(shí)顯示“錄音中”,不工作時(shí)顯示“未錄音”。④兩個(gè)波形顯示器:實(shí)時(shí)顯示聲音信號(hào)波形。
3、系統(tǒng)實(shí)現(xiàn)
3.1 配置聲卡
設(shè)置聲卡工作模式和參數(shù),為聲卡正常工作做準(zhǔn)備。選擇“聲音輸入設(shè)置”函數(shù),在“聲音格式”處創(chuàng)建“錄音格式”輸入控件,該控件為3元素簇,可以控制“聲道”、“采樣頻率”、“采樣位數(shù)”的輸入。
3.2 采集信號(hào)
啟動(dòng)聲卡采集聲音信號(hào),實(shí)現(xiàn)錄音、暫停、停止功能,并將聲音信號(hào)轉(zhuǎn)換成計(jì)算機(jī)能夠識(shí)別和處理的數(shù)字信號(hào),作為后續(xù)程序的數(shù)據(jù)來(lái)源。
3.2.1“錄音”功能的實(shí)現(xiàn)
選擇while循環(huán),在停止條件接線端創(chuàng)建“錄音”輸入控件,將其按鈕動(dòng)作設(shè)置為“釋放時(shí)轉(zhuǎn)換”,同時(shí)在前面板創(chuàng)建“工作狀態(tài)”指示燈,顯示“未錄音”與“錄音中”,在程序框圖中將這個(gè)布爾按鈕放在while循環(huán)外,與“錄音”控件相連,如圖1所示。
3.2.2 “暫停”功能的實(shí)現(xiàn)
選擇sase條件結(jié)構(gòu),在選擇器接線端創(chuàng)建“暫?!陛斎肟丶?當(dāng)其值為“真”時(shí)用“聲音輸入停止”函數(shù)暫停錄音,用while循環(huán)實(shí)現(xiàn)再次按下“暫定”按鈕時(shí)繼續(xù)采集聲音的功能,其中的循環(huán)條件為布爾暫停按鈕的局部變量;當(dāng)其值為“假”時(shí)直接連接,如圖2所示。
3.2.3 “停止”功能的實(shí)現(xiàn)
選擇case條件結(jié)構(gòu),在選擇器接線端創(chuàng)建“停止”輸入控件,當(dāng)其值為“真”時(shí)用“聲音輸入停止”函數(shù)停止錄音,“停止”按鈕的機(jī)械動(dòng)作設(shè)置為“釋放時(shí)觸發(fā)”;當(dāng)其值為“假”時(shí)直接連接。停止錄音后,“工作狀態(tài)”指示燈由“錄音中”轉(zhuǎn)換成“未錄音”,“錄音”按鈕還原,其中的和需創(chuàng)建屬性節(jié)點(diǎn),如圖3所示。
3.3 處理數(shù)據(jù)
數(shù)據(jù)處理程序?qū)崿F(xiàn)的功能是讀取聲音數(shù)據(jù)并實(shí)時(shí)顯示聲音波形,將新信號(hào)添加到已有信號(hào)的存在數(shù)組中。
聲音數(shù)據(jù)的讀取要用到“聲音輸入讀取”函數(shù)來(lái)實(shí)現(xiàn),其輸出是雙聲道8位還是16位則由輸入控件“聲音格式”決定。由于輸入控件“聲音格式”是一個(gè)3元素的簇,因此要用到“按名稱解除捆綁”函數(shù),并將解除捆綁后的“采樣位數(shù)”作為case條件結(jié)構(gòu)的輸入值。創(chuàng)建字符串常量,用文本顯示控件顯示聲道的不同,默認(rèn)是雙聲道8位。選擇“波形圖表”來(lái)實(shí)現(xiàn)聲音波形的實(shí)時(shí)顯示,將“聲音輸入讀取”函數(shù)的“立體聲8位/16位”輸出端接到“波形圖表”上,并將“波形圖表”屬性中的“外觀”改成“2曲線顯示”,便可實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)顯示。將新信號(hào)添加到已有信號(hào)的數(shù)組中,可通過(guò)“移位寄存器”來(lái)實(shí)現(xiàn),將“讀取聲音輸入”函數(shù)的輸出數(shù)組和錄制過(guò)程while循環(huán)的移位寄存器數(shù)組連接成一個(gè)數(shù)組,再連回移位寄存器,便可將新信號(hào)不斷地添加到已有信號(hào)數(shù)組中,如圖4所示。
3.4 關(guān)閉聲卡
整個(gè)聲音采集、數(shù)據(jù)處理過(guò)程使用while循環(huán)來(lái)控制,循環(huán)條件為“停止”按鈕和“錯(cuò)誤輸出狀態(tài)”的或運(yùn)算值,即當(dāng)按動(dòng)“停止”按鈕或出現(xiàn)錯(cuò)誤時(shí),聲卡采集任務(wù)立即停止。在這個(gè)while循環(huán)外面用“聲音輸入清零”函數(shù)實(shí)現(xiàn)聲音輸入清零,釋放所占用的系統(tǒng)資源。
3.5 保存錄音
錄音保存使用“錄音保存.vi”實(shí)現(xiàn)。由于“采樣位數(shù)”不同造成保存格式不同,因此使用case條件結(jié)構(gòu),將右側(cè)移位寄存器引出線(即所有聲音數(shù)據(jù))連接到“錄音保存.vi”輸入端,便可將最終的錄音文件保存為wav文件存入計(jì)算機(jī),其中的為的局部變量。
4、結(jié)束語(yǔ)
這款雙聲道語(yǔ)音錄制系統(tǒng)采用圖形化編程語(yǔ)言軟件LabVIEW作為開發(fā)工具,利用計(jì)算機(jī)聲卡代替昂貴的數(shù)據(jù)采集卡采集數(shù)據(jù),充分利用計(jì)算機(jī)強(qiáng)大的信息處理能力和LabVIEW模塊化編程技術(shù),實(shí)現(xiàn)了常見音頻信號(hào)的實(shí)時(shí)采集、顯示、存儲(chǔ)及回放等功能。
參考文獻(xiàn)
[1]陳東方.吳國(guó)紅.一個(gè)基于聲卡的LabVIEW虛擬示波器[J].《微計(jì)算機(jī)信息》.2008.(25).
[2]陳敏.湯曉安.虛擬儀器軟件LabVIEW與數(shù)據(jù)采集[J].小型微型計(jì)算機(jī)系統(tǒng).2001.(04).
作者簡(jiǎn)介
智耕(1990—),男,河北人,主要研究方向機(jī)電系統(tǒng)工程。
數(shù)字技術(shù)與應(yīng)用2012年2期