《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)的多段語音組合錄放系統(tǒng)設(shè)計(jì)
單片機(jī)的多段語音組合錄放系統(tǒng)設(shè)計(jì)
摘要: 設(shè)計(jì)了一個(gè)基于單片機(jī)STC89C52RC,、DS18B20溫度傳感器、語音芯片ISD1730構(gòu)成的語音溫度測(cè)量系統(tǒng),給出了語音的分段錄入,、各段語音存放地址的確定,、各段語音的修正、多段語音組合輸出等環(huán)節(jié)的詳細(xì)設(shè)計(jì)過程,。
Abstract:
Key words :
 

  引言

  目前,,在自動(dòng)取款機(jī)、自動(dòng)售貨機(jī),、工業(yè)報(bào)警系統(tǒng),、公路收費(fèi)系統(tǒng)、汽車防撞系統(tǒng),、智能玩具等領(lǐng)域具有語音輸出功能的儀器設(shè)備越來越多,。我們的工作和生活環(huán)境更加人性化、智能化,。但在工業(yè)生產(chǎn)現(xiàn)場(chǎng),,數(shù)碼輸出的手持式測(cè)量?jī)x器得到大量應(yīng)用,給測(cè)量人員讀取測(cè)量結(jié)果帶來了極大的方便,。但是具體操作時(shí),,測(cè)量人員需要將儀器置于便于觀察測(cè)量結(jié)果的地方,然后手持測(cè)量探頭進(jìn)行測(cè)量,,由于測(cè)量環(huán)境的復(fù)雜性,,特別是在狹窄的工業(yè)生產(chǎn)現(xiàn)場(chǎng),既便于實(shí)施測(cè)量作業(yè)又便于觀測(cè)測(cè)量結(jié)果,,二者有時(shí)不能兼顧,。此時(shí),如果儀器具有語音輸出結(jié)果的功能,,將會(huì)給測(cè)量工作人員帶來極大的方便,。筆者設(shè)計(jì)了一個(gè)基于單片機(jī)STC89C52RC、DS18B20溫度傳感器,、語音芯片ISD1730構(gòu)成的語音溫度測(cè)量系統(tǒng),,給出了語音的分段錄入、各段語音存放地址的確定,、各段語音的修正,、多段語音組合輸出等環(huán)節(jié)的詳細(xì)設(shè)計(jì)過程。

  1 系統(tǒng)結(jié)構(gòu)及軟硬件設(shè)計(jì)

  1.1 系統(tǒng)結(jié)構(gòu)及工作原理

  具有語音輸出功能的單片機(jī)測(cè)量,、顯示系統(tǒng)結(jié)構(gòu)框圖如圖1所示,。系統(tǒng)主要由傳感器輸入、STC89C52RC及其外圍電路,、顯示電路,、語音電路和電源電路構(gòu)成,。設(shè)計(jì)時(shí)將需要播報(bào)的語音段(或字)錄入語音芯片(系統(tǒng)失電后語音信息并不會(huì)丟失),系統(tǒng)工作時(shí)STC89C52RC會(huì)對(duì)傳感器的信號(hào)進(jìn)行采集,,通過處理后一方面將結(jié)果輸出顯示,,另一方面分析需要播報(bào)哪些語音段,指令語音模塊將需要播報(bào)的語音段按要求組合進(jìn)行播報(bào),。

a.jpg

  1.2 系統(tǒng)硬件電路

  1.2.1 數(shù)據(jù)采集與顯示部分

  單片機(jī)及其外圍電路由STC89C52RC,、復(fù)位電路、振蕩電路等構(gòu)成單片機(jī)最小系統(tǒng),;數(shù)字溫度傳感器DS18B20以一線形式與STC89C52RC的P3.7端口連接;采用4位數(shù)碼管顯示,,顯示數(shù)據(jù)通過STC89C52RC的P0口,,經(jīng)過74LS573鎖存驅(qū)動(dòng)后對(duì)數(shù)碼管段控制,P2.0~P2.2通過74LS 138譯碼后對(duì)數(shù)碼管的字控制,,實(shí)現(xiàn)動(dòng)態(tài)掃描顯示,。

  1.2.2 語音電路設(shè)計(jì)

  語音芯片采用美國(guó)Winbond公司的ISD1730,工作電壓范圍為2.4~5.5V,,適合與單片機(jī)共用電源,。該芯片適用于需要多段語音存儲(chǔ)與回放的各種高端電子系統(tǒng),根據(jù)其外接振蕩電阻的大小不同,,可以存儲(chǔ)20~60s的信息,。語音電路如圖2所示。在電路中,,振蕩電阻為80kΩ,,最小存儲(chǔ)分辨率為125 ms,可以存放30 s的語音,。信號(hào)以自然語音的形式按行存儲(chǔ)在其內(nèi)部的多級(jí)固態(tài)存儲(chǔ)器內(nèi),,可以通過指令中的11位地址對(duì)每一行的信息精確尋址,存儲(chǔ)的語音信息斷電后不會(huì)丟失,,理論上可以保持一百年,,存儲(chǔ)10萬次。

b.jpg

  對(duì)該芯片的操作有獨(dú)立按鍵和微控制器SPI接口2種方式,。當(dāng)按鍵方式操作時(shí),,通過將圖中的S1~S4分別接地,就可以實(shí)現(xiàn)對(duì)ISD1730芯片復(fù)位,、語音刪除,、語音錄入、語音回放等操作,,這些操作也可以通過STC89C52RC實(shí)現(xiàn),。ISD1730提供了4線(SCLK,、MOSI、MISO等)SPI接口與STC89C52RC連接,,系統(tǒng)采用了STC89C52RC的P1.0,、P1.1、P1.2,、P1.3口模擬SPI時(shí)序?qū)SD1730進(jìn)行操作,。語音輸出方式有2種,系統(tǒng)以PWM的形式驅(qū)動(dòng)一個(gè)8Ω的D級(jí)揚(yáng)聲器(SPEAKER),,也可以配置成AUD(電流)或AUX(電壓)單端輸出的方式驅(qū)動(dòng)外部的音頻放大器,。

  1.3 對(duì)語音信息的操作

  1.3.1 語音信號(hào)錄入

  可以采用商業(yè)的語音拷貝機(jī)或手動(dòng)錄入方式,將語音信號(hào)錄入語音芯片,;手動(dòng)錄入時(shí),,首先借助于聲音魔法師、文語轉(zhuǎn)換小精靈或其他的文字轉(zhuǎn)聲音軟件,,在電腦上將需要錄入的文字轉(zhuǎn)換成多段語音信息,,然后將電腦的耳機(jī)輸出口與如圖2所示的Analn引腳連接,也可以將發(fā)音設(shè)備對(duì)準(zhǔn)MIC,;閉合S33鍵,,打開音源,進(jìn)行錄制,,錄制時(shí)指示燈LED閃亮,;松開S33鍵則該段語音錄制結(jié)束,LED熄滅,,一段語音錄制完成,。同理可錄制下一段;全部語音錄制完成后,,閉合S44鍵并保持,,器件將會(huì)依次將錄制的語音全部播放出來,如果錄制不理想,,可以刪除重來,;閉合S33鍵并保持,LED閃爍7次,,錄制的信息將全部刪除,。

  1.3.2 各段語音在芯片內(nèi)地址的確定

  語音錄制完成后,要實(shí)現(xiàn)對(duì)多段語音組合輸出,,還必須知道每段語音的存儲(chǔ)地址,。STC89C52RC與ISD1730之間采用SPI通信協(xié)議,TC89 C52RC通過MOSI引腳發(fā)送指令給ISD1730,,ISD1730語音芯片通過MISO引腳返回給STC89C52RC指令執(zhí)行的情況和自己內(nèi)部的狀態(tài),,每一個(gè)SPI指令執(zhí)行時(shí)都會(huì)從ISD1730返回2個(gè)字節(jié)的數(shù)據(jù)反映出芯片的狀態(tài),,這2個(gè)字節(jié)的D5~D15位反映了存儲(chǔ)器中當(dāng)前語音段的開始存放地址,因此通過軟件查詢就可以將存儲(chǔ)器中各段語音的存儲(chǔ)地址找出來,。下面是其主要程序片段:

  c.jpg

  當(dāng)系統(tǒng)初始化完成后,,執(zhí)行以上程序,利用串口調(diào)試程序可以觀察到返回的是每段語音存放的開始行的地址,。其結(jié)束行的地址為下一段語音開始行的前一行地址,,這樣就可以得到每段語音存放的開始和結(jié)束地址。

  1.3.3 指定地址段語音的檢查和播報(bào)地址的確定

  知道每段語音的存放地址后,,還必須對(duì)每段語音進(jìn)行檢查,,屏蔽多余的部分。將每段語音的開始地址和結(jié)束地址放在一個(gè)數(shù)組里面,,執(zhí)行下面的程序可以將指定段語音播放出來:

  d.jpg

  采用手動(dòng)錄制的語音,,由于抖動(dòng)和操作者的快慢影響,錄制的語音段的前后部分可能存在盲音或者不需要的信息,。通過執(zhí)行上面的程序可以檢測(cè)出來,然后修改該段語音在數(shù)組里的開始和結(jié)束地址,,繼續(xù)執(zhí)行上面的程序,,反復(fù)幾次使效果達(dá)到滿意,確定最終的播報(bào)地址,,播報(bào)時(shí)就屏蔽了不需要的部分,。

  1.3.4 多段語音回放

  確定了每段語音的播放地址后,需要將多段語音組合,,流利,、自然的播放出來。該系列的語音芯片內(nèi)部有一個(gè)先進(jìn)先出的緩沖存儲(chǔ)器,,可以存放2段語音的存放地址,。當(dāng)?shù)?段語音播放完后,忽略其結(jié)束標(biāo)志(EOM)繼續(xù)播第2段語音,,同時(shí)將第3段語音的地址裝入緩沖存儲(chǔ)器,。這樣,可以減小播放2段信息之間的時(shí)間,,使語音更流暢,,就像播放一段語音一樣。圖3是連續(xù)播放3段語音的流程圖,。當(dāng)需要播放更多段語音時(shí),,簡(jiǎn)單修改即可。

e.jpg

  結(jié)語

  介紹了基于單片機(jī)STC89C52RC控制的多段語音組合輸出設(shè)計(jì)過程中的幾個(gè)關(guān)鍵步驟,。

 ?、偬貏e是錄音時(shí),,并不需要知道各段語音的確切地址和精確時(shí)間,便于單位和個(gè)人制作,,并研制了語音測(cè)溫儀經(jīng)測(cè)試,,該測(cè)溫儀語音播報(bào)流暢、連貫,、準(zhǔn)確,。

  值得注意的是:

  在硬件設(shè)計(jì)中,數(shù)字地和模擬地要單獨(dú)走線,,最后一點(diǎn)接地,。

  ②注意測(cè)量數(shù)據(jù)的顯示與語音播報(bào)之間的協(xié)調(diào),,由于顯示的速度比播報(bào)的速度快得多,,在播報(bào)語音時(shí),顯示數(shù)據(jù)可能不連續(xù),,解決方法是將顯示數(shù)據(jù)鎖存或者在播報(bào)指定段信息的等待期間插入顯示程序,。

  ③在選擇單片機(jī)STC89C52RC與語音芯片ISD1730的連接端口時(shí),,由于各端口的內(nèi)部結(jié)構(gòu)不一樣,,帶負(fù)載的能力不同,選擇P1口可靠性較好,。



 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。