或許你會(huì)認(rèn)為用計(jì)算機(jī)進(jìn)行電話錄音需要昂貴的專用軟件,其實(shí)只要懂得VB和Access的一些基本知識(shí),,我們也可以自己制作一個(gè)具備電話錄音,、錄音數(shù)據(jù)保存、查詢功能的小系統(tǒng),。大概只需1500元左右,,其費(fèi)用主要用于增添所需的聲卡、音箱及具有語(yǔ)音功能的Modem(當(dāng)然還有你的腦力勞動(dòng)),,比起兩三萬元的專用錄音軟件,,可以說是物美價(jià)廉了。 首先介紹該系統(tǒng)的工作原理:利用VB5.0的OLE容器控件,,在運(yùn)行時(shí)創(chuàng)建嵌入對(duì)象的方法,,激活在WIN95注冊(cè)過的錄音軟件,將輸入到聲卡的電話語(yǔ)音信號(hào)錄制為WAV文件,,嵌入OLE容器控件中,。由于把OLE容器控件與某個(gè)數(shù)據(jù)庫(kù)綁定,在聲音文件嵌入OLE容器控件的同時(shí)也存入了數(shù)據(jù)庫(kù),。以下將詳細(xì)地介紹小系統(tǒng)的實(shí)現(xiàn)過程,,主要有設(shè)備的連接、數(shù)據(jù)庫(kù)的建立,、簡(jiǎn)單的VB編程,。 一、設(shè)備的連接 設(shè)備的連接主要指Modem與電話線,、電話機(jī),,Modem與聲卡之間的連接方式。先將墻上的電話進(jìn)線插到Modem的接口上,,再用另一根電話線接在 Modem與電話機(jī)之間,,把Modem與電話機(jī)串聯(lián)起來。Modem與電話機(jī)之間的順序必須被考慮到,。如果電話進(jìn)線先進(jìn)入電話機(jī),,當(dāng)提起電話聽筒時(shí),,信號(hào)將先被電話機(jī)截取,而不能進(jìn)入Modem,。接下來用雙向音頻輸入輸出線把Modem的SPK端口和聲卡的LINE INC端口連起來,;將Modem的聲音信號(hào)輸入到聲卡。好了,,完成設(shè)備的連接后,我們就可以開始進(jìn)行軟件方面的制作了,。 二,、用Access建立一個(gè)收藏錄音數(shù)據(jù)的數(shù)據(jù)庫(kù) 首先建立一個(gè)存放聲音數(shù)據(jù)的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)可以是存儲(chǔ)在Microsoft Jet數(shù)據(jù)庫(kù)引擎中的Microsoft Access,、dBASE,、Microsoft Foxpro、Excel等,。由于需保存的數(shù)據(jù)并不復(fù)雜,,我選用了小型而易用的Microsoft Access97,建立一個(gè)名為Recorder的數(shù)據(jù)庫(kù)來管理錄音數(shù)據(jù),。在Recordeer數(shù)據(jù)庫(kù)中生成表Recording,,該表包含四個(gè)字段: ID、錄音文件,、Day,、Time。結(jié)構(gòu)如下: ----------------------------------------------- 字段名稱 數(shù)據(jù)類型 字段屬性 ----------------------------------------------- ID 自動(dòng)編號(hào) 遞增 錄音齊件 OLE對(duì)象 Day 日期/時(shí)間 默認(rèn)值=Date();格式=長(zhǎng)日期 Time 日期/時(shí)間 默認(rèn)值=Time();格式=長(zhǎng)時(shí)間 ------------------------------------------------ 把數(shù)據(jù)庫(kù)Recorder保存在C:\下,,以待后用,。數(shù)據(jù)庫(kù)方面的工作暫時(shí)到此為止,接著將要用VB來編寫一個(gè)小程序,,實(shí)現(xiàn)錄音,、自動(dòng)將數(shù)據(jù)存入數(shù)據(jù)庫(kù)的功能。 三,、用VB5.0 建立錄音小程序 在VB5.0下新建一“標(biāo)準(zhǔn)EXE”工程,,打開工程中的空白窗體Form1。在Form1上添加各種控件,。 1.在Form1上添加Data控件 將Data控件添加到窗體上,,Data控件屬性設(shè)置如下: ------------------------------------------- (名稱) Data1 ------------------------------------------- Connect Access DatabaseName C:\RECORDER.mdb Recordsource recording ------------------------------------------- 以上屬性設(shè)置把Data控件綁定到剛才建立的Access數(shù)據(jù)庫(kù)Recorder的recording表。 2.在Form1上添加Text Box控件 在Form1上添加三個(gè)Text Box控件,,并在適當(dāng)位置增添相應(yīng)的標(biāo)簽。文本框?qū)傩栽O(shè)置如下: ------------------------------------------------------------ Text Box控件1 Text Box控件2 Text Box控件3 ------------------------------------------------------------ (名稱) Text1 Text2 Text3 Data Field ID Day Time Datasource Data1 Data1 Data1 ------------------------------------------------------------ 以上屬性設(shè)置使三個(gè)Text Box綁定到Data控件,,用于從與Data控件連接的數(shù)據(jù)庫(kù)中分別顯示字段ID,、Day,、Time。 3.在Form1上添加OLE容器控件 在Form1上添加OLE容器控件,,屬性設(shè)置如下: ---------------------------------- (名稱) OLE1 ---------------------------------- Data Field 錄音文件 Datasource Data1 Autoactivate 2-Doubleclick ---------------------------------- 通過屬性設(shè)置把它與Data控件綁定,,從Recorder數(shù)據(jù)庫(kù)中顯示字段“聲音文件”。當(dāng)OLE容器中的錄音數(shù)據(jù)被更新時(shí),,被更新或新增的聲音對(duì)象將自動(dòng)被寫回?cái)?shù)據(jù)庫(kù),。當(dāng)雙擊OLE容器中的數(shù)據(jù)時(shí),將自動(dòng)播放聲音文件,。 4.在Form1上添加Command Button控件 添加兩個(gè)Command Button控件到Form1上,,其中一個(gè)命令按鈕用于調(diào)用錄音機(jī)以錄制通話數(shù)據(jù),并將錄音的聲音數(shù)據(jù)嵌入到OLE容器中,。該按鈕屬性設(shè)置如下: --------------------- (名稱) Command1 --------------------- Caption 開始錄音 --------------------- 雙擊Command1,,在Private Sub Command1_Click()中輸入以下代碼: Data1.DatabaseName="C:\recorder.mdb" Data1.Recordsource="Recording" Data1.Refresh ‘創(chuàng)建一條新記錄 Data1.Recordset.AddNew ‘創(chuàng)建一個(gè)嵌入聲音對(duì)象 OLE1.CreateEmbed "","SOUNDREC" ‘激活WIN95附件下的錄音機(jī) OLE1.DoVerb 0 End Sub 另一個(gè)按鈕用于關(guān)閉程序,屬性設(shè)置如下: ---------------------- (名稱) Command2 ---------------------- Caption 退出 ---------------------- 雙擊Command2,,在Private Sub Command2_Click()中輸入以下代碼: Unload Form1 End End Sub 5.編寫Form1的Activate過程 Form1的Activate過程代碼,,用于在Form1打開的同時(shí)打開通信軟件SuperVoice2.2并激活Command1的功能。雙擊Form1,,彈出編寫代碼窗口,,在對(duì)象下拉列表中選擇Form,在過程下拉列表中選擇Activate,,在Pri vate Sub Form_Activate()中輸入以下代碼: ‘激活Command1的功能 Call Command1_Click ‘調(diào)用安裝在d:\supervoc\program\中的通信程序SuperVoice2.2,,來啟動(dòng)Modem的語(yǔ)音功能 dim tel tel=shell("d:\supervoc\program\supervoc.exe",1) appactivate tel End Sub 四、程序運(yùn)行結(jié)果 保存工程,,并將其生成可執(zhí)行程序“錄音.EXE”,,放在C:\下面。好了,,大功告成?,F(xiàn)在退出VB,試一試 在WIN95下運(yùn)行,。 當(dāng)雙擊“錄音.EXE”時(shí),,程序自動(dòng)打開通信軟件SuperVoice2.2(一般購(gòu)買Modem時(shí)都隨機(jī)附送SuperVoice2.2),在 SuperVoice2.2的系統(tǒng)設(shè)置中將語(yǔ)音輸入設(shè)備設(shè)為電話聽筒,,及啟動(dòng)SuperVoice2.2時(shí)彈出仿真電話撥號(hào)盤(只需在第一次使用時(shí)設(shè)置),。設(shè)為電話聽筒的好處是通話時(shí)不需要麥克風(fēng),直接使用電話機(jī),。接著出現(xiàn)窗體Form1,,并自動(dòng)啟動(dòng)附件下的錄音機(jī)。進(jìn)行通話錄音時(shí),,單擊仿真電話拔號(hào)盤上的免提鍵及錄音機(jī)上的錄制按鈕,,開始錄音,。錄制的聲音文件被嵌入OLE容器中,同時(shí)被寫到與OLE容器連接的數(shù)據(jù)庫(kù)Recorder.mdb中,,并自動(dòng)生成錄音的日期時(shí)間,。除了錄音功能外,還可以通過點(diǎn)擊Data控件上的箭頭按鈕選擇記錄查詢,,雙擊OLE容器(顯示為喇叭圖標(biāo)),;自動(dòng)播放選擇的通話錄音。如果再給窗體Form1添上DBComboBox,、DBGrid控件,,將使其查詢功能更為完善。 順便提一下,,剛寫完這篇文章,我又找到一個(gè)可在Win95注冊(cè)的錄音軟件,,就是創(chuàng)新的SoundO‘LE,,由于界面漂亮且沒有限制錄音長(zhǎng)度(附件的錄音機(jī)的錄音長(zhǎng)度只有一分鐘),我將準(zhǔn)備拿它來取代那土里上氣的錄音機(jī),,使得我的小程序更具專業(yè)性,。 以上代碼在VB5.0、Win95系統(tǒng)上調(diào)試通過,。 |
|