用ISD器件實現(xiàn)現(xiàn)場語音分段錄音與隨機組合放音
摘要:在分析了ISD語音處理器件在工作機制的基礎(chǔ)上,介紹了用單片機跟蹤各語音段的地址變化和記錄各段起止地址以及根據(jù)各段的地址進行隨機組合放音的方法。提出了通用的硬件設(shè)計方案,給出了實際應(yīng)用的電路圖和軟件流程??偨Y(jié)了使用ISD器件的注意事項。
本文引用地址:http://2s4d.com/article/242262.htm關(guān)鍵詞:ISD語音處理器件 信息段 單片機 定時器 中斷
對一些語音內(nèi)容不固定并要求現(xiàn)場錄音和放音的系統(tǒng),采用一般語音芯片實現(xiàn),錄放音的質(zhì)量難以控制。美國ISD(Information Storage Devices)公司的ISD系列芯片采用直接模擬存儲專利技術(shù),把語音信號以原始的模擬形式直接存儲在片內(nèi)EEPROM存儲器中,無需進行A/D轉(zhuǎn)換和壓縮處理等,從而減少了失真、大大提高了錄放音質(zhì)量,并具有抗斷電、音質(zhì)好、使用方便、可反復錄放、無需專用的語音開發(fā)工具、能隨意列改內(nèi)容和耗電省等優(yōu)點,很適合于現(xiàn)場錄放音系統(tǒng)。
但是ISD器件只有地址輸入線,在分段錄放音時,其內(nèi)部各語音段的地址無法直接讀出。雖然通過專用的ISD開發(fā)設(shè)備可以讀出地址,但無法實現(xiàn)現(xiàn)場多次重復的錄放音操作,不具有實時性。我們在實踐中,通過分析ISD的工作原理和內(nèi)部特性,用單片機的定時中斷來計算各段的時長和起始地址,從而實現(xiàn)了分段錄音與組合放音。該方法已應(yīng)用在電纜故障自動定位儀中。
1 ISD 2500系列芯片簡介
ISD公司的2500系列芯片,按錄放時間60秒、75秒、90秒和120秒分成ISD2560、2575、2590和25120四個型號。ISD器件設(shè)有OVF(溢出)端,便于多個器件級聯(lián)。
ISD2500系列片內(nèi)EEPROM容量都為480K,最多能分600段。四個型號的不同錄放時間是靠不同的輸入采樣率來實現(xiàn)的,它們分別為:8.0、6.4、5.3、4.0kHz。
DIP器件封裝為28腳,各引腳功能如下:
1~7 A0/M0~A6/M6地址/模式選擇
8~10 A7~A9輸入地址線
11 AUX IN輔助輸入
12、13 VSSD、VSSA數(shù)字地和模擬地
14、15 SP+、SP-揚聲器輸出
16 VCCA模擬信號電源正極
17、18 MIC、MIC REF 麥克風輸入端和輸入?yún)⒖级?/p>
19 AGC自動增益控制
20、21 ANA IN、ANA OUT 模擬信號輸入和輸出
22 OUF 溢出
23 CE 片選(低電平允許芯片工作)
24 PD 芯片低功耗狀態(tài)控制
25 EOM 錄放音結(jié)束信號輸出
26 XCLK 外部時鐘
27 P/R 錄/放控制選擇
28 VCCD 數(shù)字信號電源正極
2 工作原理
2500系列有10個地址輸入端A0~A9,錄址能力可達1024位,地址空間為0~1023。其分配情況是:地址0~299作為分段用,地址600~767未使用,地址768~1023為工作模式選擇(即A8、A9均為高)。2500系列的地址線有兩種用途,一是作為工作模式控制,二是作為分段錄放音的起始段地址。當最高位地址(MSB)A8、A9都為高電平時(即地址768~1023),地址端A0~A6就作為工作模式選擇端M0~M6,對應(yīng)7種工作模式。當A8、A9任一位為低或都為低時(即地址0~599),只要在分段錄/放音操作前(不少于300ns)給地址A0~A9賦值,操作就從該地址開始。
2500系列語音芯片將480K的EEPROM分為600個信息段,每段800個字節(jié)。作為一個整體單位進行尋址和控制,應(yīng)給每個信息段分配一個供外部控制的地址,而不是對每個字節(jié)進行尋址,否則至少需要19個地址端口。這樣,大大減少了信息檢索所需要的地址線。對較長的語音信號可以跨越多個信息段進行錄音,不受內(nèi)部存儲信息段的限制,且內(nèi)部的信息段址會自動增加。在每個語音段的尾部自動增加一個結(jié)束標志EOM,組合放音時,通過檢測EOM來控制各語音段的結(jié)束和下一段的開始。
每個信息段的錄放音時間等于總時間除以600。如ISD2560的總時間為60s,則每個信息段的錄放音時間為100ms;ISD25120的總時間為120s,則每個信息段的時間為200ms。因此可以利用該時間長度作為一個段地址,通過單片機定時器的計時平行地映射信息段的地址,從而得到每段錄音的起始地址。這樣,就需要設(shè)置一個地址計數(shù)器。一般錄音從0地址開始,首先通過CPU將它賦給A0~A9,然后通過單片機控制ISD啟動錄音,同時啟動單片機的定時器開始計時,每到一個信息段的時間,就給地址計數(shù)加1。當單片機停止控制ISD錄音時,同時停止定時器計時。此時地址計數(shù)器的值即為該段語音的未地址,加1即為下一段語音的首地址,并將它存在EEPROM中,為下一將放音提供的地址信息。通過CPU將該地址賦給A0~A9,即可錄制下一段語音。依次下去,即可在錄制完所有語音段的同時得到各段的起始地址。如果不是從0地址開始的語音段,只需將初始地址賦給A0~A9,加上地址計數(shù)器的值,即可得到語音段的末地址。這里不用同時保存各語音段的起始地址和結(jié)束地址,因為各個段是相鄰的,前一段的末地址加1即是本段的起始地址,且每個語音段的結(jié)尾均有EOM標志,并可發(fā)出中斷。放音時利用它和保存在EEPROM中各語音段的起始地址即可按任意順序組合各個語音段。
3 硬件電路設(shè)計
系統(tǒng)硬件電路框圖如圖1所示。ISD器件選用錄音時間為120s的ISD25120器件,以單片機為處理機,外接控制每個語音段錄音開始與停止按鍵,外部存儲器EEPROM用于保存每個語音首地址。ISD的外圍電路及其與單片機連接的硬件電路如圖2所示。
ISD與89C51的接口部分包含輸入地址線A0~A9、片選CE(CE=0選中ISD芯片)、芯片低功耗狀態(tài)控制PD、錄放音控制選擇P/R(P/R=0為錄音;P/R=1為放音)、錄放音結(jié)束信號輸出EOM,將它作為89C51外部中斷0的輸入信號,放音時通過它告知本語音段結(jié)束,便于單片機立即播放另一個語音段;我們需要的語音總時間小于120s,溢出端VOF未用;若需要總時間大于120s,可經(jīng)級聯(lián)多個ISD25120,此時需要使用溢出端VOF。ISD25120一共需要11根控制線和一個外部是中斷口,這里11根控制線使用89C51的P1和P3的部分端口,若系統(tǒng)中其它電路占用了部分P1,則可使用其它I/O口擴展器件(如82C55、373等)的擴展I/O口來控制ISD25120。ISD25120的其它管腳所連電路為典型外圍器件配置,用于模擬語音的輸入輸出。
4 軟件設(shè)計
按照前面的分析和硬件原理圖,軟件部分主要涉及啟動錄音和停止錄音、啟動放音和停止放音、檢測EOM信號的外部中斷0、定時中斷等六個子程序模塊。播放語音時,語音段尾的EOM信號觸發(fā)外部中斷0,進入服務(wù)子程序。首先停止語音播放,然后設(shè)置下一段語音播放標志。各個語音段的組合播放順序由主程序根據(jù)外部情況或設(shè)置情況自動變動,如在電纜故障自動定位儀中,測試出故障點后,根據(jù)故障點的距離組合存放數(shù)字的各個語音段進行播放。定時中斷采用工作方式2,定時周期為5ms。為產(chǎn)生ISD25120每個信號段的200ms時間,設(shè)置一個定時計數(shù)器,計滿40次定時周期即得到200ms的時間,產(chǎn)生一次中斷。六個子程序模塊的軟件流程如圖3~圖8所示。
5 本方法的特點
(1)能進行在系統(tǒng)現(xiàn)場錄音,隨錄隨放,修改語音方便。
(2)修改錄音內(nèi)容時,可以從其中任意一段開始,修改其后的所有錄音內(nèi)容,不必從第一段開始全部修改。這對一些需要廠家固定一些語音段的系統(tǒng)很有好處,將固定的語音段放置在前面的段落中,允許用戶錄制的放在后面,用戶修改錄音內(nèi)容時只需修改后面的語音段即可,不影響廠家錄制的語音。
(3)分段靈活。單片ISD可分1~600個段,若多片級聯(lián)還可更多;各個錄音段的長度任意,只要總錄音時間在所用器件的總時間之內(nèi)即可。工
(4)價格便宜。錄制語音時,只需用軟件立即可得到各段的地址進行錄音,不需專用的設(shè)備。
6 使用ISD器件應(yīng)注意的幾個問題
(1)ISD語音段尾的EOM標志并不是器件檢測到語音結(jié)束時自動產(chǎn)生,實際是通過控制器件的工作方式來停止錄音而產(chǎn)生的。在錄音狀態(tài)下將CE和PD置高時,則停止錄音,在語音段尾產(chǎn)生EOM標志;同時ISD器件在播放時遇到段尾的EOM時也并不自動停止播放,必須用中斷捕捉它后,再用軟件停止播放。
(2)ISD器件的音頻信號輸出功率很小,并不能直接驅(qū)動揚聲器,需要加音頻功放,如LM386。同時ISD送出的信號直流分量,直接加在LM386上,會使它處于飽和狀態(tài),無聲音輸出,需要通過電容耦合送入LM386,隔斷直流。
(3)ISD的CE、P/R、PD在接控制信號時,一定要保證復位時為高電平。否則上電或復位時全為低,恰好處于錄音狀態(tài),會沖掉芯片中原來的錄音。
評論