論述了基于ISD1420和AT89C55的數(shù)字語(yǔ)音錄放系統(tǒng)的設(shè)計(jì)方案,將其應(yīng)用在智能地磅數(shù)據(jù)采集器 中,成為能夠?qū)崿F(xiàn)人機(jī)對(duì)話功能的語(yǔ)音提示器,可以大大提高工作效率,為智能地磅數(shù)據(jù)采集器的 推廣使用提供了廣闊的空間。
0.引言
隨著現(xiàn)代電子、電器產(chǎn)品及設(shè)備智能化水平的 不斷提高,數(shù)字語(yǔ)音系統(tǒng)在國(guó)內(nèi)外都得到了廣泛的 應(yīng)用,滲透到儀器儀表、機(jī)電一體化、人工智能、 郵電業(yè)務(wù)等許多領(lǐng)域。傳統(tǒng)語(yǔ)音組合電路設(shè)計(jì)復(fù) 雜,開發(fā)工具昂貴,語(yǔ)音錄制及軟件編制工作量巨 大,組合出來(lái)的語(yǔ)音效果也不甚理想,尤其在投資 不大的產(chǎn)品、系統(tǒng)中最為突出,從而制約了這一技 術(shù)的應(yīng)用和發(fā)展。近幾年來(lái),模擬存儲(chǔ)語(yǔ)音技術(shù)的 ISD芯片及其廉價(jià)的開發(fā)編輯工具的問(wèn)世,才使得 情況大為改觀。本文詳細(xì)地論述了基于語(yǔ)音芯片 ISD1420和AT89C55的數(shù)字語(yǔ)音錄放系統(tǒng)的設(shè)計(jì)方 案。
1.系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
用語(yǔ)音芯片ISD1420和單片機(jī)AT89C55設(shè)計(jì)的 數(shù)字語(yǔ)音錄放系統(tǒng)應(yīng)用在智能地磅數(shù)據(jù)采集器中, 只需簡(jiǎn)單的按鍵操作,就能實(shí)現(xiàn)人機(jī)對(duì)話控制,如 提醒貨車上衡,對(duì)木材重量做出指示等。ISD1420可 分段存貯20s語(yǔ)音信息,將ISD1420的A1 -A7與單 片機(jī)CPU的I/O 口連接,可單獨(dú)提取160段語(yǔ)音信 息,并且在軟件的支持下可自動(dòng)組合成若干段所需 要的完整的長(zhǎng)短句。如:“歡迎使用,請(qǐng)上衡”,“木 材重量為五千三百二十六千克,請(qǐng)下衡”等。這樣 既減少了人為操作的弊端,又方便了用戶使用,為 智能地衡數(shù)據(jù)采集器的推廣使用提供了更廣大的空 間。系統(tǒng)框圖如圖]。
由圖1可知整個(gè)數(shù)字語(yǔ)音系統(tǒng)的工作過(guò)程,當(dāng) 用戶進(jìn)行錄音或放音的按鍵操作時(shí),單片機(jī)就會(huì)通 過(guò)口線給出語(yǔ)音段的起始地址,再給出低電平去觸
發(fā)錄音或放音。
1.1功放電路
功放電路如圖2,若要改變放大電路的低段頻 率響應(yīng),則可在電路圖的1腳和5腳間串接一個(gè)RC 網(wǎng)絡(luò),該串接RC網(wǎng)絡(luò)的阻容值應(yīng)視具體要求而調(diào)
整。
1.2 ISD1420語(yǔ)音組合電路
1.2.1語(yǔ)音組合電路的原理
ISD1420是采用模擬存取技術(shù)集成的可反復(fù)錄 放的20s語(yǔ)音芯片,具有掉電保護(hù)功能,最大可分 160段,最小每段語(yǔ)音長(zhǎng)度為125ms,每段語(yǔ)音都可 由地址線控制輸出,每125ms為一個(gè)地址,由A0- A7 8根地址線控制,用戶錄制的語(yǔ)音每一段結(jié)束后, 芯片自動(dòng)設(shè)有段結(jié)束標(biāo)志(EOM),芯片錄滿后設(shè) 有溢出標(biāo)志(OVF)。如果用單片機(jī)控制電路按某一 段的起始地址進(jìn)行放音操作,遇到段結(jié)束標(biāo)志(EOM)即自動(dòng)停止放音,單片機(jī)收到段結(jié)束標(biāo)志 (EOM )就開始觸發(fā)下一段語(yǔ)音的起始地址,如此 控制便可以將很多不同段的語(yǔ)音組合成一句話放出 來(lái),實(shí)現(xiàn)語(yǔ)音的自動(dòng)組合。
每個(gè)語(yǔ)音段的時(shí)間其關(guān)系公式為:
7= 0.125 x (128A7+64A6+32A5+16A4+8A3+4A2+ 2A1+0)
用戶可以先通過(guò)專用的ISD1425語(yǔ)音編程拷貝 機(jī)將需要的語(yǔ)音分段編程、連續(xù)錄制到芯片中,每 段語(yǔ)音的長(zhǎng)度不限,制成語(yǔ)音源片后,將源片的錄 音端封住不讓其再做錄音操作,再由單片機(jī)電路控 制放音,其過(guò)程為:首先單片機(jī)將ISD1420語(yǔ)音芯 片完整搜索一遍,自動(dòng)找出每一段的起始地址,按 分段順序編號(hào)存入外置的串行存儲(chǔ)器中;然后用戶 通過(guò)單片機(jī)串口發(fā)出指令,單片機(jī)即將這些段的編 號(hào)、地址一一調(diào)出;依次向語(yǔ)音芯片發(fā)出首地址; 放音該段;該段結(jié)束;單片機(jī)收到EOM標(biāo)志;單 片機(jī)發(fā)出下一段語(yǔ)音的首地址;放音該段,如此工 作?直到要求的一句話合成完畢。
這種控制方式有較強(qiáng)的通用性和方便性,它不 需要事先規(guī)定每段語(yǔ)音的時(shí)間長(zhǎng)度、總段數(shù),甚至 不需要知道每段語(yǔ)音在ISD1420芯片上的具體地址, 只要用戶記住錄入語(yǔ)音的段順序即可控制各段語(yǔ) 音,頭現(xiàn)自由組合。
1.2.2語(yǔ)音組合電路
語(yǔ)音組合電路如圖3。首先,跳線開關(guān)置于“1- 2”學(xué)習(xí)功能位上,用戶按動(dòng)按鍵AN,單片機(jī) AT89C55即控制ISD1420語(yǔ)音芯片從頭至尾放音一 遍,它會(huì)將語(yǔ)音芯片中的每一段語(yǔ)音的起始地址都 記錄到串行存儲(chǔ)器24C16中,即完成了芯片搜索操 作。然后,跳線開關(guān)置于“2-3”組合功能位上,用 戶可按照RS-232標(biāo)準(zhǔn)串口協(xié)議向單片機(jī)的RX端發(fā) 送合成指令,單片機(jī)即將合成命令翻譯成對(duì)應(yīng)的語(yǔ) 音芯片中各段語(yǔ)音的起始地址,并控制語(yǔ)音芯片發(fā) 出需要的語(yǔ)音,一段結(jié)束后立刻又播發(fā)需要的下一 段,如此將一句話合成“說(shuō)”完。在單片機(jī)的TX 端將作為忙信號(hào)端使用,當(dāng)有語(yǔ)音輸出時(shí)該端將保 持低電平,空閑時(shí)為高電平。
單片機(jī)遵循標(biāo)準(zhǔn)5V的RS-2 32串口協(xié)議方式 (TX、RX雙線,串口方式一、無(wú)校驗(yàn)),整個(gè)電路 的電源電壓5-12V,靜態(tài)電流13mA,工作電流 150mA,接口電平5V,外接喇叭4-8 0,輸出音頻 功率0.5W,還可以方便地外接功放機(jī)或有源音箱擴(kuò) 音使用。
2.語(yǔ)音錄放系統(tǒng)的應(yīng)用
某系統(tǒng)中需要一個(gè)能提示貨車上下衡以及播報(bào) 木材重量的語(yǔ)音單元,經(jīng)過(guò)對(duì)所有語(yǔ)句的拆字分 析,有以下23段字、詞素、提示音需要組合使用: 幺(00)、零(01)、-(02)、二(03)、三(04)、四(05)、五 (06)、六(07)、七(08)、八(09)、九(0A)、十(0B)、百 (0C)、千(0D)、千克(0E)、木材重量為(0F)、歡迎 使用(10)、請(qǐng)(11)、上(12)、下(13)、衡(14), 謝謝使用(15),再見(jiàn)(16)??梢韵日覍I(yè)播音員 將這些字、詞錄到磁帶上,再轉(zhuǎn)錄到多媒體電腦中, 其中的“嘟嘟”提示音可從電腦的音效文件中找到, 然后通過(guò)ISD1425語(yǔ)音編程拷貝機(jī)及其電腦軟件, 將這些語(yǔ)音都按上述順序分段錄入到ISD1420芯片 中。然后將ISD1420芯片插到本語(yǔ)音組合電路板上。 插上新的語(yǔ)音片后語(yǔ)音組合電路還需要搜索并存儲(chǔ) 一次該語(yǔ)音芯片的各段地址,當(dāng)我們需要語(yǔ)音單元 說(shuō)“木材重量為一千二百六十千克,請(qǐng)下衡,謝謝 使用! ”時(shí),就可以按照語(yǔ)音芯片中語(yǔ)音段的段位 序號(hào)和命令格式對(duì)本電路單片機(jī)的RX端發(fā)碼_? AA AA0F01 0D 03 0C 07 OB 0EDD11 13 14DD15FF。其中 “AA AA”表示“下面開始輸入放音的段號(hào)了”, “DD”是表示此時(shí)要暫停放音0.5s,相當(dāng)于一個(gè)逗 號(hào),“0F”是用十六進(jìn)制表示的語(yǔ)音芯片第16段(十 進(jìn)制),這一段是語(yǔ)音“木材重量為”,如此類推都 是要播放的各段語(yǔ)音,最后“FF”表示“現(xiàn)在即將 上述各段語(yǔ)音順序播放出 來(lái)”。代碼發(fā)完后要合成的 語(yǔ)句也就隨之播放出來(lái)了。
3.軟件設(shè)計(jì)
錄、放音的程序流程圖如圖4。
例:放音內(nèi)容為“木材重量為1852kg”,各字段 錄入如下:
語(yǔ)音信息:0 1 9千百十木材重量為千克 錄音段控制碼(H) 40 41 …48 49 4A 4B 4C 4D ~ 50 51 -53
放音段控制碼(H) 80 81 …88 89 8A 8B 8C 8E-91 92-93
千、百、十、個(gè)位數(shù)的控制碼分別放在R0、R1、 R2、R4 中
程序入口:
ALARM: MOV 40H,#8EH 木材重量為”字段 ACALL PLAY ;調(diào)放音子程序(子程序中延時(shí)為
1.5s)
MOV 40H,R0 ACALL PLAY MOV 40H,#8AH ; “ ACALL PLAY MC)V40H,R1; “8” ACALL PLAY MOV 40H,#8CH ; “ ACALL PLAY MC)V40H,R2; “5” ACALL PLAY MOV 40H,#8EH ; “ ACALL PLAY MOV40H, R3; “2”
ACALL PLAY MOV 40H,#92H;“千克”
ACALLPLAY;
END
說(shuō)明:40H是放音子程序的入口參數(shù),調(diào)用子 程序前先將控制碼放入40H,按照語(yǔ)句的順序選擇 對(duì)應(yīng)的字或詞段組合放音,即可實(shí)現(xiàn)所要播放語(yǔ) 句。
4.結(jié)束語(yǔ)
將數(shù)字語(yǔ)音錄放系統(tǒng)應(yīng)用在智能地磅數(shù)據(jù)采集 器中,可以指導(dǎo)人們?nèi)绾螌?duì)智能地衡進(jìn)行控制,不 僅減少了人為操作的弊端,而且方便了廣大的使用 者。本文所論述的是一個(gè)簡(jiǎn)單的設(shè)計(jì)理念.完全可 以應(yīng)用能錄音放音時(shí)間更長(zhǎng)的IS D系列的其他芯 片,實(shí)現(xiàn)更長(zhǎng)時(shí)間的語(yǔ)音組合,將更豐富的語(yǔ)音信 息錄入其中,這樣人機(jī)對(duì)話的功能將更加強(qiáng)大。人 們也可以對(duì)單片機(jī)小系統(tǒng)進(jìn)行功能擴(kuò)展,如加上實(shí) 時(shí)時(shí)鐘芯片12887進(jìn)行時(shí)間功能的控制,還可以加 上程序存儲(chǔ)器、鎖存器、鍵盤、A/D和D/A、PRINT 等,這樣對(duì)語(yǔ)言提示器的控制就更方便、更完善了。