新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > W90P710的智能音樂播放器系統設計

        W90P710的智能音樂播放器系統設計

        作者: 時間:2010-01-06 來源:網絡 收藏
        MPEGDEC_STREAM*MPEGDEC_open(char*filename,MPEGDEC_CTRL*ctrl);
        功能描述:打開MPEG音頻文件。
        參數:filename為待打開的音頻文件,ctrl為控制數據解碼信息的結構體。
        返回值:打開成功,則返回包含數據流信息和解碼信息的結構體指針;失敗,則返回NULL。

        本文引用地址:http://www.104case.com/article/166810.htm

          void MPEGDEC_dose(MPEGDEC_STREAM*mpds);
        功能描述:關閉MPEG音頻文件。
        參數:mpds指向待關閉的音頻文件。
        無返回值。

          unsigned long MPEGDEC_decode_frame(MPEGDEC_STREAM*mpds,short*pcm[MPEGDEC_MAX_CHANNELS]);;
        功能描述:為當前打開的音頻文件的一幀解碼。
        輸入:mpds指向打開的音頻文件。
        輸出:pcm[]存放解碼后的16位音頻數據;pcm[0]中存放單聲道或左聲道或聲道1的數據;pcm[1]中存放右聲道或聲道2的數據。
        返回值:返回解碼一幀的音頻數據數目;返回MPEG-DEC_ERR_EOF,則說明當前幀是最后一幀;返回MPEG-DEC_ERR_BADFRAME,則說明該幀已損壞。

          3.2.2 歌曲基本信息結構體

          按照MP3的ID3 V1.0標準定義,MP3文件的最后128字節用來存放標簽頭、歌曲名、演唱者等信息。為了在LCD屏上顯示當前播放歌曲的基本信息,給出了一個結構體來讀取并存放這些信息。這個結構體定義如下:

          3.2.3 播放主流程

          當用戶選中歌曲進入播放界面時,ARM7主機首先通過串口給單片機發一個命令字0x01,通知從機進入識別“”這組命令的函數。從機接收到命令后,首先判斷“”這組命令是否已經訓練。若訓練,則返回0x04,同時的語音模式啟動成功;若未訓練,則返回0x06,LCD屏顯示提醒用戶訓練該庫;若從機在規定時間內(因實時性要求,這里“規定時間”指200 ms)返回其他值或未返回值,則播放器的語音模式啟動失敗。若成功啟動語音模式,是分幀解碼后播放,在幀一幀循環中,主機需查詢鍵盤和串口,來實現“ 上一首”、“下一首”、“播放”、“暫停”、“退出”和調節音量的功能。若語音模式啟動失敗,則只需查詢鍵盤。每次接收到“退出”命令時,主機在退出模式前需通過串口發送0x05給單片機,通知單片機同步退出該模式;單片機接收到命令后,需返回0x04告知主機已退出。播放的主流程如圖4所示。關于語音命令如何訓練,可見參考文獻[5],這里不再贅述。

        播放的主流程

          4 實驗結果

          以開發套件+凌陽SPCE061A為硬件,采用嵌入式操作μClinux,在實驗室安靜和嘈雜的情況下(安靜時室內噪聲為50 dB,嘈雜時為60 dB),測試播放器語音模式的工作效率。在測試語音模式的工作效率前,先進行了按鍵測試,測試通過率為100%,且播放流暢,響應滿足實時性要求。

          要使語音模式有效工作,首先需訓練“播放器”的語音命令,即“播放”、“暫停”、“上一首”、“下一首”、“退出”這5個命令。訓練時環境至關重要,必須處于實驗室安靜環境下。訓練的5個命令并不一定是上述5個詞,只要表達出相應意思即可,如“上一首”、“下一首”命令直接訓練成“上”、“下”。筆者在實驗室安靜環境下訓練后,分別在安靜、嘈雜的環境下進行語音測試,結果分別為96.8%、77.8%。實驗結果顯示,在安靜環境下,語音通過率很高;在嘈雜環境下,語音通過率稍微低些,但可以和按鍵同時使用。

          結 語

          本文了一款由主機、從機凌陽SPCE061A單片機及其外圍電路組成的音樂播放器。硬件上重點介紹了音頻模塊;軟件上簡單說明了 MP3解碼過程及給出了相關接口函數,并詳細講述了播放主流程。最后在測試了按鍵能夠實時、正確響應的基礎上,又分別在安靜、嘈雜的環境下,進行了語音模式的響應測試,實驗結果說明,該播放器不僅能按鍵控制也能語音控制,且語音控制效果良好。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 舞阳县| 寿阳县| 庆安县| 双柏县| 马鞍山市| 集贤县| 巨鹿县| 茂名市| 关岭| 定南县| 延川县| 喀喇沁旗| 广饶县| 岳池县| 比如县| 南木林县| 乌拉特后旗| 丹江口市| 萍乡市| 赤峰市| 丰台区| 尼勒克县| 新余市| 沽源县| 攀枝花市| 垦利县| 长治市| 织金县| 石楼县| 钟山县| 肃宁县| 惠州市| 万全县| 南昌县| 广东省| 新平| 秦皇岛市| 永康市| 平顶山市| 广安市| 乡城县|