本文介紹了由Flash單片機(jī)AT89C2051及數(shù)碼語音芯片ISD2560組成的電腦語音系統(tǒng)設(shè)計(jì)出了系統(tǒng)的硬件電路,給出了錄、放音實(shí)用的源程序。目前基于單片微機(jī)的語音系統(tǒng)的應(yīng)用越來越廣泛,如電腦語音鐘、語音型數(shù)字萬用表、手機(jī)話費(fèi)查詢系統(tǒng)、排隊(duì)機(jī)、監(jiān)控系統(tǒng)語音報(bào)警以及公共汽車報(bào)站器等等。
語音芯片應(yīng)用電路
ISD2560 是ISD 系列單片語音錄放集成電路的一種,是一種永久記憶型錄放語音電路,錄音時(shí)間為60 秒,能重復(fù)錄放達(dá)10 萬次。它采用直接電平存儲(chǔ)技術(shù),省去了A/D、D/A 轉(zhuǎn)換器。ISD2560 集成度高,內(nèi)部包括前置放大器、內(nèi)部時(shí)鐘、定時(shí)器、采樣時(shí)鐘、濾波器、自動(dòng)增益控制、邏輯控制、模擬收發(fā)器、解碼器、和480KB 的EERPOM 等。內(nèi)部EERPOM存儲(chǔ)單元,均勻分為600 行,具有600 個(gè)地址單元,每個(gè)地址單元指向其中一行,每一個(gè)地址單元的地址分辨率為100MS。ISD2560 控制電平與TTL 電平兼容,接口簡單,使用方便。
ISD2560 內(nèi)置了若干操作模式,可用最少的外圍器件實(shí)現(xiàn)最多的功能。操作模式也有地址端控制;當(dāng)最高位都為1 時(shí),其他地址端最高就選擇某個(gè)模式。因此操作模式和直接尋址相互排斥。操作模式可由微控制器也可有硬件實(shí)現(xiàn)?;倦娐吩韴D如下:錄音按下錄音鍵接地,是PD 端、P/R 端為低電平,此時(shí)啟動(dòng)錄音;結(jié)束時(shí)松開按鍵,單片機(jī)有讓P/R 端回到高電平,既完成一段語音的錄制。同樣的方法可錄取第二段、第三段等。值得注意的是,錄音時(shí)間不能超過預(yù)先設(shè)定的每段語音的時(shí)間。放音的操作更為簡單,按下錄音鍵接高電平,使P/D 端P/R 端為低電平啟動(dòng)方音功能;結(jié)束時(shí),松開按鍵,即完成一段語音的播放。
采樣單片機(jī)控制語音芯片
錄音時(shí),按下錄音鍵,單片機(jī)通過D 端口線設(shè)置語音段的起始地址,再使PD 端、P/R 端為低電平啟動(dòng)錄音;結(jié)束時(shí),松開按鍵,單片機(jī)有讓P/R 端回到高電平,即完成一段語音的錄制。同樣的方法可以錄取第二段、第三段等。值得注意的是,錄音時(shí)間不能超過預(yù)先設(shè)定的每段語音的時(shí)間。
放音時(shí),根據(jù)需播放的語音內(nèi)容,找到相應(yīng)的語音段起始地址,并通過口線送出。P/R 端設(shè)為低電平,并讓/CE 端產(chǎn)生一負(fù)脈沖啟動(dòng)放音,這時(shí)單片機(jī)只需要等待ISD2560信息結(jié)束信號(hào)。信號(hào)為一負(fù)脈沖,在負(fù)脈沖的上升沿,該段語音才播放結(jié)束,所以單片機(jī)必須要檢測(cè)到的上升沿才能播放第二段,否則播放的語音就不連續(xù)。ISD2560 與單片AT89C2051的接口電路以及外圍電路如圖所示。單片機(jī)的P1 口、P3.4 和P3.5 分別與ISD2560 的地址線相連,用以設(shè)置語音段的起始地址。P3.0~P3.3 用以控制錄放音狀態(tài)。P3.7 連接一按鍵,供錄音時(shí)使用。由TL7705($0.1875) 構(gòu)成可靠復(fù)位及電源監(jiān)視電路。
ISD2560 雖然提供了地址輸入線,但它的內(nèi)部信息段的地址卻無法讀出。本系統(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)部的E2PROM,在字段較多時(shí)可利用該方法。二是語音字段如果較少,則可根據(jù)每一字段的內(nèi)容多少,直接分配地址單元。一般按每1 s 說3 個(gè)字計(jì)算,60 s 可說180 個(gè)字,再根據(jù)ISD2560 的地址分辨率為100 ms,即可計(jì)算出語音段所需的地址單元數(shù)。本電路采用第二種方式。