摘要:設計了一個能夠實現(xiàn)語音記錄且能夠自動播放的系統(tǒng)。整個系統(tǒng)使用AT89S52單片機作為、微控制器,通過對ISD4004的控制實現(xiàn)語音的存儲與回放。PCF8563為本系統(tǒng)提供時間和日歷等信息。當進行錄音和放音時,PCF8563亦可作為計時器件使用。外接矩陣鍵盤和LED數(shù)碼管,可方便人機間的對話。該系統(tǒng)能夠錄放音達16 min,能夠分4段進行錄音和放音,并能實現(xiàn)自動播放,音量大小也可以調節(jié)。該設計的特點還在于可以實現(xiàn)語音的定時自動播放。
關鍵詞:PCF8563;ISD4004語音芯片;單片機;語音記錄;回放
0 引 言
隨著數(shù)字電子技術的發(fā)展和單片機等微控制器的產生,語音的存儲與自動播放變得易于實現(xiàn)。目前語音存儲與自動播放系統(tǒng)已經廣泛應用于日常生活當中。公共汽車上的語音報站器、銀行和醫(yī)院的排隊等候系統(tǒng)等,都是語音存儲與自動播報系統(tǒng)的應用。本文介紹一種以語音存儲與自動播放系統(tǒng)為基礎的語音播報記事器設計。該設計以ISD4004:語音芯片和AT89S52單片機為中心,很好地實現(xiàn)了語音存儲與自動播放。
1 硬件設計原理
語音播報記事器的主要功能是實現(xiàn)語音存儲與定時播放。要實現(xiàn)語音存儲與定時播放的方法很多,可供選擇的器件也很多。由于單片機等微控制器的出現(xiàn)和數(shù)字電路技術的發(fā)展,使得現(xiàn)在的語音存儲與自動播放變得易于實現(xiàn)。本設計采用單片機作為微控制器。單片機的字長由4位、8位、16位發(fā)展到32位。目前這幾種字長的單片機同時存在于市場,用戶可以根據(jù)不同的需要進行選擇。本系統(tǒng)選用字長為8位的AT89S52單片機作為控制器。
目前可以與單片機配合使用的語音芯片有很多,其中不乏性能十分優(yōu)越的語音芯片,美國ISD公司生產的ISD4004語音芯片就是它們中的一員。ISD4004芯片采用CMOS技術,內含振蕩器、防混淆濾波器、平滑濾波器、音頻放大器、自動靜噪及高密度多電平閃爍存貯陣列。引腳包括電源、時鐘、語音信號模擬輸入/輸出端、與MCU接口(SPI接口)幾部分。芯片采用多電平直接模擬量存儲技術,每個采樣值直接存貯在片內閃爍存貯器中,因此能夠非常真實、自然地再現(xiàn)語音。
ISD4004系列單片錄放時間為8~16 min,采樣頻率可為4.0/5.3/6.4/8.0 kHz,頻率越低,錄放時間越長,而音質則有所下降。芯片設計基于所有操作必須由微控制器控制,操作命令可通過串行通信接口(SPI或Mi-crowire)送入。由于ISD4004的眾多優(yōu)點,本設計就采用它作為錄放音器件。
系統(tǒng)外接時鐘芯片PCF8563、矩陣鍵盤LED顯示和E2PROM AT24C01。錄音時為了改善語音質量,要提高輸入端的信噪比,因此在系統(tǒng)的輸入端采用三極管(9014)放大電路單端輸入,系統(tǒng)的輸出端經音頻功率放大器LM386放大輸出后驅動揚聲器。整個系統(tǒng)的系統(tǒng)框圖如圖1所示。
2 硬件設計
2.1 語音輸入與輸出電路設計
語音信號經過駐極體話筒轉化為的電信號很微弱,在送入語音芯片之前需要經過放大。這樣做的目的是為了提高信號的信噪比,以達到更好的抑制噪聲的目的。由于聲電轉換器件使用的是駐極體話筒,所以后級放大電路使用三極管作為放大器件即可滿足要求。本設計中從語音芯片輸出的語音信號很微弱,不能直接驅動揚聲器,所以要在語音芯片和揚聲器之間加上一個功率放大電路。功率放大電路使用美國國家半導體公司生產的音頻功率放大器LM386并配合少許電容電阻構成。該功放電路的放大效果良好,噪音小,可以滿足本設計的要求。
2.2 顯示電路設計
本設計的顯示部分使用LED數(shù)碼管。為了提高LED顯示的亮度,在本設計中,將a,b,c,d,e,f,g引腳分別串聯(lián)300 Ω的電阻后接5 V電壓即可。本設計采用軟件查表方式輸出。當系統(tǒng)沒有錄放音時,需要顯示年、月、日、時、分、秒、星期等信息;當系統(tǒng)有錄放音時,需要顯示與錄放音有關的信息。這樣,整個系統(tǒng)一共需要15個數(shù)碼管。為了節(jié)省單片機的I/O口,顯示部分使用了74LS154,單片機與LED的接口采用動態(tài)接口。74LS154是4線16線譯碼器,用于將單片機的輸出譯碼后作為LED的片選信號使用。
2.3 PCF8563接口電路設計
PCF8563是飛利浦公司生產的低功耗的CMOS實時時鐘/日歷芯片,是I2C總線接口器件。設計中,PCF8563用來提供時間和日歷信息。當沒有進行錄音和放音操作時,本設計相當于一個萬年歷;當進行錄音或放音時,PCF8563用來對每段錄音或放音進行計時,所有的時間信息均通過LED數(shù)碼管顯示出來。由于PCF8563是漏極開路,所以必須要加5.1 kΩ的上拉電阻。PCF8563與AT89S52的接口電路設計如圖2所示。
[!--empirenews.page--]
2.4 ISD4004接口電路設計
本設計使用ISD4004-16M型號的語音芯片。這款語音芯片可以錄音16 min,它有一個端口為RAC端,RAC為行地址時鐘端,每個RAC周期表示ISD存儲器的操作進行了1行(ISD4004系列中的存貯器共2 400行),所以RAC端的行地址數(shù)目與語音芯片中存儲器的行數(shù)對應,即語音芯片存放的每段錄音的初始與結束地址與惟一的RAC行地址數(shù)對應。所以只需將RAC端與單片機的計數(shù)端相連,僅記錄RAC行地址數(shù)目即可實現(xiàn)整個錄放操作,且單片機的計數(shù)器無需中斷。根據(jù)以上的思想,設計ISD4004與單片機的接口電路如圖3所示。
3 軟件設計
本設計中的程序設計包括以下幾個部分,即鍵盤處理程序、ISD4004放音驅動程序、ISD4004錄音驅動程序、時間校正程序、錄音子程序、放音子程序、播放時間設置子程序、播放選擇程序、子程序設計。圖4為主程序流程圖。
4 系統(tǒng)測試
系統(tǒng)上電后15個數(shù)碼管全亮大概3 s,以此檢測數(shù)碼管的好壞。之后數(shù)碼管會出現(xiàn)年、月、日、星期、時、分、秒等信息。當按下錄音鍵后,系統(tǒng)開始錄音。錄音時,數(shù)碼管會顯示“SAVE”字樣,并會顯示該段錄音的時間信息;當確定鍵按下后,該語音段的錄音結束,數(shù)碼管重新顯示時間信息。當按下放音鍵時,系統(tǒng)開始放音,這時數(shù)碼管會顯示“PLAY”字樣,并會顯示該段錄音的時間信息。放音結束后數(shù)碼管會回到時間顯示界面。當按下時間校正鍵后,便可以對時間進行校正;當按下確定鍵后,時間校正結束。本系統(tǒng)可以錄音15 min,可以錄4段錄音。當按下播放設置鍵后,就可以對每段錄音的播放時間進行設置;當按下播放選擇鍵后,就可以播放4段錄音中的任意一段。
本系統(tǒng)在播放錄音時會有少量的噪音,可能由以下原因造成:
(1)整個系統(tǒng)完全是手工焊制,線路之間存在干擾;
(2)ISD4004的數(shù)字地與模擬地沒有分別走線,全部接到了一起,存在干擾;
(3)語音輸入放大電路的放大倍數(shù)不夠,噪聲沒有得到足夠的抑制。
整個系統(tǒng)的設計合理,外圍電路結構簡單,方便調試;單片機余留有I/O口,方便系統(tǒng)的升級和擴展;單片機的所有程序均使用C-51進行編寫,方便調試和閱讀。整個系統(tǒng)工作穩(wěn)定,操作方便。本設計的設計原理完全可以用在公共汽車上,作為語音報站器使用,也可以用在銀行和醫(yī)院等一些需要自動播報語音信息的公共場所。在本設計的基礎上稍加擴充,就可以滿足實際應用的需要。