當前位置:編程學習大全網 - 編程語言 - 文字轉語音芯片(單片機用)

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

45Microcontrollers & Embedded Systems2002.12

新器件新技術 NEW PRODUCT & TECH

用EP7211實現傳呼信息實時語音合成和播放

■ 鄭州解放軍信息工程大學 胡澤明 王鵬

摘 要

關鍵詞

闡述在壹款集成傳呼功能的二合壹PDA系統中,使用嵌入式處理器EP7211實現個人傳呼信

息的實時語音合成和播放的功能,主要包括字符語音庫的建立,字符語音合成算法和Codec

語音中斷服務例程等3部分.

PDA G.729 語音庫 語音合成

引 言

PDA(Personal Digital Assitant,個人數字助理)

是近年來繼尋呼機和移動電話之後,在國內市場迅

速崛起的便攜式電子產品.就其擴展意義來講,它

能夠集成移動計算,電話和網絡等多種功能.根據

不同的應用需求,它可以管理個人信息,提供名片

存儲和日程安排,也可以接收各種尋呼信息(如股

市,天氣預報等).如果是集成通信模塊,還可以

作為移動電話使用,進行無線網絡互聯.廣義的

PDA包括簡單的電子記事本,電子辭典和功能強大

的掌上電腦,它們的主要區別表現在操作系統,存

儲能力,運算速度和數據交換能力等方面.

目前國內傳統PDA產品經過幾年的高速發展

後,市場基本飽和,銷售額出現負增長.不過由於

PDA產品的靈活性,有針對性的行業應用作為壹個

新亮點,開始為人們所關註.經過行業應用改造後

的PDA產品,已經在國內市場大顯身手.文曲星

展現超強的語言翻譯能力,比較適合於大學生和語

言翻譯者使用;藍火系列能實時接收股市信息和

專家點評,適合工薪階層的炒股者.國家信息產業

部已經鼓勵PDA產品在交通,警務,保險等領域

的行業應用和推廣.

分析市場需求,我們研發了集成傳呼功能的,

專門面向鐵路交通行業應用的鐵路交通信息系統

PDA.本PDA系統除了具備傳統PDA的個人名片

管理和辭典檢索等功能外,同時提供交通行業應用

的民航航班查詢,鐵路列車時刻表查詢等功能.

本PDA的尋呼系統實現如下功能:能夠通過尋

呼對列車時刻表,列車晚點信息,列車剩余票額,

股道信息等行業數據進行動態更新.作為另壹個特

色,當接收到個人尋呼時,能夠將尋呼內容實時地

轉換成語音並播放.

下面重點介紹本PDA系統中使用嵌入式處理

器EP7211實現個人尋呼內容的實時語音轉換和播

放.該功能的實現包含前後相關的3個部分:字符

語音庫的建立,字符的語音合成算法和Codec語音

中斷服務例程.

1實現條件和要求

PDA屬於嵌入式應用系統,其同壹般PC機有

很大差別.硬件方面,嵌入式處理器基於RISC體

系結構,壹般工作頻率在幾十MHz,甚至更低;系

統內存容量壹般在幾百KB~幾MB之間;壹般使用

容量小的ROM或者Flash作為硬盤來存儲可執行程

序和數據.軟件方面,PDA系統壹般有專用的嵌入

式操作系統和軟件開發調試移植環境.

個人傳呼信息的特點是單條傳呼信息長度變化

較大,20~50個字符不等.最為常見的是"請回電

話***";傳呼信息涉及到的字符數量較大,字符

語音合成時運算量大,單字符合成後語音數據占用

的存儲空間多;需要事先建立字符語音庫等.

由於具體硬件環境的限制,傳呼信息的特點和

語音合成的要求,該功能能夠實現的前提有:語音

庫占用的空間小;字符合成時速度要快;采用前臺

進行字符語音合成時,以後臺中斷方式進行合成語

音的播放來保證其實時性和連續性.

2具體實現

下面分別介紹字符語音庫的建立,字符語音合成

算法,本PDA系統的框架結構和語音中斷服務例程.

2.1建立字符語音庫

我們選用G.729語音壓縮編碼標準來建立語音

庫.該標準采用的算法是***軛結構的代數碼激勵線

462002.12

新器件新技術 NEW PRODUCT & TECH

性預測(CS-ACELP),是基於CELP(碼激勵線性預

測)編碼模型的算法.這種編碼規範的嚴格性使性

能達到或超過了32 Kbps的G.726 ADPCM編碼,具

有很高的語音質量;同時,它是在語音信號8 KHz

取樣的基礎上得到16 bit線性PCM後進行編碼的,

壓縮後的數據速率僅為8 Kbps,具有相當於8:1的

高壓縮率.其算法延遲少於16 ms.由於G.729編解

碼器能夠實現很高的語音質量和很低的算法延時,

因此被廣泛地應用.

字符語音庫是壹個單字發音語音數據的集合,

各段數據之間相互獨立,不具有相關性.語音庫包

含了國標壹,二級字庫中的所有6763個漢字,10個

阿拉伯數字和26個英文字符的標準普通話語音數

據.每個漢字或字符發音時長為0.65 s,采用8 KHz

抽樣頻率,使用了G.729A語音編碼算法對上述的語

音數據進行壓縮,壓縮後的數據速率為8 Kbps,相

當於具有8:1的高壓縮率.在漢字中,同音字占了

相當大的比例,而在語音合成中對於同音字的處理

是沒有區別的,故近7000個漢字,我們只存儲1123

個不同的發音.經過同音字處理和采用G.729A標準

壓縮字符語音數據,則最終建立的語音庫文件大小

為729 950字節,完全符合本PDA系統的數據存儲

要求;否則,語音庫數據量太大,本PDA系統不

能接受!

建立壹個語音壓縮數據庫的具體步驟如下:

◇ 將數字和常用漢字的標準發音獨立地錄入到

數據文件中,作為基礎數據.使用cooledit2000軟

件完成語音的錄入.

◇ 對於輸入數據,按照每幀10 ms(80個樣點)

的長度,將A_law語音通過簡單換算變成16 bit PCM

數據,作為編碼算法的輸入.

◇ 按照G.729A算法標準,對數據進行編碼.

◇ 將編碼後的數據轉換為二進制比特流,寫

入語音庫文件中.壓縮後數據速率為8 Kbps,具有

相當於8:1的高壓縮率.

用C語言實現這壹過程的程序流程如圖1所示.

字符語音庫的建立是在Windows平臺及Visual

C++編程環境下實現的,最終壓縮處理後數據量的

大小為729 950字節,每個字符語音數據的大小是

650字節.

2.2語音合成

當收到個人傳呼信息時,語音合成程序首先從

指定位置獲取傳呼信息數據,然後在語音庫中查找

每個漢字,阿拉伯數字或者英文字符的發音,重組

壹個數據文件.解碼程序對該文件進行解碼並且輸

出原始語音.語音合成流程如圖2所示.

語音合成過程首先是當前字符在語音庫的定

位.對於10個阿拉伯數字和26個英文字符,將其

放在語音庫開頭.這些字符的查找比較方便.漢字

是2字節存儲,我們依據其區位碼來作為語音庫中

的定位索引.字符語音庫檢索結束後的語音壓縮數

頭文件,全局變量,函數原型的說明

輸入語音文件及壓縮後的碼文件名

初始化編碼器,包括濾波器狀態的初始

化及語音,激勵等緩沖區的初始化

語音文件是否結束

讀1幀語音(80點)(A_Law)

轉換成16bit線性PCM

將參數碼字轉成串行碼

流,再轉成碼字codeword

寫文件

結束

編碼主函數Coder_ld8a()

Y

N

圖1 字符語音庫的建立流程圖

查找語音庫,將尋呼文字信

息替換為壓縮語音文件

解碼器初始化

碼文件是否結束

讀取1幀數據,並

轉換成二進制碼流

解碼主函數

輸出數據變為A_LAW信號

語音播放

結束

Y

N

圖2 語音合成流程圖

47Microcontrollers & Embedded Systems2002.12

新器件新技術 NEW PRODUCT & TECH

據作為該字符解碼過程的輸入.

數據解碼過程可以分為參數解碼和重構信號後

處理2部分.首先要從輸入的數據中提取參數符

號,對這些符號解碼之後,可以獲得相應於10 ms

話音幀的編碼器參數.這些參數包括線性預測系

數,自適應碼本矢量,固定碼本矢量以及它們的增

益.解碼之後的參數用來計算重建語音信號.得到

重構語音信號只有通過後處理過程來對該信號進行

放大,包括後向濾波,高通濾波以及按比例因子擴

大,最後得到原始的語音數據.

字符解碼器原理如圖3所示.

2.3PDA系統的體系結構

PDA系統的硬件體系結構如圖4所示.

PDA系統中嵌入式處理器EP7211進行數據處

理,傳呼解碼芯片接收傳呼信息並進行解碼, LCD

提供數據輸出顯示,觸摸屏提供用戶輸入接口,

Flash用來存儲應用程序和數據,SRAM為程序運行

提供內存空間,電源電路為嵌入式處理器和外圍設

備提供所需要的工作電壓.

嵌入式處理器EP7211是Cirrus Logic公司專門為

低成本,超低功耗的嵌入式應用設計的,包含

ARM7TDMI處理器內核和豐富的外圍接口.外圍接

口有CODEC音頻接口,SPI串行A/D接口,單色LCD

接口,DRAM接口,紅外接口,2個PWM接口,實

時時鐘RTC以及電源檢測接口.EP7211的內核電路

工作在2.5 V,而外圍電路工作在3.3 V;可根據具

體情況對內核的

時鐘進行動態編

程控制,可工作

在18,36,49和74

MHz.另外EP7211

還有3種基本供

電模式:正常操

作(operating),

空閑(idle)和等

待(standby).在

等待模式,主時

鐘被關斷,整個

CPU及相關外圍

(除中斷和RTC)

也關斷,但可通

過中斷或按鈕來

喚醒.

系統軟件開發平臺采用了我們自主開發研制

的,專門面向嵌入式應用系統開發的XGW平臺.

XGW開發平臺采用消息驅動機制,是C語言開發.

它功能強大,模塊化設計,擴展性強,產品升級容

易,總體框架如圖5所示.

圖5全面反應了XGW開發平臺的體系結構,包

括事件消息驅動機制,內存管理,字符和圖形顯示

輸出,圖形組件庫等.圖形組件庫中的編輯框,列

表框,按鈕等為用戶應用程序開發提供了系統應用

編程接口API.不過,XGW平臺對於系統硬件的中

斷響應沒有提供統壹的入口和出口,需要開發人員

單獨處理.XGW開發平臺的消息分為鼠標消息,鍵

盤消息和定時器消息等3類.

2.4語音中斷服務例程

嵌入式處理器EP7211本身提供的外設語音錄放

Codec(coder/decoder)芯片可以實現語音的錄入和

適應碼

向量解碼

增益解碼

固定碼

向量解碼

結構激勵

MA碼增

益預測

11

,GBGA

22

,GBGA

)(nv

間隔延時

p

g^

^

c

g^

11

,CS

22

,CS

)(zP

)(nc

編碼序號

LP綜合

濾波器

)(nu

後濾波器

)(^ns

高通上標定

)(nfs

LSP解碼內插值)(^zALSF

LSP序號

3210

,,,LLLL

每幀

每子幀

210

,,PPP

圖3 字符解碼原理框圖

天線

LCD

觸摸屏

時鐘,復

位,喚醒射頻輸入

FlashSRAM電源管理

串行口

紅外口

傳呼解

碼芯片嵌入式

處理器

EP7211

收音設備

語音錄放電路

圖4 硬件結構

482002.12

新器件新技術 NEW PRODUCT & TECH

播放功能.該模塊提供2個獨立的16字節長的數據

發送和接收緩沖區(FIFO),其為全雙工模式,數

據收發速率是64 kbps.芯片自身提供工作時鐘,定

時脈沖以及數據的串/並和並/串轉換功能.編程

人員通過設置EP7211相應的控制寄存器使能這些項

功能,則每當數據收發緩沖區半慢或者半空時(8

字節),芯片自身就會產生壹次中斷信號供外部處

理.理論計算芯片中斷速率是1 ms/次.

語音播放中斷服務例程主要完成的工作是,當

產生語音中斷時,仍然有數據需要播放,則向語音

數據發送緩沖區FIFO中寫入指定數據,剩下的工

作由Codec芯片本身來完成.中斷服務例程ISR的

偽代碼如下(因為具體實現代碼沒有通用性,故此

處用偽碼描述):

void IRQ_Codec_Handler(void)

{

while(檢測系統狀態寄存器,發現語音芯片數據發送緩

沖區FIFO非滿)

{

if(已經播放過的語音數據長度 = 給定的需要播

放的語音數據長度) //結束

{

禁止數據發送緩沖區中斷;

復位各相關的全局變量;

程序返回;

}

}

else

{

向語音芯片發送數據緩沖區FIFO寫入默認數據

系統調用

通用開

發控件字符輸出圖形輸出

內存管理用戶自

定義控件

事件消息驅動

硬件中斷

執行

ISR

中斷返回

硬件中斷

執行

ISR

中斷返回

用戶級應用程序

圖5 XGW平臺的軟件體系結構

0XFF;

}

}

}3試驗結果和分析

由於在設計階段充分考慮過語音合成算法的

大運算量和系統的實時性要求,故我們在具體實

現的時候也采取了壹些措施,比較突出的有:用

ARM匯編語言來實現關鍵性的函數代碼;語音合

成時提高處理器EP7211的工作頻率(處理器正常

工作頻率是18 MHz);對於壹些常用的三角函數計

算,采用查表的方式等來加快程序執行速度.在

PDA樣機測試中,單字符合成時間在650 ms左右,

基本上能夠滿足實際應用需求.數據語音庫經過

處理之後,占用了729 560字節也能夠滿足本PDA

系統的存儲要求.

當PDA系統收到1條個人傳呼信息時,在語音

庫的支持下,立刻啟動語音合成算法,逐個進行字

符語音合成.當第1個字符語音合成結束後,立刻

啟動語音中斷服務例程進行語音播放.這樣收到的

個人傳呼信息,在前臺逐個字符解碼時,其後臺語

音播放也在進行.根據實際測試參數,基本上滿足

了系統的實時性要求.

從壹定角度看,單字符650 ms的語音合成時間

基本能夠滿足實際應用需要,但還是希望能夠進壹

步減小這個值.這由於我們對ARM處理器的使用

還處在研究階段.ARM本身提供了16位的Thumb

指令集和32位的ARM指令集,而且兩者在某些方

面表現出較大差別.壹般來講,Thumb代碼長度是

ARM代碼長度的65%,而執行效率要比後者高出

60%.但在某些方面,32位的ARM指令集也會表

現出其優於16位Thumb指令集的強大功能;同時

該處理器系統支持ARM指令集和Thumb指令集混

合編程模式.隨著對二者差別和各自優勢的深入理

解,結合本系統的硬件體系結構,采用有效的指令

集混合編程模式將會使程序執行效率進壹步提高,

從而使實時性得到進壹步加強.

參考文獻

1Cirrus Logic公司. EP7211數據手冊

2馬忠梅. ARM嵌入式處理器結構與應用基

礎. 北京:北京航空航天大學出版社,2002

3Gibson Jerry D,等. 多媒體數字壓縮原理與

標準. 李煜暉等譯. 北京:電子工業出版社,2000

  • 上一篇:我的老師初中作文精選10篇
  • 下一篇:鄄城開發區實驗幼兒園和陳王中心幼兒園哪個好
  • copyright 2024編程學習大全網