0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于嵌入式處理器EP7211實現(xiàn)二合一PDA系統(tǒng)的功能設(shè)計

電子設(shè)計 ? 來源:單片機與嵌入式系統(tǒng)應(yīng)用 ? 作者:胡澤明;王鵬 ? 2021-03-17 14:10 ? 次閱讀

闡述在一款集成傳呼功能的二合一PDA系統(tǒng)中,使用嵌入式處理器EP7211實現(xiàn)個人傳呼信息的實時語音合成和播放的功能,主要包括字符語音庫的建立、字符語音合成自滿和Cdec語音中斷服務(wù)例程等3部分。

PDA(Personal Digital Assitant,個人數(shù)字助理)是近年來繼尋呼機和移動電話之后,在國內(nèi)市場迅速崛起的便攜式電子產(chǎn)品。就其擴展意義來講,它能夠集成移動計算、電話和網(wǎng)絡(luò)等多種功能。根據(jù)不同的應(yīng)用需求,它可以管理個人信息、提供名片存儲和日程安排,也可以接收各種尋呼信息(如股市、天氣預(yù)報等)。如果是集成通信模塊,

基于嵌入式處理器EP7211實現(xiàn)二合一PDA系統(tǒng)的功能設(shè)計

還可以作為移動電話使用,進行無線網(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è)應(yīng)用作為一個新亮點,開始為人們所關(guān)注。經(jīng)過行業(yè)應(yīng)用尾后的PDA產(chǎn)品,已經(jīng)在國內(nèi)市場大顯身手。文曲星展現(xiàn)超強的語言釋譯能力,比較適合于大學(xué)生和語言翻譯者使用;藍火系列能實時接收股市信息和專家點評,適合工薪階層的炒股者。國家信息產(chǎn)業(yè)部已經(jīng)鼓勵PDA產(chǎn)品在交通、警務(wù)、保險等領(lǐng)域的行業(yè)應(yīng)用和推廣。

分析市場需求,我們研發(fā)了集成傳呼功能的、專門面向鐵路交通行業(yè)應(yīng)用的鐵路交通信息系統(tǒng)PDA。本PDA系統(tǒng)除了具備傳統(tǒng)PDA的個人名片管理和辭典檢索等功能外,同時提供交通行業(yè)應(yīng)用的民航航班查詢、鐵路列車時刻表查詢等功能。

本PDA的尋呼系統(tǒng)實現(xiàn)如下功能:能夠通過尋呼對列車時刻表、列車晚點信息、列車剩票額、股道信息等行業(yè)數(shù)據(jù)進行動態(tài)更新。作為另一個特色,當(dāng)接收到個人尋呼時,能夠?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屬于嵌入式應(yīng)用系統(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語音壓縮編碼標(biāo)準(zhǔn)來建立語音庫。該標(biāo)準(zhǔn)采用的算法是共軛結(jié)構(gòu)的代數(shù)碼激勵線性預(yù)測(CS-ACELP),是基于CELP(碼激勵線性預(yù)測)編碼模型的算法。這種編碼規(guī)范的嚴格性使性能達到或超過了32Kbps的G.726 ADPCM編碼,具有很高的語音質(zhì)量;同時,它是在語音信號8KHz取樣的基礎(chǔ)上得到16bit線性PCM后進行編碼的,壓縮后的數(shù)據(jù)速率僅為8Kbps,具有相當(dāng)于8:1的高壓縮率。其算法延遲少于16ms。由于G.726編解碼器能夠?qū)崿F(xiàn)很高的語音質(zhì)量和很低的算法延時,因此被廣泛地應(yīng)用。

字符語音庫是一個單字發(fā)音語音數(shù)據(jù)的集合,中段數(shù)據(jù)之間相互獨立,不具有相關(guān)性。語音庫包含了國標(biāo)一、二級字庫中的所有6763個漢字、10個阿拉伯?dāng)?shù)字和26個英文字符的標(biāo)準(zhǔn)普通話語音數(shù)據(jù)。每個漢字或字符發(fā)音時長為0.65s,采用8KHz抽樣頻率,使用了G.729A語音編碼算法對上述的語音數(shù)據(jù)進行壓縮,壓縮后數(shù)據(jù)速率為8Kbps,相當(dāng)于具有8:1的高壓縮率。在漢字中,同音字占了相當(dāng)大的比例,而在語音合成中對于同音字的處理是沒有區(qū)別的,故近7000個漢字,我們只存儲1123個不同的發(fā)音。經(jīng)過同音字處理和采用G.729標(biāo)準(zhǔn)壓縮字符語音數(shù)據(jù),則最終建立的語音庫文件大小為729 950字節(jié),完全符合本PDA系統(tǒng)的數(shù)據(jù)存儲要求;否則,語音庫數(shù)據(jù)量太大,本PDA系統(tǒng)不能接受!

建立一個語音壓縮數(shù)據(jù)庫的具體步驟如下:

*將數(shù)字和常用漢字的標(biāo)準(zhǔn)發(fā)音獨立地錄入到數(shù)據(jù)文件中,作為基礎(chǔ)數(shù)據(jù)。使用cooledit2000軟件完成語音的錄入。

*對于輸入數(shù)據(jù),按照每幀10ms(80個樣點)的長度,將A_law語音通過簡單換算變成16bit PCM數(shù)據(jù),作為編碼算法的輸入。

*按照G.729A算法標(biāo)準(zhǔn),對數(shù)據(jù)進行編碼。

*將編碼后的數(shù)據(jù)轉(zhuǎn)換為二進制比特流,寫入語音庫文件中。壓縮后數(shù)據(jù)速率為8Kbps,具有相當(dāng)于8:1的高壓縮率。

C語言實現(xiàn)這一過程的程序流程如圖1所示。

字符語音庫的建立是在Windows平臺及Visual C++編程環(huán)境下實現(xiàn)的,最終壓縮處理后數(shù)據(jù)量的大小為729 950字節(jié),每個字符語音數(shù)據(jù)的大小是650字節(jié)。

2.2 語音合成

當(dāng)收到個人傳呼信息時,語音合成程序首先從指定位置獲取傳呼信息數(shù)據(jù),然后在語音庫中查找每個漢字、阿拉伯?dāng)?shù)字或者英文字符的發(fā)音,重組一個數(shù)據(jù)文件。解碼程序?qū)υ撐募M行解碼并且輸出原始語音。語音合成流程如圖2所示。

語音合成過程首先是當(dāng)前字符在語音庫的定位。對于10個阿拉伯?dāng)?shù)字和26個英文字符,將其放在語音庫開頭。這些字符的查找比較方便。漢字是2字節(jié)存儲,我們依居其區(qū)位碼來作為語音庫中的定位索引。字符語音檢索結(jié)束后的語音壓縮數(shù)據(jù)作為該字符解碼過程的輸入。

數(shù)據(jù)解碼過程可以分為參數(shù)解碼和重構(gòu)信號后處理2部分。首先要從輸入的數(shù)據(jù)中提取參數(shù)符號,對這些符號解碼之后,可以獲得相應(yīng)于10ms話音幀的編碼器參數(shù)。這些參數(shù)包括線性預(yù)測系數(shù)、自適應(yīng)碼本矢量、固定碼本矢量以及它們的增益。解碼之后的參數(shù)用來計算重建語音信號。得到重構(gòu)語音信號只有通過后處理過程來對該信號進行放大,包括后向濾波、高通濾波以及按比例因子擴大,最后得到原始的語音數(shù)據(jù)。

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

2.3 PDA系統(tǒng)的體系結(jié)構(gòu)

PDA系統(tǒng)中嵌入式處理器EP7211進行數(shù)據(jù)處理,傳呼解碼芯接收傳呼信息并進行解碼,LCD提供數(shù)據(jù)輸出顯示,觸摸屏提供用戶輸入接口,F(xiàn)lash用來存儲應(yīng)用程序和數(shù)據(jù),SRAM為程序運行提供內(nèi)存空間,電源電路為嵌入式處理器和外圍設(shè)備提供所需要工作電壓。

嵌入式處理器EP7211是Cirrus Logic公司專門為低成本、超低功耗的嵌入式應(yīng)用設(shè)計的,包含ARM7TDMI處理器內(nèi)核和豐富的外圍接口。外圍接口有CODEC音頻接口、SPI串行A/D接口、單色LCD接口、DRAM接口、紅外接口、2個PWM接口、實時時鐘RTC以及電源檢測接口。EP7211的內(nèi)核電路工作在2.5V,而外圍電路工作在3.3V;可根據(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ā)研制的、專門面向嵌入式應(yīng)用系統(tǒng)開發(fā)的XGW平臺。XGW開發(fā)平臺采用消息驅(qū)動機制,是C語言開發(fā)。它功能強大、模塊化設(shè)計、擴展性強、產(chǎn)品升級容易,總體框架如圖5所示。

圖5全面反應(yīng)了XGW開發(fā)平臺的體系結(jié)構(gòu),包括事件消息驅(qū)動機制、內(nèi)存管理、字符和圖形顯示輸出、圖形組件庫等。圖形組件庫中的編輯框、列表框、按鈕等為用戶應(yīng)用程序開發(fā)提供系統(tǒng)應(yīng)用編程接口API。不過,XGW平臺對于系統(tǒng)硬件的中斷響應(yīng)沒有提供統(tǒng)一的入口和出口,需要開發(fā)人員單獨處理。XGW開發(fā)平臺的消息分為鼠標(biāo)消息、鍵盤消息和定時器消息等3類。

2.4 語音中斷服務(wù)例程

嵌入式處理EP7211本身提供的外設(shè)語音錄放Codec(coder/decoder)芯片可以實現(xiàn)語音的錄入和播放功能。該模塊提供2個獨立的16字節(jié)長的數(shù)據(jù)發(fā)送和接緩沖區(qū)(FIFO),其為全雙工模式,數(shù)字據(jù)點發(fā)速率是64kbps。芯片自身提供工作時鐘、定時脈沖以及數(shù)據(jù)串/并和并/串轉(zhuǎn)換功能。編程人員通過設(shè)置EP7211相應(yīng)的控制寄存器使能這些項功能,則每當(dāng)數(shù)據(jù)收發(fā)緩沖區(qū)半慢或者半空時(8字節(jié)),芯片自身就會產(chǎn)生一次中斷信號供外部處理。理論計算芯片中斷速率是1ms/次。

語音播放中斷服務(wù)例程主要完成的工作是,當(dāng)產(chǎn)生語音中斷時,仍然有數(shù)據(jù)需要播放,則向語音數(shù)據(jù)發(fā)送緩沖區(qū)FIFO中寫入指定數(shù)據(jù),剩下的工作由Codec芯片本身來完成。中斷服務(wù)例程ISR的偽代碼如下(因為具體實現(xiàn)代碼沒有通用性,故此處用偽碼描述):

void IRQ_Codec_Handler(void)

{

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ū)中斷;

復(fù)位各相關(guān)的全局變量;

程序返回;

}

}

else

{

向語音芯片發(fā)送數(shù)據(jù)緩沖區(qū)FIFO寫入默認數(shù)據(jù)

0XFF;

}

}

}

3 試驗結(jié)構(gòu)和分析

由于在設(shè)計階段充分考慮過語音合成算法的大運算量和系統(tǒng)的實時性要求,故我們在具體實現(xiàn)的時候也采取了一些措施,比較突出的有:用ARM匯編語言來實現(xiàn)關(guān)鍵性的函數(shù)代碼;語音合成時提高處理器EP7211的工作頻率(處理器正常工作頻率是18MHz);對于一些常用的三角函數(shù)計算,采用查表的方式等來加快程序執(zhí)行速度。在PDA樣機測試中,單字符合成時間在650ms左右,基本上能夠滿足實際應(yīng)用需求。數(shù)據(jù)語音庫經(jīng)過處理之后,占用了729 560字節(jié)也能夠滿足本PDA系統(tǒng)的存儲的要求。

當(dāng)PDA系統(tǒng)收到1條個人傳呼信息時,在語音庫的支持下,立刻啟動語音合成算法,逐個進行字符語音合成。當(dāng)?shù)?個字節(jié)語音合成結(jié)束后,立刻啟動語音中斷服務(wù)例程進行語音播放。這樣收到的個人傳呼信息,前臺逐個字符解碼時,其后臺語音播放也在進行。根據(jù)實際測試參數(shù),基本上滿足了系統(tǒng)的實時性要求。

從一定角度看,單字符650 ms的語音合成時間基本能夠滿足實際應(yīng)用需要,但還是希望能夠進一步減小這個值。這由于我們對ARM算是器的使用還處在研究階段。ARM本身提供了16位的Thumb指令集和32位的ARM指令集,而且兩者在某些方面表現(xiàn)出較大差別。一般來講,Thumb代碼長度是ARM代碼長度的65%,而執(zhí)行效率要經(jīng)后者高出60%。但在某些方面,32位ARM指令集也會表現(xiàn)出其優(yōu)于16位Thumb指令集的強大功能;同時該處理器系統(tǒng)支持ARM指令庥和Thumb指令集混合編程模式。隨著對二者差別和各自優(yōu)勢的深入理解,結(jié)合本系統(tǒng)的硬件體系結(jié)構(gòu),采用有效的指令集混合編程模式將會使程序執(zhí)行效率進一步提高,從而使實時性得到進一步加強。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19100

    瀏覽量

    228814
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18973

    瀏覽量

    302030
  • 無線網(wǎng)
    +關(guān)注

    關(guān)注

    0

    文章

    102

    瀏覽量

    21193
收藏 人收藏

    評論

    相關(guān)推薦

    基于EP9312的金融嵌入式系統(tǒng)實現(xiàn)方案

    闡述了采用EP9312來構(gòu)造銀行稅務(wù)類 嵌入式系統(tǒng) 的理由,將EP9312與其它嵌入式處理器進行
    發(fā)表于 09-19 15:17 ?1259次閱讀
    基于<b class='flag-5'>EP</b>9312的金融<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>實現(xiàn)</b>方案

    如何用EP7211實現(xiàn)傳呼信息實時語音合成和播放?

    本文闡述在款集成傳呼功能二合一PDA系統(tǒng)中,使用嵌入式
    發(fā)表于 06-07 06:08

    Linux+單片機二合一嵌入式Linux開發(fā)板介紹

    的Linux+單片機二合一嵌入式Linux教學(xué)級開發(fā)板。開發(fā)板搭載ST的STM32MP157高性能微處理器,集成2個Cortex-A7核和1個Cortex-M4 核,A7核上可以跑Linux操作
    發(fā)表于 01-12 06:52

    EP7211實現(xiàn)傳呼信息實時語音合成和播放

    闡述在款集成傳呼功能二合一PDA 系統(tǒng)中,使用嵌入式處理
    發(fā)表于 04-16 10:58 ?22次下載

    基于EP7211實現(xiàn)傳呼信息實時語音合成和播放原理及設(shè)計

    基于EP7211實現(xiàn)傳呼信息實時語音合成和播放原理及設(shè)計 概述:闡述在款集成傳呼功能二合一PDA
    發(fā)表于 03-06 14:56 ?731次閱讀
    基于<b class='flag-5'>EP7211</b><b class='flag-5'>實現(xiàn)</b>傳呼信息實時語音合成和播放原理及設(shè)計

    嵌入式處理器在片調(diào)試功能的設(shè)計

    以 龍芯1號 處理器為研究對象,探討了嵌入式處理器中在片調(diào)試功能的設(shè)計實現(xiàn)方法。大大方便了軟件開發(fā)與系統(tǒng)
    發(fā)表于 06-29 17:45 ?48次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>處理器</b>在片調(diào)試<b class='flag-5'>功能</b>的設(shè)計

    如何構(gòu)建基于處理器嵌入式安全系統(tǒng)?

    嵌入式安全系統(tǒng)概述;嵌入式系統(tǒng)安全技術(shù);安全應(yīng)用處理器介紹 ;基于安全處理器
    的頭像 發(fā)表于 01-25 07:06 ?2520次閱讀
    如何構(gòu)建基于<b class='flag-5'>處理器</b>的<b class='flag-5'>嵌入式</b>安全<b class='flag-5'>系統(tǒng)</b>?

    嵌入式系統(tǒng)教程之嵌入式處理器的詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是嵌入式系統(tǒng)教程之嵌入式處理器的詳細資料說明包括了:1 硬件子系統(tǒng)的組成,2
    發(fā)表于 06-14 17:14 ?18次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>教程之<b class='flag-5'>嵌入式</b><b class='flag-5'>處理器</b>的詳細資料說明

    Intel嵌入式處理器的相關(guān)基礎(chǔ)知識

    Intel嵌入式處理器是目前最強勁的移動處理器,廣泛應(yīng)用于PDA、智能手機、PMP等嵌入式產(chǎn)品中。經(jīng)過多年的發(fā)展Intel
    發(fā)表于 06-24 17:06 ?1266次閱讀

    嵌入式控制系統(tǒng)的ARM處理器

    嵌入式控制系統(tǒng)的ARM處理器、嵌入式硬件系統(tǒng)概述1、嵌入
    發(fā)表于 10-20 13:21 ?3次下載
    <b class='flag-5'>嵌入式</b>控制<b class='flag-5'>系統(tǒng)</b>的ARM<b class='flag-5'>處理器</b>

    嵌入式處理器

      嵌入式處理器嵌入式系統(tǒng)的核心,是控制、輔助系統(tǒng)運行的硬件單元。范圍極其廣闊,從最初的4位處理器
    發(fā)表于 10-20 17:21 ?1次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>處理器</b>

    嵌入式處理器

      嵌入式處理器嵌入式系統(tǒng)的核心,是控制、輔助系統(tǒng)運行的硬件單元。范圍極其廣闊,從最初的4位處理器
    發(fā)表于 10-21 13:36 ?3次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>處理器</b>

    嵌入式處理器有哪些種類 目前主流的嵌入式處理器架構(gòu)有哪些

     嵌入式處理器是專門設(shè)計用于嵌入式系統(tǒng)的微處理器,它們通常具有低功耗、小尺寸和多種集成功能的特點
    發(fā)表于 07-24 14:57 ?9480次閱讀

    什么是嵌入式微處理器?嵌入式微處理器有哪些?

    嵌入式微處理器是指嵌入到特定應(yīng)用系統(tǒng)中的微處理器,它是整個嵌入式系統(tǒng)的核心,由通用
    的頭像 發(fā)表于 03-29 11:39 ?908次閱讀

    嵌入式微處理器功能 嵌入式微處理器原理與應(yīng)用

    嵌入式微處理器種集成了中央處理單元(CPU)核心和各種外圍接口的集成電路,廣泛應(yīng)用于嵌入式系統(tǒng)中。由于
    的頭像 發(fā)表于 05-04 14:50 ?1023次閱讀