新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ATMEGAl28單片機的語音識別系統(tǒng)設計

        基于ATMEGAl28單片機的語音識別系統(tǒng)設計

        作者: 時間:2013-02-26 來源:網(wǎng)絡 收藏

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

        3 軟件

        軟件主要有兩部分,分別為移植LD3320官方代碼和編寫應用程序。

        3.1 移植LD3320源代碼

        LD3320源代碼是51實現(xiàn)的,SPI部分采用的是軟件模擬方式,但在播放MP3數(shù)據(jù)時會有停頓現(xiàn)象,原因是51主頻較低,導致SPI速率很慢,不能及時更新MP3數(shù)據(jù)。移植到ATMEGA128需要修改底層寄存器讀寫函數(shù)、中斷函數(shù)等。底層驅(qū)動在Reg_RW.c文件中,首先在Reg_RW.h使用HARD_PARA_PORT宏定義,以支持硬件SPI。然后在Reg_RW.c文件中找到HARD_PARA_PORT對應條件宏的代碼段,保留AVR的SPI接口代碼。

        3.2 應用程序?qū)崿F(xiàn)

        在代碼中預先設定幾個單詞:“你好”,“播放音樂”,“打開”。當用戶說“播放音樂”時,MCU控制LD3320播放一段音樂,如果是其他詞語,則在串口中打印結(jié)果,然后再次轉(zhuǎn)換到識別狀態(tài)。

        3.2.1 MP3播放代碼

        LD3320支持MP3數(shù)據(jù)播放,播放聲音的操作順序為:

        通用初始化→MP3播放用初始化→調(diào)節(jié)播放音量→開始播放。

        將MP3數(shù)據(jù)順序放入數(shù)據(jù)寄存器,芯片播放完一定數(shù)量的數(shù)據(jù)時會發(fā)出中斷請求,在中斷函數(shù)中連續(xù)送入聲音數(shù)據(jù),直到聲音數(shù)據(jù)結(jié)束。MP3播放函數(shù)實現(xiàn)代碼如下:

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

        3.2.2 識別程序

        LD3320語音識別芯片完成的操作順序為:通用初始化→ASR初始化→添加關(guān)鍵詞→開啟語音識別。在源代碼中的RunASR()函數(shù)已經(jīng)實現(xiàn)了上面的過程,直接調(diào)用即可開啟語音識別功能。

        RunASR()函數(shù)代碼如下:



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 喀什市| 武陟县| 安岳县| 扬州市| 谷城县| 黄梅县| 富锦市| 平顶山市| 明溪县| 合水县| 乌拉特后旗| 甘肃省| 宁蒗| 宽城| 育儿| 潜山县| 淄博市| 醴陵市| 长汀县| 东宁县| 孝义市| 拉萨市| 建昌县| 西贡区| 金堂县| 望城县| 汾阳市| 三穗县| 南城县| 和平县| 巍山| 卫辉市| 天津市| 东莞市| 南木林县| 金溪县| 蓝山县| 攀枝花市| 大安市| 泰和县| 双峰县|