應(yīng)用MSP50C30設(shè)計(jì)電子語(yǔ)音導(dǎo)游機(jī)
關(guān)鍵詞:MSP50C30 MELP算法 語(yǔ)音合成 電子導(dǎo)游機(jī)
1 概述
隨著我國(guó)經(jīng)濟(jì)的發(fā)展,旅游業(yè)也獲得了長(zhǎng)足的發(fā)展,節(jié)假日外出旅游已成為人們的首選,對(duì)大多數(shù)零散游客來(lái)說(shuō),希望有一種不受制于人的輔助導(dǎo)游手段,迫切需要一種攜帶方便、存儲(chǔ)容量大且不會(huì)機(jī)械磨損的電子語(yǔ)音導(dǎo)游機(jī)(簡(jiǎn)稱(chēng)導(dǎo)游機(jī)),但目前市場(chǎng)上已在使用的導(dǎo)游機(jī),要私體積大,不便于攜帶;要么容量不夠,放音時(shí)間有限,因此制約了其應(yīng)用和推廣。要實(shí)現(xiàn)較長(zhǎng)時(shí)間的數(shù)字放音有兩種方式:一是擴(kuò)大存儲(chǔ)空間,但無(wú)限擴(kuò)大存儲(chǔ)空間必增加系統(tǒng)成本,二是采用語(yǔ)音壓縮方法來(lái)降低數(shù)據(jù)量。其于上述兩種方法,筆者選用了TI公司新近推出的語(yǔ)音合成芯片MSP50C30并采和MELP語(yǔ)音壓縮算法,通過(guò)外接64M位存儲(chǔ)器對(duì)語(yǔ)音信號(hào)進(jìn)行了壓縮存儲(chǔ)和合成。經(jīng)過(guò)這樣處理合成后的語(yǔ)音音質(zhì)良好,放音時(shí)間可長(zhǎng)達(dá)6小時(shí)左右,且該機(jī)體積很小,較好地解決了上面所提到的問(wèn)題。
2 MSP50C30的結(jié)構(gòu)特點(diǎn)
MSP50C30是TI公司1998年推出的一款功能強(qiáng)大的語(yǔ)音合成芯片,其內(nèi)部集成了8位微處理器、雙通道語(yǔ)音合成器、RAM、ROM、I/O端口等功能模塊。其中微處理器利用其專(zhuān)用的61條指令可完成數(shù)字運(yùn)算、邏輯功能和控制功能;語(yǔ)音合成器則利用其內(nèi)部集成的12階格型濾波器,采用LPC壓縮算法來(lái)合成高質(zhì)量的語(yǔ)音。在進(jìn)行語(yǔ)音合成時(shí),微處理器從內(nèi)部RAM或外部ROM中讀取語(yǔ)音數(shù)據(jù)進(jìn)行譯碼,然后將譯碼后的語(yǔ)音數(shù)據(jù)送到語(yǔ)音合成器,語(yǔ)音合成器對(duì)譯碼數(shù)據(jù)進(jìn)行插值計(jì)算并合成語(yǔ)音,再通過(guò)D/A變換后送到功放直接驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。
表1 MSP50C30引腳說(shuō)明
管 腳 名 稱(chēng) | 管 腳 說(shuō) 明 |
DAC+ | D/A輸出 |
DAC- | D/A輸出 |
ID0ID7 | 數(shù)據(jù)輸入端口 |
INIT | 初始化輸入(復(fù)位) |
OSC IN | 時(shí)鐘輸入,使用內(nèi)部時(shí)鐘接地 |
OSC OUT | 時(shí)鐘返回,使用內(nèi)部時(shí)鐘時(shí),作用PBI的I/O口 |
OA0OA22 | 23位外部存儲(chǔ)器地址線64M bit |
PA0PA7 | 8位雙向I/O口 |
PB0PB7 | 8位雙向I/O口 |
PC0PC7 | 8位雙向I/O口 |
PD0PD3 | 4位雙向I/O口 |
VDD | 5V電壓輸入 |
VSS | 地 |
另外,MSP50C30內(nèi)部集成有晶體振蕩器,可提供系統(tǒng)所需的時(shí)鐘。
MSP50C30引腳圖如圖1所示,管腳說(shuō)明如表1所列。MSP50C30的主要特點(diǎn)如下:
●帶有雙通道可編程LPC-12語(yǔ)音合成器,可實(shí)現(xiàn)立體聲效果;
●內(nèi)含8位微處理器,每秒可執(zhí)行1.2M條指令;
●有61條指令,并具有單周期的乘法指令;
●具有ROM接口,23根地址線可尋址8M字節(jié);
●帶有28個(gè)軟件可編程雙向I/O口;
●具有內(nèi)嵌和外接兩種靈活的時(shí)鐘方式;
●內(nèi)嵌D/A,共有2種輸出方式;
●含7級(jí)堆棧,具有外部控制的中斷功能;
●可支持10kHz或8kHz語(yǔ)音采樣速率;
●可用軟件配置進(jìn)入低功耗睡眠狀態(tài);
●支持LPC、MELP、CELP、FM、PCM等多種壓縮算法。
MSP50C30與同步芯片相比,其最大優(yōu)點(diǎn)在于具有豐富的I/O接口和高達(dá)64M位的外部尋址能力,是長(zhǎng)時(shí)間放音系統(tǒng)的理想選擇。
3 硬件電路設(shè)計(jì)
筆者設(shè)計(jì)的語(yǔ)音導(dǎo)游機(jī)的硬件原理圖如圖2所示。該系統(tǒng)以MSP50C30為核心,外接存儲(chǔ)電路、鍵盤(pán)接口電路、顯示電路、功放電路和DC-DC變換電路,其中MSP50C30完成語(yǔ)音的合成與控制功能。存儲(chǔ)器選用INTEL公司生產(chǎn)的64M位FLASH ROM 28F640J5,其地址線和數(shù)據(jù)分別與MSP50C30的地址線(A0~A22)和數(shù)據(jù)線(ID0~I(xiàn)D7)直接相連,語(yǔ)音數(shù)據(jù)已事先經(jīng)TI公司提供的專(zhuān)用軟件進(jìn)行壓縮,并通過(guò)編程器燒錄至FLASH ROM中。為便于數(shù)據(jù)更換,電路中還設(shè)計(jì)了存儲(chǔ)器和編程器的接口,因此可通過(guò)編程并關(guān)的切換將28F640J5與語(yǔ)音合成電路分離,從而可方便的實(shí)現(xiàn)語(yǔ)音數(shù)據(jù)的更換。該導(dǎo)游機(jī)的鍵盤(pán)采用4×4矩陣式鍵盤(pán),共設(shè)16個(gè)按鍵,其中數(shù)字鍵10個(gè)(0~9),用來(lái)實(shí)現(xiàn)數(shù)字選?。?個(gè)功能鍵用來(lái)實(shí)現(xiàn)播放、暫停、快進(jìn)、快退等功能。鍵盤(pán)矩陣與MSP50C30端口PA0~PA7相接,系統(tǒng)通過(guò)鍵值掃描程序讀取按鍵狀態(tài)。液晶顯示采用3位LCD數(shù)碼顯示器;ED-S812并用MSP50C30的PB0~PB7作為控制數(shù)碼顯示的I/O口,其驅(qū)動(dòng)芯片采用MC14543來(lái)實(shí)現(xiàn)BCD譯碼,交流驅(qū)動(dòng)方波(80Hz~100Hz)通過(guò)74HC14振蕩電路產(chǎn)生。
為便于導(dǎo)游機(jī)的攜帶,系統(tǒng)采用兩節(jié)5#電池供電,由于系統(tǒng)需5V電源,故需設(shè)計(jì)DC-DC變換電路。設(shè)計(jì)時(shí),選用了MAXIM公司MAX756,該器件的輸入電壓可低至0.7V,通過(guò)管腳2的選擇可輸出3V和5V兩種電壓。
當(dāng)系統(tǒng)復(fù)位后,MSP50C30啟動(dòng)鍵值掃描程序,以使其從PA口讀取所按鍵值,并通過(guò)PB口將鍵值送出,經(jīng)過(guò)MC14543譯碼,可在液晶顯示器上顯示相應(yīng)的數(shù)字。然后MSP50C30通過(guò)內(nèi)部程序查表,送給語(yǔ)音合成器,合成后的語(yǔ)音從DAC+和DAC-腳送出,通過(guò)外部功放電路驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。系統(tǒng)所需時(shí)鐘由內(nèi)部晶振提供。
4 軟件電路設(shè)計(jì)
4.1 語(yǔ)音合成程序設(shè)計(jì)
MSP50C30采用MELP算法來(lái)合成語(yǔ)音,它是LPC的改進(jìn)算法,其優(yōu)點(diǎn)在于:MELP算法不需要專(zhuān)業(yè)的修音設(shè)備,語(yǔ)音數(shù)據(jù)由專(zhuān)用的壓縮軟件來(lái)完成,而且合成后的語(yǔ)音音質(zhì)良好。對(duì)于語(yǔ)音實(shí)時(shí)存儲(chǔ)系統(tǒng)來(lái)說(shuō),它是一種理想的壓縮算法。MELP算法的幀格式與LPC幀格式近似,只是在濁音幀中引入了基音抖動(dòng)參數(shù)和清濁強(qiáng)度參數(shù)來(lái)對(duì)濁音幀的基音周期進(jìn)行修正。若每幀以20ms計(jì)算,則MELP算法最大壓縮率為62×50=3100bit/s(每幀被量化為62bit)。由于采用了變速率編碼方式,從而使平均壓縮率變得更低。另外,用戶(hù)還可根據(jù)自己對(duì)話音質(zhì)量的要求,按照自己的算法自行設(shè)計(jì)幀格式以產(chǎn)生更好的音質(zhì)。語(yǔ)音合成子程序的流程圖如圖3所示。
4.2 語(yǔ)音控制軟件設(shè)計(jì)
語(yǔ)音控制軟件主要用于完成以下功能:(1)檢測(cè)按鍵次數(shù),并計(jì)算相應(yīng)的鍵值;(2)在液晶顯示器上顯示鍵值;(3)根據(jù)計(jì)算所得鍵值,選取相應(yīng)的語(yǔ)音段,從外部28F640J5中讀取數(shù)據(jù)傳送給MSP50C30,同時(shí)提供給語(yǔ)音成子程序合成語(yǔ)音;(4)在語(yǔ)音合成過(guò)程中,檢測(cè)功能鍵是否按下,若按下,執(zhí)行相應(yīng)的功能鍵控制子程序。語(yǔ)音控制軟件流程圖如圖4所示。
鍵盤(pán)掃描采用線反轉(zhuǎn)法,其實(shí)現(xiàn)方法是:首先將行線編程為輸出線,列線編程為輸入線,使輸出全部為零電平,則列線中電平由高變低的即為按鍵所在的列;然后將行線編程為輸入線,列線編程為輸出線,使輸出全為零電平,則行線中電平由高變低的即為按鍵所在的行;這樣便可確定鍵值。在鍵值掃描子程序中通過(guò)軟件延時(shí)10ms,是為了消除按鍵所帶來(lái)的抖動(dòng),以避免產(chǎn)生誤判。鍵值檢測(cè)子程序流程圖如圖5所示。
在鍵值掃描的同時(shí)對(duì)所按數(shù)字鍵進(jìn)行顯示的流程如圖6所示。
5 結(jié)束語(yǔ)
本文所介紹的整機(jī)電路設(shè)計(jì)簡(jiǎn)單、性能可靠,所有器件均采用貼片元件,體積小,攜帶方便。經(jīng)過(guò)聽(tīng)力測(cè)試表明:整機(jī)具有良好的語(yǔ)音質(zhì)量,合成語(yǔ)音保持了較高的清晰度、可懂度及自然度。