文字轉(zhuǎn)語音芯片(單片機用)

更新時間:2016-05-05本文內(nèi)容轉(zhuǎn)載自互聯(lián)網(wǎng)
45Microcontrollers & Embedded Systems2002.12新器件新技術(shù) NEW PRODUCT & TECH用EP7211實現(xiàn)傳呼信息實時語音合成和播放■ 鄭州解放軍信息工程大學 胡澤明 王鵬摘 要關(guān)鍵詞闡述在一款集成傳呼功能的二合一PDA系統(tǒng)中,使用嵌入式處理器EP7211實現(xiàn)個人傳呼信息的實時語音合成和播放的功能,主要包括字符語音庫的建立,字符語音合成算法和Codec語音中斷服務(wù)例程等3部分.PDA G.729 語音庫 語音合成引 言PDAPersonal Digital Assitant,個人數(shù)字助理是近年來繼尋呼機和移動電話之后,在國內(nèi)市場迅速崛起的便攜式電子產(chǎn)品.就其擴展意義來講,它能夠集成移動計算,電話和網(wǎng)絡(luò)等多種功能.根據(jù)不同的應用需求,它可以管理個人信息,提供名片存儲和日程安排,也可以接收各種尋呼信息如股市,天氣預報等.如果是集成通信模塊,還可以作為移動電話使用,進行無線網(wǎng)絡(luò)互聯(lián).廣義的PDA包括簡單的電子記事本,電子辭典和功能強大的掌上電腦,它們的主要區(qū)別表現(xiàn)在操作系統(tǒng),存儲能力,運算速度和數(shù)據(jù)交換能力等方面.目前國內(nèi)傳統(tǒng)PDA產(chǎn)品經(jīng)過幾年的高速發(fā)展后,市場基本飽和,銷售額出現(xiàn)負增長.不過由于PDA產(chǎn)品的靈活性,有針對性的行業(yè)應用作為一個新亮點,開始為人們所關(guān)注.經(jīng)過行業(yè)應用改造后的PDA產(chǎn)品,已經(jīng)在國內(nèi)市場大顯身手.文曲星展現(xiàn)超強的語言翻譯能力,比較適合于大學生和語言翻譯者使用;藍火系列能實時接收股市信息和專家點評,適合工薪階層的炒股者.國家信息產(chǎn)業(yè)部已經(jīng)鼓勵PDA產(chǎn)品在交通,警務(wù),保險等領(lǐng)域的行業(yè)應用和推廣.分析市場需求,我們研發(fā)了集成傳呼功能的,專門面向鐵路交通行業(yè)應用的鐵路交通信息系統(tǒng)PDA.本PDA系統(tǒng)除了具備傳統(tǒng)PDA的個人名片管理和辭典檢索等功能外,同時提供交通行業(yè)應用的民航航班查詢,鐵路列車時刻表查詢等功能.本PDA的尋呼系統(tǒng)實現(xiàn)如下功能:能夠通過尋呼對列車時刻表,列車晚點信息,列車剩余票額,股道信息等行業(yè)數(shù)據(jù)進行動態(tài)更新.作為另一個特色,當接收到個人尋呼時,能夠?qū)ず魞?nèi)容實時地轉(zhuǎn)換成語音并播放.下面重點介紹本PDA系統(tǒng)中使用嵌入式處理器EP7211實現(xiàn)個人尋呼內(nèi)容的實時語音轉(zhuǎn)換和播放.該功能的實現(xiàn)包含前后相關(guān)的3個部分:字符語音庫的建立,字符的語音合成算法和Codec語音中斷服務(wù)例程.1實現(xiàn)條件和要求PDA屬于嵌入式應用系統(tǒng),其同一般PC機有很大差別.硬件方面,嵌入式處理器基于RISC體系結(jié)構(gòu),一般工作頻率在幾十MHz,甚至更低;系統(tǒng)內(nèi)存容量一般在幾百KB~幾MB之間;一般使用容量小的ROM或者Flash作為硬盤來存儲可執(zhí)行程序和數(shù)據(jù).軟件方面,PDA系統(tǒng)一般有專用的嵌入式操作系統(tǒng)和軟件開發(fā)調(diào)試移植環(huán)境.個人傳呼信息的特點是單條傳呼信息長度變化較大,20~50個字符不等.最為常見的是"請回電話***";傳呼信息涉及到的字符數(shù)量較大,字符語音合成時運算量大,單字符合成后語音數(shù)據(jù)占用的存儲空間多;需要事先建立字符語音庫等.由于具體硬件環(huán)境的限制,傳呼信息的特點和語音合成的要求,該功能能夠?qū)崿F(xiàn)的前提有:語音庫占用的空間小;字符合成時速度要快;采用前臺進行字符語音合成時,以后臺中斷方式進行合成語音的播放來保證其實時性和連續(xù)性.2具體實現(xiàn)下面分別介紹字符語音庫的建立,字符語音合成算法,本PDA系統(tǒng)的框架結(jié)構(gòu)和語音中斷服務(wù)例程.2.1建立字符語音庫我們選用G.729語音壓縮編碼標準來建立語音庫.該標準采用的算法是共軛結(jié)構(gòu)的代數(shù)碼激勵線462002.12新器件新技術(shù) NEW PRODUCT & TECH性預測CS-ACELP,是基于CELP碼激勵線性預測編碼模型的算法.這種編碼規(guī)范的嚴格性使性能達到或超過了32 Kbps的G.726 ADPCM編碼,具有很高的語音質(zhì)量;同時,它是在語音信號8 KHz取樣的基礎(chǔ)上得到16 bit線性PCM后進行編碼的,壓縮后的數(shù)據(jù)速率僅為8 Kbps,具有相當于8:1的高壓縮率.其算法延遲少于16 ms.由于G.729編解碼器能夠?qū)崿F(xiàn)很高的語音質(zhì)量和很低的算法延時,因此被廣泛地應用.字符語音庫是一個單字發(fā)音語音數(shù)據(jù)的集合,各段數(shù)據(jù)之間相互獨立,不具有相關(guān)性.語音庫包含了國標一,二級字庫中的所有6763個漢字,10個阿拉伯數(shù)字和26個英文字符的標準普通話語音數(shù)據(jù).每個漢字或字符發(fā)音時長為0.65 s,采用8 KHz抽樣頻率,使用了G.729A語音編碼算法對上述的語音數(shù)據(jù)進行壓縮,壓縮后的數(shù)據(jù)速率為8 Kbps,相當于具有8:1的高壓縮率.在漢字中,同音字占了相當大的比例,而在語音合成中對于同音字的處理是沒有區(qū)別的,故近7000個漢字,我們只存儲1123個不同的發(fā)音.經(jīng)過同音字處理和采用G.729A標準壓縮字符語音數(shù)據(jù),則最終建立的語音庫文件大小為729 950字節(jié),完全符合本PDA系統(tǒng)的數(shù)據(jù)存儲要求;否則,語音庫數(shù)據(jù)量太大,本PDA系統(tǒng)不能接受!建立一個語音壓縮數(shù)據(jù)庫的具體步驟如下:◇ 將數(shù)字和常用漢字的標準發(fā)音獨立地錄入到數(shù)據(jù)文件中,作為基礎(chǔ)數(shù)據(jù).使用cooledit2000軟件完成語音的錄入.◇ 對于輸入數(shù)據(jù),按照每幀10 ms80個樣點的長度,將A_law語音通過簡單換算變成16 bit PCM數(shù)據(jù),作為編碼算法的輸入.◇ 按照G.729A算法標準,對數(shù)據(jù)進行編碼.◇ 將編碼后的數(shù)據(jù)轉(zhuǎn)換為二進制比特流,寫入語音庫文件中.壓縮后數(shù)據(jù)速率為8 Kbps,具有相當于8:1的高壓縮率.用C語言實現(xiàn)這一過程的程序流程如圖1所示.字符語音庫的建立是在Windows平臺及VisualC++編程環(huán)境下實現(xiàn)的,最終壓縮處理后數(shù)據(jù)量的大小為729 950字節(jié),每個字符語音數(shù)據(jù)的大小是650字節(jié).2.2語音合成當收到個人傳呼信息時,語音合成程序首先從指定位置獲取傳呼信息數(shù)據(jù),然后在語音庫中查找每個漢字,阿拉伯數(shù)字或者英文字符的發(fā)音,重組一個數(shù)據(jù)文件.解碼程序?qū)υ撐募M行解碼并且輸出原始語音.語音合成流程如圖2所示.語音合成過程首先是當前字符在語音庫的定位.對于10個阿拉伯數(shù)字和26個英文字符,將其放在語音庫開頭.這些字符的查找比較方便.漢字是2字節(jié)存儲,我們依據(jù)其區(qū)位碼來作為語音庫中的定位索引.字符語音庫檢索結(jié)束后的語音壓縮數(shù)頭文件,全局變量,函數(shù)原型的說明輸入語音文件及壓縮后的碼文件名初始化編碼器,包括濾波器狀態(tài)的初始化及語音,激勵等緩沖區(qū)的初始化語音文件是否結(jié)束讀1幀語音80點A_Law轉(zhuǎn)換成16bit線性PCM將參數(shù)碼字轉(zhuǎn)成串行碼流,再轉(zhuǎn)成碼字codeword寫文件結(jié)束編碼主函數(shù)Coder_ld8aYN圖1 字符語音庫的建立流程圖查找語音庫,將尋呼文字信息替換為壓縮語音文件解碼器初始化碼文件是否結(jié)束讀取1幀數(shù)據(jù),并轉(zhuǎn)換成二進制碼流解碼主函數(shù)輸出數(shù)據(jù)變?yōu)锳_LAW信號語音播放結(jié)束YN圖2 語音合成流程圖47Microcontrollers & Embedded Systems2002.12新器件新技術(shù) NEW PRODUCT & TECH據(jù)作為該字符解碼過程的輸入.數(shù)據(jù)解碼過程可以分為參數(shù)解碼和重構(gòu)信號后處理2部分.首先要從輸入的數(shù)據(jù)中提取參數(shù)符號,對這些符號解碼之后,可以獲得相應于10 ms話音幀的編碼器參數(shù).這些參數(shù)包括線性預測系數(shù),自適應碼本矢量,固定碼本矢量以及它們的增益.解碼之后的參數(shù)用來計算重建語音信號.得到重構(gòu)語音信號只有通過后處理過程來對該信號進行放大,包括后向濾波,高通濾波以及按比例因子擴大,最后得到原始的語音數(shù)據(jù).字符解碼器原理如圖3所示.2.3PDA系統(tǒng)的體系結(jié)構(gòu)PDA系統(tǒng)的硬件體系結(jié)構(gòu)如圖4所示.PDA系統(tǒng)中嵌入式處理器EP7211進行數(shù)據(jù)處理,傳呼解碼芯片接收傳呼信息并進行解碼, LCD提供數(shù)據(jù)輸出顯示,觸摸屏提供用戶輸入接口,F(xiàn)lash用來存儲應用程序和數(shù)據(jù),SRAM為程序運行提供內(nèi)存空間,電源電路為嵌入式處理器和外圍設(shè)備提供所需要的工作電壓.嵌入式處理器EP7211是Cirrus Logic公司專門為低成本,超低功耗的嵌入式應用設(shè)計的,包含ARM7TDMI處理器內(nèi)核和豐富的外圍接口.外圍接口有CODEC音頻接口,SPI串行A/D接口,單色LCD接口,DRAM接口,紅外接口,2個PWM接口,實時時鐘RTC以及電源檢測接口.EP7211的內(nèi)核電路工作在2.5 V,而外圍電路工作在3.3 V;可根據(jù)具體情況對內(nèi)核的時鐘進行動態(tài)編程控制,可工作在18,36,49和74MHz.另外EP7211還有3種基本供電模式:正常操作operating,空閑idle和等待standby.在等待模式,主時鐘被關(guān)斷,整個CPU及相關(guān)外圍除中斷和RTC也關(guān)斷,但可通過中斷或按鈕來喚醒.系統(tǒng)軟件開發(fā)平臺采用了我們自主開發(fā)研制的,專門面向嵌入式應用系統(tǒng)開發(fā)的XGW平臺.XGW開發(fā)平臺采用消息驅(qū)動機制,是C語言開發(fā).它功能強大,模塊化設(shè)計,擴展性強,產(chǎn)品升級容易,總體框架如圖5所示.圖5全面反應了XGW開發(fā)平臺的體系結(jié)構(gòu),包括事件消息驅(qū)動機制,內(nèi)存管理,字符和圖形顯示輸出,圖形組件庫等.圖形組件庫中的編輯框,列表框,按鈕等為用戶應用程序開發(fā)提供了系統(tǒng)應用編程接口API.不過,XGW平臺對于系統(tǒng)硬件的中斷響應沒有提供統(tǒng)一的入口和出口,需要開發(fā)人員單獨處理.XGW開發(fā)平臺的消息分為鼠標消息,鍵盤消息和定時器消息等3類.2.4語音中斷服務(wù)例程嵌入式處理器EP7211本身提供的外設(shè)語音錄放Codeccoder/decoder芯片可以實現(xiàn)語音的錄入和適應碼向量解碼增益解碼固定碼向量解碼結(jié)構(gòu)激勵MA碼增益預測11,GBGA22,GBGAnv間隔延時pg^^cg^11,CS22,CSzPnc編碼序號LP綜合濾波器nu后濾波器^ns高通上標定nfsLSP解碼內(nèi)插值^zALSFLSP序號3210,,,LLLL每幀每子幀210,,PPP圖3 字符解碼原理框圖天線LCD觸摸屏時鐘,復位,喚醒射頻輸入FlashSRAM電源管理串行口紅外口傳呼解碼芯片嵌入式處理器EP7211收音設(shè)備語音錄放電路圖4 硬件結(jié)構(gòu)482002.12新器件新技術(shù) NEW PRODUCT & TECH播放功能.該模塊提供2個獨立的16字節(jié)長的數(shù)據(jù)發(fā)送和接收緩沖區(qū)FIFO,其為全雙工模式,數(shù)據(jù)收發(fā)速率是64 kbps.芯片自身提供工作時鐘,定時脈沖以及數(shù)據(jù)的串/并和并/串轉(zhuǎn)換功能.編程人員通過設(shè)置EP7211相應的控制寄存器使能這些項功能,則每當數(shù)據(jù)收發(fā)緩沖區(qū)半慢或者半空時8字節(jié),芯片自身就會產(chǎn)生一次中斷信號供外部處理.理論計算芯片中斷速率是1 ms/次.語音播放中斷服務(wù)例程主要完成的工作是,當產(chǎn)生語音中斷時,仍然有數(shù)據(jù)需要播放,則向語音數(shù)據(jù)發(fā)送緩沖區(qū)FIFO中寫入指定數(shù)據(jù),剩下的工作由Codec芯片本身來完成.中斷服務(wù)例程ISR的偽代碼如下因為具體實現(xiàn)代碼沒有通用性,故此處用偽碼描述:void IRQ_Codec_Handlervoid{while檢測系統(tǒng)狀態(tài)寄存器,發(fā)現(xiàn)語音芯片數(shù)據(jù)發(fā)送緩沖區(qū)FIFO非滿{if已經(jīng)播放過的語音數(shù)據(jù)長度 = 給定的需要播放的語音數(shù)據(jù)長度 //結(jié)束{禁止數(shù)據(jù)發(fā)送緩沖區(qū)中斷;復位各相關(guān)的全局變量;程序返回;}}else{向語音芯片發(fā)送數(shù)據(jù)緩沖區(qū)FIFO寫入默認數(shù)據(jù)系統(tǒng)調(diào)用通用開發(fā)控件字符輸出圖形輸出內(nèi)存管理用戶自定義控件事件消息驅(qū)動硬件中斷執(zhí)行ISR中斷返回硬件中斷執(zhí)行ISR中斷返回用戶級應用程序圖5 XGW平臺的軟件體系結(jié)構(gòu)0XFF;}}}3試驗結(jié)果和分析由于在設(shè)計階段充分考慮過語音合成算法的大運算量和系統(tǒng)的實時性要求,故我們在具體實現(xiàn)的時候也采取了一些措施,比較突出的有:用ARM匯編語言來實現(xiàn)關(guān)鍵性的函數(shù)代碼;語音合成時提高處理器EP7211的工作頻率處理器正常工作頻率是18 MHz;對于一些常用的三角函數(shù)計算,采用查表的方式等來加快程序執(zhí)行速度.在PDA樣機測試中,單字符合成時間在650 ms左右,基本上能夠滿足實際應用需求.數(shù)據(jù)語音庫經(jīng)過處理之后,占用了729 560字節(jié)也能夠滿足本PDA系統(tǒng)的存儲要求.當PDA系統(tǒng)收到1條個人傳呼信息時,在語音庫的支持下,立刻啟動語音合成算法,逐個進行字符語音合成.當?shù)?個字符語音合成結(jié)束后,立刻啟動語音中斷服務(wù)例程進行語音播放.這樣收到的個人傳呼信息,在前臺逐個字符解碼時,其后臺語音播放也在進行.根據(jù)實際測試參數(shù),基本上滿足了系統(tǒng)的實時性要求.從一定角度看,單字符650 ms的語音合成時間基本能夠滿足實際應用需要,但還是希望能夠進一步減小這個值.這由于我們對ARM處理器的使用還處在研究階段.ARM本身提供了16位的Thumb指令集和32位的ARM指令集,而且兩者在某些方面表現(xiàn)出較大差別.一般來講,Thumb代碼長度是ARM代碼長度的65%,而執(zhí)行效率要比后者高出60%.但在某些方面,32位的ARM指令集也會表現(xiàn)出其優(yōu)于16位Thumb指令集的強大功能;同時該處理器系統(tǒng)支持ARM指令集和Thumb指令集混合編程模式.隨著對二者差別和各自優(yōu)勢的深入理解,結(jié)合本系統(tǒng)的硬件體系結(jié)構(gòu),采用有效的指令集混合編程模式將會使程序執(zhí)行效率進一步提高,從而使實時性得到進一步加強.參考文獻1Cirrus Logic公司. EP7211數(shù)據(jù)手冊2馬忠梅. ARM嵌入式處理器結(jié)構(gòu)與應用基礎(chǔ). 北京:北京航空航天大學出版社,20023Gibson Jerry D,等. 多媒體數(shù)字壓縮原理與標準. 李煜暉等譯. 北京:電子工業(yè)出版社,2000
有用 0 無用 0 我要提問