基于W90P710的智能音樂(lè )播放器系統設計
隨著(zhù)多媒體的發(fā)展,音樂(lè )播放器作為消費類(lèi)電子產(chǎn)品,其不斷增長(cháng)的消費要求促使生產(chǎn)廠(chǎng)家采用更先進(jìn)的技術(shù)來(lái)提高自己產(chǎn)品的競爭力。近幾年來(lái)語(yǔ)音識別技術(shù)迅速發(fā)展,專(zhuān)門(mén)用于語(yǔ)音識別的芯片層出不窮,如凌陽(yáng)大學(xué)計劃推出的SPCE061A單片機,性?xún)r(jià)比高,應用廣泛。結合語(yǔ)音識別技術(shù)與當前盛行的嵌入式技術(shù),設計一款不僅具有傳統的按鍵控制功能且能控制語(yǔ)音的音樂(lè )播放器,具有一定的市場(chǎng)前景。
1 系統整體方案設計
音頻解碼方式分為硬件解碼和軟件解碼,硬件解碼根據在系統硬件的安排又有單芯片和雙芯片形式之分。雙芯片形式在于分離解碼芯片與控制芯片,解碼效果出色,但價(jià)格昂貴;單芯片形式為簡(jiǎn)化結構犧牲了音質(zhì),但性?xún)r(jià)比高。軟件解碼功能實(shí)現起來(lái)比較靈活,成本低,但對微控制器的運行速度和內存要求較高。兩種解碼方式皆有利弊。本文提出了一個(gè)比較折中的方案,即采用ARM7微處理器的單芯片形式和軟件解碼方式,使性能優(yōu)化,同時(shí)符合市場(chǎng)需求。此外考慮到語(yǔ)音識別需實(shí)時(shí)響應,可采用語(yǔ)音識別專(zhuān)用芯片來(lái)完成,同時(shí)也保證了識別率?;谝陨戏治?,主機采用華邦公司生產(chǎn)的W90P710套件,從機采用凌陽(yáng)公司的 SPCE061A作為語(yǔ)音識別芯片?;赪90P710的智能音樂(lè )播放器框架如圖1所示。播放器的運行流程是:用戶(hù)打開(kāi)機器首先進(jìn)入功能界面,功能界面分音樂(lè )模式、錄音模式、訓練模式和文件管理。若打開(kāi)機器時(shí)用戶(hù)沒(méi)有語(yǔ)音庫,則只能用按鍵控制機器,同時(shí)LCD屏提示用戶(hù)進(jìn)入訓練模式訓練語(yǔ)音命令而獲得自己的語(yǔ)音庫;若訓練成功則可以語(yǔ)音控制播放器進(jìn)入各個(gè)模式。進(jìn)入音樂(lè )模式,在播放音樂(lè )時(shí),LCD屏顯示歌曲的基本信息,如歌名、演唱者、專(zhuān)輯名等,同時(shí)可以按鍵和語(yǔ)音控制音樂(lè )的播放,如上一首、下一首、暫停、播放、退出等。在其他3種模式下,只能靠按鍵控制。
2 硬件設計
按照模塊化設計原則,將整個(gè)智能音樂(lè )播放器分成主控模塊、語(yǔ)音識別模塊、音頻模塊、顯示模塊和鍵盤(pán)。
2.1 主、從機控制器
W90P710主機是系統控制和管理的核心,實(shí)現音樂(lè )播放,錄音,音樂(lè )文件和錄音文件的存儲、刪除、顯示,以及與單片機的串口通信等功能。該處理器以ARM7TDMI為內核,具有以下特性:
①片內集成LCD控制器,方便實(shí)現顯示功能;
②外部總線(xiàn)接口具有豐富的片選資源,可擴展NAND Flash等大容量存儲設備;
③具有4個(gè)串口,可方便實(shí)現與凌陽(yáng)單片機的串口通信及程序調試。
同時(shí),W90P710主頻能達到80 MHz,功耗低,有著(zhù)十分優(yōu)秀的性?xún)r(jià)比,特別適用于系統控制領(lǐng)域。
系統的語(yǔ)音識別芯片為SPCE061A,是凌陽(yáng)科技公司推出的針對語(yǔ)音識別領(lǐng)域的16位單片機,具有體積小、功耗低、性能好且易于開(kāi)發(fā)等特點(diǎn)。該芯片使用凌陽(yáng)音頻編碼SACM_S240方式(2.4 kbps),能容納210 s的語(yǔ)音數據;具備串行設備接口;7通道10位電壓A/D轉換器(ADC)和1個(gè)單通道的聲音專(zhuān)用A/D轉換器。聲音A/D轉換器輸入通道,內置麥克風(fēng)放大器和自動(dòng)增益控制(AGC)電路。語(yǔ)音模式成功啟動(dòng)或處于訓練模式下,單片機自行采集語(yǔ)音信號并進(jìn)行識別,識別結果通過(guò)串行接口傳給主機。
2.2 音頻模塊
音頻模塊在整個(gè)系統中起著(zhù)舉足輕重的作用,不但要實(shí)現錄音功能,而且還需播放MP3音樂(lè )、提示音和錄音文件。本系統的音頻接口由AC97音頻接口總線(xiàn)接口和ALC203音頻編解碼器組成。ALC203是Realtek公司推出的一款經(jīng)濟型音頻編解碼器,它通過(guò)AC97數字音頻接口實(shí)現音頻信號的數字化處理。圖2是關(guān)于音頻編解碼的具體實(shí)現電路,ALC203的2、3腳接1個(gè)24.576 MHz的晶振;5、6、7、10腳和華邦W90P710的AC97數字音頻接口A(yíng)C97-DATO、AC97-BCLK、AC97-DATI、AC97- SYNC相連;MIC1和MIC2接麥克風(fēng)兩端;HP-OUT-L和HP-OUT-R腳分別通過(guò)一個(gè)有極電容接到耳機插口處;GPIO1和GPIO0可以硬件調節音量,但本設計采用軟件進(jìn)行音量調節。
2.3 其他模塊設計
LCD顯示屏選用的是AUO公司的A030DL01(320×240)工業(yè)級液晶屏。該液晶屏的彩色格式為RGB656格式,彩色色深可達到64K色,顯示文件名和歌曲基本信,同時(shí)因屏幕空間較大,可添加彩色背景畫(huà)面。漢字顯示是通過(guò)添加字庫軟件實(shí)現的。鍵盤(pán)有4×1個(gè)按鍵,方便用戶(hù)控制播放器,同時(shí)也保證在語(yǔ)音模式不能正確工作時(shí)可以按鍵控制機器。
MPEGDEC_STREAM*MPEGDEC_open(char*filename,MPEGDEC_CTRL*ctrl);
功能描述:打開(kāi)MPEG音頻文件。
參數:filename為待打開(kāi)的音頻文件,ctrl為控制數據解碼信息的結構體。
返回值:打開(kāi)成功,則返回包含數據流信息和解碼信息的結構體指針;失敗,則返回NULL。
void MPEGDEC_dose(MPEGDEC_STREAM*mpds);
功能描述:關(guān)閉MPEG音頻文件。
參數:mpds指向待關(guān)閉的音頻文件。
無(wú)返回值。
unsigned long MPEGDEC_decode_frame(MPEGDEC_STREAM*mpds,short*pcm[MPEGDEC_MAX_CHANNELS]);;
功能描述:為當前打開(kāi)的音頻文件的一幀解碼。
輸入:mpds指向打開(kāi)的音頻文件。
輸出:pcm[]存放解碼后的16位音頻數據;pcm[0]中存放單聲道或左聲道或聲道1的數據;pcm[1]中存放右聲道或聲道2的數據。
返回值:返回解碼一幀的音頻數據數目;返回MPEG-DEC_ERR_EOF,則說(shuō)明當前幀是最后一幀;返回MPEG-DEC_ERR_BADFRAME,則說(shuō)明該幀已損壞。
3.2.2 歌曲基本信息結構體
按照MP3的ID3 V1.0標準定義,MP3文件的最后128字節用來(lái)存放標簽頭、歌曲名、演唱者等信息。為了在LCD屏上顯示當前播放歌曲的基本信息,給出了一個(gè)結構體來(lái)讀取并存放這些信息。這個(gè)結構體定義如下:
3.2.3 播放主流程
當用戶(hù)選中歌曲進(jìn)入播放界面時(shí),ARM7主機首先通過(guò)串口給單片機發(fā)一個(gè)命令字0x01,通知從機進(jìn)入識別“播放器”這組命令的函數。從機接收到命令后,首先判斷“播放器”這組命令是否已經(jīng)訓練。若訓練,則返回0x04,同時(shí)播放器的語(yǔ)音模式啟動(dòng)成功;若未訓練,則返回0x06,LCD屏顯示提醒用戶(hù)訓練該庫;若從機在規定時(shí)間內(因實(shí)時(shí)性要求,這里“規定時(shí)間”指200 ms)返回其他值或未返回值,則播放器的語(yǔ)音模式啟動(dòng)失敗。若成功啟動(dòng)語(yǔ)音模式,音樂(lè )是分幀解碼后播放,在幀一幀循環(huán)中,主機需查詢(xún)鍵盤(pán)和串口,來(lái)實(shí)現“ 上一首”、“下一首”、“播放”、“暫停”、“退出”和調節音量的功能。若語(yǔ)音模式啟動(dòng)失敗,則只需查詢(xún)鍵盤(pán)。每次接收到“退出”命令時(shí),主機在退出音樂(lè )模式前需通過(guò)串口發(fā)送0x05給單片機,通知單片機同步退出該模式;單片機接收到命令后,需返回0x04告知主機已退出。播放的主流程如圖4所示。關(guān)于語(yǔ)音命令如何訓練,可見(jiàn)參考文獻[5],這里不再贅述。
4 實(shí)驗結果
以W90P710開(kāi)發(fā)套件+凌陽(yáng)SPCE061A為硬件,采用嵌入式操作系統μClinux,在實(shí)驗室安靜和嘈雜的情況下(安靜時(shí)室內噪聲為50 dB,嘈雜時(shí)為60 dB),測試播放器語(yǔ)音模式的工作效率。在測試語(yǔ)音模式的工作效率前,先進(jìn)行了按鍵測試,測試通過(guò)率為100%,且音樂(lè )播放流暢,響應滿(mǎn)足實(shí)時(shí)性要求。
要使語(yǔ)音模式有效工作,首先需訓練“播放器”的語(yǔ)音命令,即“播放”、“暫停”、“上一首”、“下一首”、“退出”這5個(gè)命令。訓練時(shí)環(huán)境至關(guān)重要,必須處于實(shí)驗室安靜環(huán)境下。訓練的5個(gè)命令并不一定是上述5個(gè)詞,只要表達出相應意思即可,如“上一首”、“下一首”命令直接訓練成“上”、“下”。筆者在實(shí)驗室安靜環(huán)境下訓練后,分別在安靜、嘈雜的環(huán)境下進(jìn)行語(yǔ)音測試,結果分別為96.8%、77.8%。實(shí)驗結果顯示,在安靜環(huán)境下,語(yǔ)音通過(guò)率很高;在嘈雜環(huán)境下,語(yǔ)音通過(guò)率稍微低些,但可以和按鍵同時(shí)使用。
結 語(yǔ)
本文設計了一款由主機W90P710、從機凌陽(yáng)SPCE061A單片機及其外圍電路組成的智能音樂(lè )播放器。硬件上重點(diǎn)介紹了音頻模塊;軟件上簡(jiǎn)單說(shuō)明了 MP3解碼過(guò)程及給出了相關(guān)接口函數,并詳細講述了播放主流程。最后在測試了按鍵能夠實(shí)時(shí)、正確響應的基礎上,又分別在安靜、嘈雜的環(huán)境下,進(jìn)行了語(yǔ)音模式的響應測試,實(shí)驗結果說(shuō)明,該播放器不僅能按鍵控制也能語(yǔ)音控制,且語(yǔ)音控制效果良好。 (編輯:呂勇)
評論