《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(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)鍵步驟。

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

  值得注意的是:

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

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

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



 

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