<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式TTS漢語語音系統(tǒng)的解決方案

          嵌入式TTS漢語語音系統(tǒng)的解決方案

          作者: 時間:2018-09-11 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201809/388928.htm

            在PC上制作寫入的Flash的數(shù)據(jù)文件時,首先將地址表放在最前面,其后將壓縮后的語音文件逐一寫入,并將每個文件的起始地址轉(zhuǎn)換成對Flash存儲器操作的命令字寫入地址表相應(yīng)項(xiàng)中,每寫完一個文件要加上01H結(jié)束碼,并在寫入過程中完成對C區(qū)的填充。在綜合完1335個語音文件、地址查找表、C區(qū)填充碼及文件結(jié)束碼之后,得到Flash存儲器的二進(jìn)制映像文件,其大小為8047776字節(jié)。寫入后,Flash中尚余后333KB可用空間,聯(lián)合地址表中的預(yù)留項(xiàng),可用于對系統(tǒng)語音庫做進(jìn)一步的擴(kuò)充。上述語音庫的存儲結(jié)構(gòu)見圖4。

            4 碼字轉(zhuǎn)換及高效MCU代碼的實(shí)現(xiàn)

            本文中的碼字轉(zhuǎn)換有兩類。一類GB碼到語音庫起始字節(jié)數(shù)的轉(zhuǎn)換,用于MCU收到串口輸入的GB碼后,確定相應(yīng)讀音在地線表中對應(yīng)項(xiàng)的起始地址。該類碼字轉(zhuǎn)換主要依據(jù)GB2312標(biāo)準(zhǔn)及語音庫地址表的結(jié)構(gòu)進(jìn)行。本文中,該碼制轉(zhuǎn)換的算法為:((GB碼高字節(jié)-161)×94+(GB)碼低字節(jié)-161))×4。另一類是將上述地址轉(zhuǎn)換為Flash讀取數(shù)據(jù)的命令字。這類轉(zhuǎn)換與語音庫存儲結(jié)構(gòu)及所用Flash存儲器的讀寫操作及時序相關(guān)。由于在語音庫生成時已由PC機(jī)將語音數(shù)據(jù)的起始地址轉(zhuǎn)換為操作命令字并存儲到了地址表對應(yīng)項(xiàng)中,即大部分的計(jì)算及時序控制操作在使用PC制作Flash的二進(jìn)制映像文件時已經(jīng)完成,因而避免了系統(tǒng)運(yùn)行中的大量計(jì)算,從而保證了語音播放的實(shí)時性。計(jì)算命令字的方法與具體的Flash存儲器型號相關(guān)且較為繁瑣。限于篇幅,本文不再給出具體的算法。有興趣的讀者可以參閱K9F6408U0B的數(shù)據(jù)表。

            本文中的MCU型號為AT89S52,使用22.1484MHz的晶振。根據(jù)AT89S52數(shù)據(jù)表,每播放一個漢字,所需指令周期數(shù)為(1/11025)/(12/22.1184)=167.2。因此設(shè)置一個計(jì)時器中斷,中斷值為256-167=89,在每兩個中斷之間完成如下工作:

           ?。?) 從緩沖區(qū)中取得GB碼并將之轉(zhuǎn)換為地址表對應(yīng)項(xiàng)地址;

           ?。?) 從地址表對應(yīng)項(xiàng)中取得對應(yīng)語音數(shù)據(jù)區(qū)存儲地址;

           ?。?) 取得對應(yīng)語音數(shù)據(jù)區(qū)數(shù)據(jù);

           ?。?) 完成游程解碼并播放。

           

            此外,由于完成有可能在語音播放過程收以輸入字符,因而串口亦應(yīng)工作于中斷方式,串口波特率為9600bps,其優(yōu)先級高于定時器中斷。本系統(tǒng)中,此緩沖區(qū)能滿足使用都 量多一次輸入60個漢字。以上操作均在約168個指令周期中完成,大約相當(dāng)84條雙周期指令。因而在代碼編寫中,必須把代 碼效率放在第一位,靈活地運(yùn)用編程技巧來完成。

           本文給出了一種系統(tǒng)的實(shí)現(xiàn)。由于采用了易于解碼的改進(jìn)游程算法、多重查找表及Flash存儲器操作命令這了的預(yù)先存儲技術(shù),使得該可以在羅低要求的硬件平臺上實(shí)現(xiàn),以AT89S52 MCU為核心的系統(tǒng)不同于基于PC的語音系統(tǒng),該系統(tǒng)體積小、功耗低、成本低廉、適用范圍很廣。經(jīng)測試其語音清晰、連貫,可發(fā)音字節(jié)涵蓋GB碼所有漢字、26個英文字節(jié),一次可輸入多達(dá)60個漢字的整句,足以滿足大部分應(yīng)用場合的需要。如以高檔MCU或ARM處理器為平臺,還可以增加更多的算法,以進(jìn)一步改進(jìn)系統(tǒng)性能。


          上一頁 1 2 下一頁

          關(guān)鍵詞: TTS 嵌入式 漢語語音 方案

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();