999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VB和Matlab COM實現(xiàn)語音信號的采集與處理

2008-12-31 00:00:00熊曉東
電腦知識與技術(shù) 2008年29期

摘要:利用VB能夠方便地設(shè)計出友好的應用軟件界面,而利用Matlab能夠簡易地進行語音信號的采集和數(shù)值處理。借助MATLAB的COM生成器生成COM組件供VB應用程序調(diào)用,實現(xiàn)了在脫離MATLAB環(huán)境下VB應用程序與MATLAB的無縫集成。從而使利用VB開發(fā)語音采集相關(guān)應用軟件變得簡單。

關(guān)鍵詞:VB;Matlab COM;MatrixVB;語音采集與處理

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)29-0468-02

Implementing Acquisition and Processing of the Speech Signal Based on VB and Matlab COM

ZHAO Wei, XIONG Xiao-dong,WEI Yong

(Electronics Information college,Yangtze University,Jingzhou 434023,China)

Abstract: Designing a friendly interface of applications easily with using VB,and making acquisition and processing of the speech signal easy with using Matlab.Applications developed by VB calls the COM which was generated by COM generator of Matlab to realize the integration of VB and Matlab. Consequently,the development of applications related to acquisition of speech signal with using VB become easy.

Key words: VB;Matlab COM; MatrixVB; acquisition and processing of the speech signal

1 引言

Visual Basic是由微軟公司開發(fā)的在Windows95/98/NT平臺上的一種十分強大和有生命力的Windows編程語言之一,具有簡單易學、編程簡單、程序集成化程度高及界面可視化等優(yōu)點。然而VB在語音信號采集、數(shù)值處理和圖形繪制方面顯得力不從心。Matlab是Math Works公司開發(fā)的一種工程計算語言,利用Matlab能夠比較方便地進行語音信號的采集與處理并能夠即時快速地將結(jié)果以圖形的方式顯示。顯然,將兩者結(jié)合起來,能實現(xiàn)在VB可視化界面下運用Matlab的語音信號采集、數(shù)值處理以及圖像顯示功能來使VB編程更加方便和完美。

2Matlab語音采集介紹

如圖1所示,語音采集子系統(tǒng)是通過Realtek AC’97型聲卡和Matlab的數(shù)據(jù)采集工具箱實現(xiàn)的。其中Realtek AC’97型聲卡的采樣位數(shù)為16位,支持8~44.1kHz的采樣速率,可以滿足語音采集的硬件要求[1]。Matlab自帶的數(shù)據(jù)采集工具箱里面,提供了專門用于語音采集的命令和函數(shù)。數(shù)據(jù)采集的硬件設(shè)備的內(nèi)部特性對Matlab的接口完全是透明的,通過調(diào)用Matlab提供的語音采集函數(shù)和命令可以對其進行訪問。而且,Matlab可以對其采集的數(shù)據(jù)進行實時的分析,也可在存儲后再進行處理。

3 VB和Matlab COM接口以及數(shù)據(jù)傳輸方法

VB雖然具有友好的界面設(shè)計優(yōu)點,然而它在語音采集以及數(shù)值處理方面遠遠不如Matlab。因此,VB調(diào)用Matlab語音采集命令和函數(shù)進行語音采集方面的應用軟件開發(fā)將使得VB的編程更加完美。

3.1 VB和Matlab COM接口

Matlab的COM生成器是Matlab編譯器的擴展功能,它能夠?qū)atlab編寫的M文件轉(zhuǎn)化為COM組件的形式。開發(fā)者在Matlab中進行建模和分析,然后將模塊轉(zhuǎn)換為COM組件形式。這些組件馬上可以集成進任何基于COM組件的計算機語言中,如VB,VC等[2]。

COM組件的創(chuàng)建分為四個步驟:

1) 載入Matlab COM生成器。

在Matlab提示行輸入comtool,COM生成器將被載入。

2) 創(chuàng)建一個新的工程。

選擇File->New Project,出現(xiàn)工程屬性設(shè)置對話框。添加組件名、類名、版本號、和選擇是否連接圖形庫。

3) 管理M文件。

添加編寫好的M文件,M文件中的函數(shù)名和類中的方法名一致。

4) 編譯一個工程。

選擇Build->COM Object,生成COM組件(.dll文件)。

VB中編程調(diào)用生成的.dll文件即可實現(xiàn)M文件中函數(shù)的功能。

3.2 Matlab與VB數(shù)據(jù)交換

MatrixVB是Mathworks公司針對VB提供的一個Matlab組件庫,它具有Matlab繪圖的強大功能,讓VB能很輕易地繪制圖形[3]。由于VB不能將采樣率高的數(shù)據(jù)即時快速的繪制出來,借助Matrix VB中提供的plot繪圖函數(shù)能夠很好地實現(xiàn)這一點。為了能夠?qū)D形繪制在VB指定的窗口內(nèi),我們將matlab函數(shù)采集的語音數(shù)據(jù)保存在一個文本文件中,然后在VB中利用MatrixVB中的讀文件函數(shù)讀取該文件內(nèi)的數(shù)據(jù),最后利用Matrix VB插件里面的繪圖函數(shù)將這些數(shù)據(jù)繪制成圖形顯示在VB指定的窗口內(nèi)。

4 VB和Matlab混合編程進行語音采集與處理實例

4.1 系統(tǒng)要求

實現(xiàn)這種方法PC機上必須具備以下一些軟件:1) MATLAB 6.5版本以上;2) MATLAB Compiler 3.0;3) MATLAB COM Builder 1.0 ;4) Microsoft Visual Basic 6.0;(5) Microsoft

4.2 具體的實現(xiàn)過程

1) 利用于Matlab編寫進行語音采集與處理的M文件。

function recordfre()

duration=5; %設(shè)置采樣時間為5s

rate=44100; %設(shè)置采樣頻率為44100hz

ai = analoginput('winsound');

addchannel(ai, 1);

set(ai,'samplerate',rate);

set(ai,'samplespertrigger',duration*rate);

start(ai); %開始對語音數(shù)據(jù)進行采集

[data,time]=getdata(ai); %獲取采樣的時間和數(shù)據(jù)(幅值)

fy=fopen('c:\\strt.txt','wt');

fprintf(fy,'%d\',data) ; %將采集的數(shù)據(jù)保存在c:\\strt.txt中

fclose(fy);

2) 將編寫的M文件生成COM組件(recordfre.dll)。

3) 在VB中新建一工程,在菜單工具條中選擇工程->引用,添加生成的動態(tài)鏈接庫以及Mmtrix組件。

4) 在VB界面上添加一個圖形框,兩個按鈕,分別用于語音采集和繪制曲線。VB部分程序編寫如下:

Private Sub record_Click() ’調(diào)用語音采集程序生成的COM組件

Set importwav = New wavfile.wavfileclass

Command2.Enabled = False

Call importwav. recordfre

Command2.Enabled = True

End Sub

Private Sub plot_Click() ‘繪制曲線在picture1窗口中

ax = vbaxes(Picture1.hWnd)

soundfile = vbload(\"c:\\strt.txt\") ‘讀取采集的語音數(shù)據(jù)

plot (soundfile)

End Sub

5) 運行結(jié)果如圖2所示。

5 結(jié)束語

利用COM組件實現(xiàn)了VB和Matlab的完美結(jié)合,從而充分發(fā)揮VB和Matlab各自的優(yōu)點實現(xiàn)了語音信號的采集和曲線的顯示。解決了VB采集語音信號方面的弱點,并能夠?qū)⒄Z音信號以曲線的形式顯示在VB指定的窗口內(nèi),有利于利用VB開發(fā)有關(guān)語音采集方面的應用軟件。

參考文獻:

[1] 易克初.語音信號處理[M].北京:國防工業(yè)出版社,2002.

[2] 楊秀章.COM技術(shù)內(nèi)幕[M].北京:清華大學出版社,1999.

[3] 左黎明,蔣先剛,胡梅.Matrix VB在信號處理與數(shù)據(jù)可視化系統(tǒng)設(shè)計中的應用[J].計算機與現(xiàn)代化,2004(3):100-102.

[4] Matlab Builder for COM Documention[Z].Mathworks,2004.

主站蜘蛛池模板: 日韩精品亚洲一区中文字幕| 精品亚洲欧美中文字幕在线看| 欧美成人二区| yjizz国产在线视频网| 国产jizzjizz视频| 亚洲天堂成人| 成AV人片一区二区三区久久| 欧美激情第一区| 国产手机在线小视频免费观看| 尤物视频一区| 人人91人人澡人人妻人人爽| 3344在线观看无码| 白丝美女办公室高潮喷水视频| 97视频精品全国在线观看| 日韩亚洲高清一区二区| 九九久久精品国产av片囯产区| 色悠久久久| 伊人久久福利中文字幕| 99精品视频九九精品| 免费高清毛片| 黑人巨大精品欧美一区二区区| 精品无码国产自产野外拍在线| 福利在线不卡| 国产高清在线丝袜精品一区| 欧美国产日韩一区二区三区精品影视| 日韩av在线直播| 日韩不卡高清视频| 亚洲欧美色中文字幕| 久久91精品牛牛| 在线永久免费观看的毛片| 国产精品分类视频分类一区| 欧美日本在线一区二区三区| 亚洲综合第一区| 日本午夜在线视频| 69视频国产| 欧洲免费精品视频在线| 亚洲最黄视频| 白丝美女办公室高潮喷水视频| 日韩无码视频播放| 国产高清无码第一十页在线观看| 欧美人人干| 毛片免费高清免费| 精品中文字幕一区在线| 精品国产一二三区| 欧洲精品视频在线观看| 亚洲va视频| 国产主播福利在线观看 | 日韩在线第三页| 国产视频一区二区在线观看| 在线欧美日韩国产| 手机在线免费不卡一区二| 日韩黄色大片免费看| h网址在线观看| 永久免费无码日韩视频| 无码有码中文字幕| 亚洲乱伦视频| 国产成人久视频免费| 国产精品美女在线| 精品久久高清| 国产对白刺激真实精品91| 五月天综合婷婷| 亚洲精品国偷自产在线91正片| 国产在线第二页| 亚洲中文久久精品无玛| 亚洲水蜜桃久久综合网站| 麻豆国产精品一二三在线观看| 亚洲人成网址| 好吊日免费视频| 97久久精品人人做人人爽| 日本色综合网| 国产精品冒白浆免费视频| a色毛片免费视频| 亚洲婷婷在线视频| 永久免费av网站可以直接看的| 国产在线97| 97免费在线观看视频| 亚洲AV电影不卡在线观看| 午夜视频日本| 沈阳少妇高潮在线| 国产成在线观看免费视频| 99色亚洲国产精品11p| 国产精品永久在线|