新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AVR單片機的語音識別系統設計

        基于AVR單片機的語音識別系統設計

        作者: 時間:2012-08-08 來源:網絡 收藏

        c.JPG


        麥克風工作電路如圖4所示,音頻輸出只需將揚聲器連接到SPOP和SPON即可。使用SPI總線方式時,的MD要設為高電平,SPIS設為低電平。SPI總線的引腳有SDI,SDO,SDCK以及SCS。INTB為中斷端口,當有識別結果或MP3數據不足時,會觸發中斷,通知MCU處理。RSTB引腳是復位端,低電平有效。LED1,LED2作為上電指示燈。

        d.JPG

        3 軟件系統設計
        軟件設計主要有兩部分,分別為移植官方代碼和編寫語音識別應用程序。
        3.1 移植LD3320源代碼
        LD3320源代碼是基于51單片機實現的,SPI部分采用的是軟件模擬方式,但在播放MP3數據時會有停頓現象,原因是51單片機主頻較低,導致SPI速率很慢,不能及時更新MP3數據。移植到ATMEGA128需要修改底層寄存器讀寫函數、中斷函數等。底層驅動在Reg_RW.c文件中,首先在Reg_RW.h使用HARD_PARA_PORT宏定義,以支持硬件SPI。然后在Reg_RW.c文件中找到HARD_PARA_PORT對應條件宏的代碼段,保留AVR的SPI接口代碼。
        3.2 應用程序實現
        在代碼中預先設定幾個單詞:“你好”,“播放音樂”,“打開”。當用戶說“播放音樂”時,MCU控制LD3320播放一段音樂,如果是其他詞語,則在串口中打印識別結果,然后再次轉換到語音識別狀態。
        3.2.1 MP3播放代碼
        LD3320支持MP3數據播放,播放聲音的操作順序為:
        通用初始化→MP3播放用初始化→調節播放音量→開始播放。
        將MP3數據順序放入數據寄存器,芯片播放完一定數量的數據時會發出中斷請求,在中斷函數中連續送入聲音數據,直到聲音數據結束。MP3播放函數實現代碼如下:

        e.JPG

        由于MCU容量限制,選取測試的MP3文件不能太大。首先在計算機上將MP3文件的二進制數據轉為標準C數組格式文件,然后將該文件加入工程中。源代碼中MP3文件存儲在外擴的SPI FLASH中,工程中需要注釋和移除全部相關代碼。MP3數據讀取函數是LD_ReloadMp3Data(),只需將讀取的SPI FLASH數據部分改成以數組數據讀取的方式即可。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 万源市| 永城市| 始兴县| 滨海县| 桃源县| 留坝县| 盈江县| 新乐市| 水富县| 富源县| 乳山市| 台州市| 闵行区| 比如县| 姜堰市| 蒲江县| 双鸭山市| 乌拉特中旗| 阳春市| 东丽区| 十堰市| 日土县| 靖宇县| 云霄县| 北流市| 永昌县| 阜城县| 象山县| 旌德县| 荥经县| 江油市| 雷山县| 马龙县| 昆明市| 兴文县| 海丰县| 东宁县| 五台县| 皋兰县| 浦北县| 凌海市|