金國華 賈澤宇 熊浩淼 楊光裕 趙宇凱
(大連海事大學國家級電工電子教學示范中心 遼寧·大連 116026)
(1)離線語音識別:當語音信號強度達到閾值,認為是接收到語音信號,并開始進行智能語音識別(ASR),當檢測到喚醒詞“垃圾桶”,系統(tǒng)被喚醒,等待用戶說出垃圾名稱。當再次接收到大于閾值的語音信號,再次進行ASR,判斷出用戶說的垃圾名稱。
(2)垃圾分類處理和桶蓋自動打開:檢測到用戶說出的垃圾名稱后,通過關鍵詞進行垃圾分類。分出垃圾所屬類型后,STMSTM32控制舵機打開對應桶蓋控制舵機打開對應桶蓋。6s后自動關閉桶蓋后自動關閉桶蓋。
(3)語音播報:當stm32端檢測到用戶說出喚醒詞,發(fā)送指令給語音播報模塊,外放喇叭便會播報“我在”的音頻,若判斷到相應的垃圾種類,便會播報音頻。
(4)OLED屏幕顯示:OLED屏幕顯示出作品名、作者等信息,當檢測到喚醒詞時會顯示“我在”,當分類完成后,顯示垃圾所屬類型。
本設計利用STM32單片機作為系統(tǒng)控制核心,采用非特定語音識別芯片LD3320,利用非特定語音識別算法(SI-ASR)實現(xiàn)垃圾桶的智能化聲音識別和語音控制,完成語音控制垃圾桶各方向運動、非接觸式智能開閉等功能。通過JQ8400集成語音播報芯片配合OLED屏幕,設計UI界面,實現(xiàn)人機交互功能。系統(tǒng)結構框圖如圖1所示:
圖1:系統(tǒng)結構框圖
系統(tǒng)采用的模塊有:STM32F103RCT6核心板、LD3320語音識別模塊、JQ8400語音播報模塊、OLED屏幕、舵機等。系統(tǒng)原理圖如圖2如圖2。
圖2:系統(tǒng)原理圖
STM32F103RCT6是一種嵌入式-微控制器的集成電路,采用Cortex-M3內(nèi)核。Cortex-M3是一個32位處理器內(nèi)核。內(nèi)部的數(shù)據(jù)路徑是32位的,寄存器是32位的,存儲器接口也是32位的。CM3采用了哈佛結構,擁有獨立的指令總線和數(shù)據(jù)總線,可以讓取指與數(shù)據(jù)訪問并行不悖。這樣一來數(shù)據(jù)訪問不再占用指令總線,指令總線和數(shù)據(jù)總線共享同一個存儲器空間。硬件資源包括:48KB SRAM、256KB FLASH、2個基本定時器、4個通用定時器、2個高級定時器、2個DMA控制器(共12個通道)、3個SPI、2個IIC、5個串口、1個USB、1個CAN、3個12位ADC、1個12位DAC、1個SDIO接口及51個通用IO口。
LD3320是一顆基于非特定人語音識別技術的語音識/聲控芯片。提供了真正的單芯片語音識解決方案。LD3320芯片上集成了高精度的芯片上集成了高精度的A/D和D/A接口,不再需要外輔助的 Flash和RAM,即可以實現(xiàn)語音識,即可以實現(xiàn)語音識/聲控/人機對話功能。并且,識別的關鍵詞語列表是可以動態(tài)編輯的。
該模塊是由LD3320芯片和STC11L08X單片機組成,可獨立進行編程。模塊可實現(xiàn)所有普通話的識別。LD3320芯片集成了語音信號采集、識別算法。使用時只需STC單片機與其進行SPI通信,即可實現(xiàn)語音識別功能,無需配套其他單片機即可完成工作。在本系統(tǒng)中,STC單片機通過串口與STM32芯片進行通信,只需將識別結果輸出到STM32單片機即可,同時也可在STM32端讀取語音識別芯片當前狀態(tài)。
JQ8400語音模塊選用的是SOC方案,集成了一個16位的MCU,以及一個專門針對音頻解碼的ADSP,采用硬解碼的方式更加保證了系統(tǒng)穩(wěn)定性和音質(zhì)。小巧尺寸更加滿足嵌入其它產(chǎn)品的需求這個模塊價格低廉、上手容易支持串口控制,使用前只需將錄好的音頻文件正確命名,通過microUSB線拷貝到模塊內(nèi)存中即可。
選用0.96寸OLED屏幕,該模塊具有以下特點:三色可選,模塊有兩種單色和黃藍雙色兩種顏色可選,單色為純白色和存藍色,雙色為黃藍雙色;超小尺寸,顯示為0.96寸;高分辨率,為128*64;接口模式,接口模式,4線串行SPI接口模式;帶字庫,可顯示標準的國簡體(GB2312)漢字、8*16點ASCII粗體字庫、7*8點ASCII字庫、5*7點ASCII字庫。系統(tǒng)中采用藍色單色顯示,通過字庫顯示16*16的GB231格式漢字。
主程序流程圖如圖3所示:
圖3:主程序流程圖
語音識別(ASR)技術,是基于關鍵詞語列表識的。只需要設定好別的關鍵詞語列表,并把這些以字符形式傳送到LD3320內(nèi)部,就可以對用戶說出的關鍵詞語進行識別,不需要做任何的錄音訓練。每次識別的過程,就是把用戶說出語音內(nèi)容通頻譜轉換為語音特征,和這個關鍵詞語列表中的條目進行逐一匹配,最優(yōu)作為識別結果。語音識別程序流程圖如圖4所示。
圖4:語音識別程序流程圖
在硬件連接上選擇采用面包板作為線主體,核心板和各模塊通過面包進行電氣連接;系統(tǒng)電源由腦USB口輸出,各個模塊的供電壓都為5V,可直接由USB口提供;添加OLED屏幕驅動程序并修改,進行UI界面設計;移植LD 3320語音識別模塊驅動程序,按照需求進行設置,并進行串口通信測試;移植JQ 8400語音播報模塊驅動程序,生成播報內(nèi)容及相關設置;舵機控制模塊調(diào)試。系統(tǒng)實物圖如圖5所示:
圖5:實物圖
測試過程:打開電源;等待一段時間,保證硬件初始化完成;說出指令“垃圾桶”;等待系統(tǒng)回應“我在”,同時OLED屏幕顯示;若無回應則重新說指令,多次無反應可能為語音識別芯片卡死,需重啟系統(tǒng);說出垃圾名稱,此時系統(tǒng)播報垃圾所屬類型,打開對應垃圾桶,6s后關閉。
本實驗項目要求學生綜合運用所學知識完成智能分類垃圾桶的系統(tǒng)設計和制作,體現(xiàn)了一個完整的系統(tǒng)設計過程,需要經(jīng)歷學習研究、方案論證、系統(tǒng)軟硬件設計、仿真調(diào)試、實物制作與測試、設計總結等過程。使學生能深入了解模擬電子線路、數(shù)字電路與系統(tǒng)、EDA技術、傳感器原理與應用、單片機原理及其相關接口的綜合應用技術,掌握單片機應用系統(tǒng)設計的基本方法和步驟。通過本次設計,學生全程參與單片機應用系統(tǒng)的整個設計開發(fā)過程,進一步掌握了STM32單片機的應用,對SPI、串口通信的工作方式和配置有了進一步的理解和掌握,學生的自學能力、分析問題和解決問題的能力、軟硬件設計能力、實踐創(chuàng)新能力、系統(tǒng)工程設計、團隊合作意識等方面得到了很好的鍛煉和提升。