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