• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        VB中“會報數(shù)的計算器”的基本完成

        VB中“會報數(shù)的計算器”的基本完成

        更新時間:2022-05-10 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        一段"古老"的構(gòu)思; 兩組不難的程序;三個常見的軟件;

        這就請你編出"會報數(shù)的計算器"!

          一段"古老"的構(gòu)思:

          記得還是在97年春天的時候,老師讓我在電腦上統(tǒng)計全班考試的總成績。我一個人在桌前一邊用Windows附件里的計算器,一邊手里那著厚厚的考卷往電腦里輸入成績。眼睛一會看考卷,一會移向屏幕,一會兒又得盯著鍵盤上右邊的數(shù)字鍵。這樣不僅眼睛和脖子累得很,而且很容易把數(shù)字錄入錯了。忽然想起宿舍小賣部里的那臺會發(fā)音的計算器,它在按數(shù)字鍵時它會主動報出數(shù)字來。

           那時我剛剛成為Visual Basic的狂熱愛好者,馬上就想到用VB必然可以編出這種會語音報數(shù)的計算器來,并且讓這個程序僅用一張3寸軟盤就可以裝下。

          兩組不難的程序:

          用VB實(shí)現(xiàn)一個計算器的功能,我想這就不用我多說了吧?VB自帶的范例里就已經(jīng)有計算器的程序了(在VB目錄下的samples/calc中)。這是VB教學(xué)里最基本的程序,但是這個自帶的計算器程序只能用鼠標(biāo)點(diǎn)擊計算器上的數(shù)字鍵時才能輸入數(shù)字,所以我們還要加上響應(yīng)數(shù)字鍵盤的程序。這一點(diǎn)VB的初學(xué)者都可以輕易解決。

          另一個技術(shù)上的關(guān)鍵就是讓計算機(jī)發(fā)音,這個問題在VB里同樣可以解決。我們事先錄下一段起名為sound.wav的聲音文件。然后再用VB的多媒體控制接口MMControl控件命令來控制播放這段聲音文件就可以了。你要是在VB的工具箱ToolBox中找不到MCI控件,可以在菜單里的"Tools"中"CustomControls"選"Microsoft Multimedia Control"對象就可以在工具箱中增加MMControl對象。

          看,"發(fā)音計算器"程序主要構(gòu)成就是這兩組不難的模塊部分。 但是構(gòu)思的最精彩細(xì)節(jié)還在后面。

          三個常見的軟件:

          首先我們要錄一段聲音文件。如圖1,對著WINDOWS附件中的錄音機(jī)快速而又有停頓地念出1234567890,把他們起名存成sound.wav文件。這個過程不用我細(xì)細(xì)描述了吧?但要注意錄音的音頻屬性要調(diào)整為收音質(zhì)量品質(zhì),用不著象CD一樣的音質(zhì),這樣文件就可以少占用空間了。看這段wav文件只有80K大小、3.7秒長,但這還只是開始,我們后面還有絕招。

          第二個要用到的軟件就是COOL,這是一個音頻處理軟件。它需要注冊才能同時使用全部功能,但是我們這里僅用到COOL1.33版的一部分編輯和存盤的功能就足夠了。因?yàn)榇宋氖瞧?quot;古老"的東西,所以1.33版已是很老的玩意了,現(xiàn)在應(yīng)該早就有了很多的更新版本。實(shí)際剛才錄下的聲音文件在每個數(shù)字聲波間隔中還有很大一段沒有有用信息的空間。如圖2,用Zoom in放大聲波文件我們就可以看到數(shù)字發(fā)音1和2中有0.2秒的無用信息,數(shù)字發(fā)音1前也有一段無用信息。用鼠標(biāo)選中它們后刪除,刪除的同時你就可以看到COOL軟件下方隨時都在報這段文件改動后的大小和時間長短。經(jīng)過簡單的刪除,緊縮的聲音文件一下就變成了42K、2秒大小了。其實(shí)要是仔細(xì)修飾和調(diào)整聲波文件,再用COOL重新選擇編碼方式還就可以把文件作得更小。這就使一張3寸軟盤就可以裝下整個發(fā)音計算器軟件的可能變可行。另外還要注意COOL右下角的Time參數(shù),用它和放大波形圖的配合可以精確地標(biāo)算出每一個數(shù)字發(fā)音文件的起始位和結(jié)束位,一會我們在VB中就要用到它所標(biāo)出的參數(shù)定位。

          第三個軟件當(dāng)然是我們的VB大寶寶。先來個小實(shí)驗(yàn):如圖3,用上面描述過的方法在窗體加上一個MCI多媒體播放器的控件,再加上一個按鈕,上面標(biāo)上數(shù)字2。加入一下程序代碼:

        Private Sub

        Form_Load()

        MMControl1.TimeFormat = 0

        MMControl1.DeviceType = "waveaudio"

        MMControl1.filename = "c:\sound.wav"

        MMControl1.Command = "open"

        End Sub

          這些代碼告訴了電腦設(shè)定計時方式為把1秒分成1000個單位;啟動MCI控件播放聲波.wav的文件;通知電腦要播放的文件所處位置;打開MCI控件作好播放準(zhǔn)備。

          再在"2"按鈕中加入代碼:

        Private Sub

        Command1_Click()

        MMControl1.From = 180:

        MMControl1.To = 400

        MMControl1.Command = "play"

        End Sub

          一運(yùn)行按按鈕就會清晰地發(fā)出"2"這一發(fā)音。現(xiàn)在我們可以說對整個"發(fā)音計算器"程序的實(shí)現(xiàn)有了一個清楚的認(rèn)識了吧?通過VB的From和To的控制,我們可以挑選.wav文件的任意一段來播放。我們可以通過COOL軟件精確地知道在sound.wav文件中從0.18秒到0.4秒是"2"這一數(shù)字的發(fā)音。COOL之類的音頻處理軟件和VB的MCI多媒體控件對聲波文件的播放功能之完美組合就可以化不可能為可能。我們在計算器按那個數(shù)字鍵時同時就讓MCI控件播放那個數(shù)字的發(fā)音片段,比如和Select Case Index語句作簡單配合就可以輕而易舉地實(shí)現(xiàn)按數(shù)字發(fā)音的效果,篇幅有限這里就不再具體描述了。整個程序的主體用不著半天就可以完成了,而且相當(dāng)實(shí)用。使用計算器時眼睛只用看著紙面,手指就可以在數(shù)字小鍵盤上瀟灑輕快地點(diǎn)動著。請你快快實(shí)現(xiàn)它吧,作為你開發(fā)的又一個自由軟件成名于天下。

          不過要想讓它可靠實(shí)用地工作還有一些工作要做。比如聲音里還要加入"+-*/= . 清0"等符號的聲音,還要有除0時的警告,如果我們用API形式來播放聲音文件還要具體考慮聲音的同步異步播放、函數(shù)在聲音播放后的返不返回問題,還應(yīng)該加入對計算結(jié)果的逐字讀出的等功能,要開發(fā)也得加上科學(xué)計算器的形式……好苦呀!所以我把這些工作都留給了你。


          ^_^ 后記:也許當(dāng)時就早有人用到了這個小構(gòu)思,但我在自己想出這個主意的時候還是很有成就感的,不用為每一個數(shù)字鍵都作一段錄音了,節(jié)省了大量的空間和簡化了程序的運(yùn)行過程。最近發(fā)現(xiàn)北京114電話查詢臺播報號碼時很可能也是利用了播放數(shù)字聲音片段的方式,有些發(fā)音電子記事本可能也是"抄襲"了我的技術(shù)。由此延伸,其實(shí)會報時的鬧鐘、計時器、車船飛機(jī)的售票處、旅館車站查詢服務(wù)臺等等很多地方都可以用這樣的方法來完成種種發(fā)音功能。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 国产精品99精品久久免费| 中文字幕乱码亚洲无线三区| 高清永久免费观看| 亚洲精品99久久久久中文字幕 | 一二三四免费观看在线视频中文版 | 亚洲精品视频久久| 99re免费在线视频| 亚洲精品中文字幕乱码影院| 91禁漫免费进入| 亚洲一区二区三区久久| 91在线视频免费91| 亚洲AV第一成肉网| 亚洲精品视频在线看| 国产一级黄片儿免费看| 亚洲人成电影亚洲人成9999网 | 黄瓜视频高清在线看免费下载| 亚洲狠狠成人综合网| 欧洲精品免费一区二区三区| 激情婷婷成人亚洲综合| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 国产亚洲免费的视频看| 亚洲国产精品久久66| 亚洲视频免费播放| 亚洲中文字幕无码中文字| 免费a级毛片网站| 久久久精品免费国产四虎| 亚洲欧洲尹人香蕉综合| 精品国产免费一区二区| 国产精品九九久久免费视频| 亚洲成人精品久久| 毛片免费全部免费观看| 一级全免费视频播放| 亚洲精品国产情侣av在线| 国产男女猛烈无遮挡免费网站| 一区二区视频免费观看| 亚洲白色白色在线播放| 一本久久综合亚洲鲁鲁五月天| 国产成人精品无码免费看| 亚洲午夜精品一区二区麻豆| 亚洲人成色777777在线观看| 成人女人A级毛片免费软件 |