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

  引言

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

  1 系統(tǒng)結構及軟硬件設計

  1.1 系統(tǒng)結構及工作原理

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

a.jpg

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

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

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

  1.2.2 語音電路設計

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

b.jpg

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

  1.3 對語音信息的操作

  1.3.1 語音信號錄入

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

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

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

  c.jpg

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

  1.3.3 指定地址段語音的檢查和播報地址的確定

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

  d.jpg

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

  1.3.4 多段語音回放

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

e.jpg

  結語

  介紹了基于單片機STC89C52RC控制的多段語音組合輸出設計過程中的幾個關鍵步驟。

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

  值得注意的是:

  在硬件設計中,數(shù)字地和模擬地要單獨走線,最后一點接地。

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

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



 

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