基于單片機(jī)設(shè)計(jì)的通用漢字文本播音系統(tǒng)
嵌入式語(yǔ)音播放系統(tǒng)應(yīng)用日益廣泛。漢字語(yǔ)音播放的方法有錄音芯片法、語(yǔ)音合成芯片法及漢字語(yǔ)音庫(kù)法等。Flash存儲(chǔ)器容量不斷增大,利用Windows的Speech SDK可以方便地提取漢字語(yǔ)音文件,因此漢字語(yǔ)音庫(kù)法得以廣泛應(yīng)用。
本文引用地址:http://www.ex-cimer.com/article/173150.htm漢字語(yǔ)音庫(kù)法可分為專用語(yǔ)音播放和通用語(yǔ)音播放兩類。專用語(yǔ)音播放系統(tǒng)只存儲(chǔ)少量固定的語(yǔ)音資源,只需較小的存儲(chǔ)容量,但應(yīng)用范圍有限。通用語(yǔ)音播放系統(tǒng)存儲(chǔ)所有不同讀音漢字的單字語(yǔ)音資源,可實(shí)現(xiàn)任意文本組合的語(yǔ)音播放,適用于播放內(nèi)容經(jīng)常更新的場(chǎng)合。本系統(tǒng)由1220個(gè)不同讀音漢字讀音文件構(gòu)成語(yǔ)音庫(kù),存于一片F(xiàn)lash存儲(chǔ)器中,實(shí)現(xiàn)了基于SPCE061A的嵌入式通用漢字文本語(yǔ)音播放系統(tǒng)。系統(tǒng)硬件簡(jiǎn)單,使用方便,成本低廉,適用于公交車報(bào)站器等應(yīng)用系統(tǒng)中。
1硬件原理
直接由漢字的wave讀音文件構(gòu)成的語(yǔ)音庫(kù)占存儲(chǔ)空間很大,語(yǔ)音文件壓縮后,可使語(yǔ)音庫(kù)數(shù)據(jù)占Flash存儲(chǔ)器空間大大減小。凌陽(yáng)為語(yǔ)音播放提供了多種壓縮算法,本系統(tǒng)采用碼激勵(lì)線性預(yù)測(cè)(CELP)編碼的SACM_S480壓縮算法,其壓縮比例為80:3。壓縮后的語(yǔ)音資源數(shù)據(jù)可存放在一片512 kB的Flash存儲(chǔ)器中。
普通單片機(jī)為核心的語(yǔ)音播放系統(tǒng)硬件上需要較多的外圍器件和電路,如存儲(chǔ)器、D/A轉(zhuǎn)換器等,軟件上語(yǔ)音解壓縮速度不快會(huì)影響其他操作。而若采用嵌入式微處理器實(shí)現(xiàn)語(yǔ)音播放系統(tǒng)則成本太高。凌陽(yáng)16位單片機(jī)SPCE061A是一個(gè)最佳的選擇,它帶有DSP指令,將嵌入式語(yǔ)音系統(tǒng)所需的A/D、D/A等功能模塊都集成在一個(gè)芯片中,具有很強(qiáng)的可編程音頻處理功能。凌陽(yáng)還提供SACM_LIB語(yǔ)音庫(kù)(本系統(tǒng)使用SACMV26e.lib)可實(shí)現(xiàn)錄音、播放和語(yǔ)音識(shí)別等功能。
本系統(tǒng)硬件原理如圖1所示,主要由SPCE061A單片機(jī)和外部Flash存儲(chǔ)器SPR4096A兩個(gè)芯片組成。SPCE061A運(yùn)行所有語(yǔ)音解碼播放及其他操作的軟件功能,它的D/A輸出經(jīng)音頻功放SPY0030接揚(yáng)聲器。SPR4096A存儲(chǔ)包括漢字讀音序號(hào)索引表、語(yǔ)音資源地址索引表和語(yǔ)音資源數(shù)據(jù)的所有語(yǔ)音信息。
通用文本語(yǔ)音播放有預(yù)先存儲(chǔ)固定文本播放、接收文本后播放和實(shí)時(shí)文本播放等3種工作方式。實(shí)時(shí)文本播放方式對(duì)系統(tǒng)的軟件處理能力的要求最高,最能檢驗(yàn)系統(tǒng)的語(yǔ)音播放操作與其他操作的配合情況,故本系統(tǒng)采用實(shí)時(shí)文本播放的方式進(jìn)行程序調(diào)試,即串行口輸入漢字的同時(shí)進(jìn)行文本播放,硬件上SPCE061A的UART與PC機(jī)的RS-232連接。
SPCE061A有內(nèi)置ICE(在線仿真器)調(diào)試接口,可實(shí)現(xiàn)在線仿真、調(diào)試和下載,程序調(diào)試非常方便,這也是選擇SPCE061A的主要原因之一。硬件上ICE調(diào)試接口與PC機(jī)并行口連接。SPCE061A除可編程音頻處理功能外,還具有豐富的I/O口、時(shí)鐘源及中斷源,F(xiàn)lash存儲(chǔ)達(dá)32 k字,RAM有2 k字,在語(yǔ)音播放的同時(shí)還能進(jìn)行復(fù)雜的控制操作。
SPR4096A容量為512 k×8位,分256個(gè)扇區(qū),每個(gè)扇區(qū)為2 kB,可配置為BMI(總線存儲(chǔ)器接口)或SIF(串行接口總線)。為節(jié)省I/O口,本系統(tǒng)使用串行接口。此串行接口是凌陽(yáng)自行定義的SIO接口,也用SCK和SDA兩根信號(hào)線,但數(shù)據(jù)格式與I2C或SPI略有不同,SPCE061A的IOB0為時(shí)鐘信號(hào)SCK,IOB1為數(shù)據(jù)信號(hào)SDA。
評(píng)論