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