GMS97C2051與ISD2560組成的小型語音系統(tǒng)
摘要:介紹單片機(jī)GMS97C2051與語音芯片ISD2560組成的電腦語音系統(tǒng),給出實(shí)用電路和錄、放音程序框圖以及源程序。系統(tǒng)硬件電路簡(jiǎn)單,調(diào)試方便,性價(jià)比高,實(shí)用性強(qiáng),可作為電腦語音服務(wù)系統(tǒng)的語音板,具有一定的實(shí)用價(jià)值和參考價(jià)值。
本文引用地址:http://www.ex-cimer.com/article/242324.htm關(guān)鍵詞:GMS97C2051單片機(jī) ISD2560語音芯片 分段錄音 組合回放
目前電腦語音服務(wù)行業(yè)越來越廣,如電腦語音鐘、語音型數(shù)字萬用表、手機(jī)話費(fèi)查詢系統(tǒng)、排隊(duì)機(jī)以及公共汽車報(bào)站器等等。筆者用單片機(jī)GMS97C2051和ISD2560設(shè)計(jì)了一款微電腦語音板,實(shí)現(xiàn)了語音的分段錄取、組合回放,通過軟件的修改還可以實(shí)現(xiàn)整段錄取,循環(huán)播放。該系統(tǒng)完成語音錄放功能,可作為語音服務(wù)系統(tǒng)的子系統(tǒng),而且不必使用專門的ISD語音開發(fā)設(shè)備。
1 系統(tǒng)簡(jiǎn)介與接口電路
GMS97C2051是LG半導(dǎo)體公司生產(chǎn)的一種功能強(qiáng)大的微控制器,為很多嵌入式控制應(yīng)用系統(tǒng)提供了一個(gè)高度靈活有效的解決方案。GMS97C2051帶有2K字節(jié)可編程的EEPROM、128字節(jié)RAM、15根I/O線、2個(gè)16位定時(shí)/計(jì)數(shù)器、1個(gè)全雙向的串口、1個(gè)精密比較器等等。其與工業(yè)標(biāo)準(zhǔn)MCS-51的指令集和引腳兼容。引腳排列如 圖1(a) 所示。
P1口是一個(gè)雙向I/O口,其中P1.2~P1.7口內(nèi)部提供了上拉電阻,P1.0、P1.1需外部上拉。P1.0、 P1.1同時(shí)也是片內(nèi)精密比較器的正輸入端(AIN0)和負(fù)輸入端(AIN1)。P3口是7個(gè)帶有內(nèi)部上拉電阻的雙向口(P3.6除外,其為片內(nèi)比較器的輸出腳,而不能作為普通的I/O口使用)。GMS97C2051具體性能請(qǐng)見參考文獻(xiàn)[1]。
ISD2560是ISD系列單片語音錄放集成電路的一種,是一種永久記憶型錄放語音電路,錄音時(shí)間為60 s,能重復(fù)錄放達(dá)10萬次。它采用直接電平存儲(chǔ)技術(shù),省去了A/D、D/A轉(zhuǎn)換器。ISD2560集成度較高,內(nèi)部包括前置放大器、內(nèi)部時(shí)鐘、定時(shí)器、采樣時(shí)鐘、濾波器、自動(dòng)增益控制、邏輯控制、模擬收發(fā)器、解碼器和480 K字節(jié)的EEPROM等等。內(nèi)部EEPROM存儲(chǔ)單元,均勻分為600行,具有600個(gè)地址單元,每個(gè)地址單元指向其中一行,每一個(gè)地址單元的地址分辨率為100 ms。ISD2560控制電平與TTL電平兼容,接口簡(jiǎn)單,使用方便。引腳排列如圖1(b)所示。
◇ A0~A9為地址線,共有1 024種組合狀態(tài)。最前面的600個(gè)狀態(tài)作內(nèi)部存儲(chǔ)器的尋址用,最后256個(gè)狀態(tài)作為操作模式,具體使用見參考文獻(xiàn)[2]。本系統(tǒng)采用對(duì)地址直接進(jìn)行操作的方式。
◇ 微處理器接口端: P/R錄放音控制端,此端為高電平時(shí)為放音狀態(tài),為低電平時(shí)為錄音狀態(tài);端用于錄放音時(shí)的啟停控制,通常與P/R端配合使用;端為每段信息結(jié)束信號(hào)輸出端,為負(fù)向信號(hào),時(shí)間為12.5 ms,上升沿標(biāo)志信息結(jié)束。
◇ MIC IN是話筒前置放大器輸入端;MIC REF為話筒補(bǔ)償端,與麥克風(fēng)連接電路如圖2所示;AGC自動(dòng)增益控制端;ANA IN與ANA OUT是模擬信號(hào)的輸入端和輸出端,它們之間連接耦合電容,通常取值為0.22~1μF。
ISD2560與單片機(jī)GMS97C2051的接口電路以及外圍電路如 圖 2 所示。單片機(jī)的P1口、P3.4和 P3.5與ISD2560的地址線相連,用以設(shè)置語音段的起始地址。P3.0~P3.3用以控制錄放音狀態(tài)。P3.7擴(kuò)展一錄音鍵,供錄音時(shí)使用。ISD2560具體性能和使用方法見參考文獻(xiàn)[2]。
2 系統(tǒng)工作原理及程序設(shè)計(jì)
2.1 ISD2560內(nèi)部地址單元尋址
ISD2560雖然提供了地址輸入線,但它的內(nèi)部信息段的地址卻無法讀出。通常使用不需要知道地址的操作模式,但這不能滿足實(shí)際的不同需要。一般使用對(duì)地址進(jìn)行直接操作,而要讀出ISD2560內(nèi)部信息地址需專用的ISD開發(fā)設(shè)備,其價(jià)格較昂貴。本系統(tǒng)采用單片機(jī)來控制,不需讀出信息地址,而直接設(shè)置信息段起始地址。其實(shí)現(xiàn)方式有多種,一種方式為:由于ISD2560的地址分辨率為100 ms,所以可用單片機(jī)內(nèi)部定時(shí)器定時(shí)100 ms,然后再利用一計(jì)數(shù)器對(duì)單片機(jī)定時(shí)次數(shù)進(jìn)行計(jì)數(shù),則計(jì)數(shù)器的計(jì)數(shù)值為語音段所占用的地址單元。該方式能充分利用ISD2560內(nèi)部的EEPROM,在字段較多時(shí)可利用該方法。該方法的具體使用請(qǐng)見參考文獻(xiàn)[4]。語音字段如果較少,則可用下面的方式:根據(jù)每一字段的內(nèi)容多少,直接分配地址單元。一般按每1 s說3個(gè)字計(jì)算,60 s可說180個(gè)字,再根據(jù)ISD2560的地址分辨率為100 ms,即可計(jì)算出語音段所需的地址單元數(shù)。本系統(tǒng)即采用該方式。
2.2 錄放音時(shí)GMS97C2051單片機(jī)對(duì)ISD2560的控制
錄音時(shí),按下錄音鍵,單片機(jī)通過口線設(shè)置語音段的起始地址,再使PD端、P/R端和端為低電平啟動(dòng)錄音;結(jié)束時(shí),松開按鍵,單片機(jī)又讓端回到高電平,即完成一段語音的錄制。同樣的方法可錄取第二段、第三段等等。值得注意的是,錄音時(shí)間不能超過預(yù)先設(shè)定的每段語音的時(shí)間。
放音時(shí),根據(jù)需播放的語音內(nèi)容,找到相應(yīng)的語音段起始地址,并通過口線送出。再將P/R端設(shè)為高電平,PD端設(shè)為低電平,并讓端產(chǎn)生一負(fù)脈沖啟動(dòng)放音,這時(shí)單片機(jī)只需等待ISD2560的信息結(jié)束信號(hào),即的產(chǎn)生。信號(hào)為一負(fù)脈沖,在負(fù)脈沖的上升沿,該段語音才播放結(jié)束,所以單片機(jī)必須要檢測(cè)到的上升沿才能播放第二段,否則播放的語音就不連續(xù),而且會(huì)產(chǎn)生啪啪聲,這一點(diǎn)在編制軟件時(shí)一定要注意。錄放音程序框圖如 圖 3、圖 4 所示。
2.3 系統(tǒng)接口源程序
下面編制了錄取5段語音信息的錄音程序和對(duì)這5段語音進(jìn)行組合播放的源程序。播放時(shí),可根據(jù)實(shí)際情況組合回放。實(shí)際需要時(shí),可對(duì)該程序進(jìn)行擴(kuò)充。
評(píng)論