王亞磊 季曄 李彬 馮崇 丁文豪
摘? 要:為改善人們的生活體驗,提高人們生活的自動化、智能化水平,設(shè)計一款基于語音識別的智能分類垃圾桶,實現(xiàn)垃圾桶實時聯(lián)網(wǎng)、智能分類等功能。該垃圾桶采用Kaldi工具對輸入音頻進行處理,實現(xiàn)語音識別,識別結(jié)果通過串口通信經(jīng)上位機傳輸給單片機,單片機控制舵機轉(zhuǎn)動,實現(xiàn)對垃圾的分類。同時,垃圾桶的內(nèi)置傳感器可以實時獲取垃圾桶內(nèi)溫度等狀態(tài)信息,并通過ESP266模塊上傳云端,能夠讓用戶在APP終端實時了解垃圾桶內(nèi)的情況。該設(shè)計成本低廉,分類準(zhǔn)確率高,可用于智能家居等多種場景,有著廣闊的應(yīng)用前景。
關(guān)鍵詞:語音識別;智能垃圾桶;Kaldi;垃圾分類;智能化;人工智能
中圖分類號:TN912.34? 文獻標(biāo)識碼:A? 文章編號:2096-4706(2023)17-0156-04
Design and Implementation of Intelligent Classification Garbage Bin Based on Speech Recognition
WANG Yalei1, JI Ye1, LI Bin1, 2, FENG Chong1, DING Wenhao3
(1.School of Intelligent Manufacturing, Luoyang Institute of Science and Technology, Luoyang? 471023, China; 2.Henan International Joint Laboratory of Cutting Tools and Precision Machining, Luoyang Institute of Science and Technology, Luoyang? 471023, China; 3.School of Mechatronics Engineering, Henan University of Science and Technology, Luoyang? 471003, China)
Abstract: To improve people's living experience and enhance their level of automation and intelligence, a speech recognition-based intelligent classification garbage bin is designed to achieve real-time networking and intelligent classification of garbage bins. The garbage bin uses Kaldi tool to process input audio and achieve speech recognition. The recognition results are transmitted to the Single-Chip Microcomputer through serial communication through the upper computer, and the Single-Chip Microcomputer controls the rotation of the servo to achieve garbage classification. At the same time, the built-in sensor of the garbage bin can obtain real-time temperature and other status information inside the garbage bin, and upload them to the cloud through the ESP266 module, allowing users to understand the situation inside the garbage bin in real time on the APP terminal. This design has low cost, high classification accuracy, and can be used in various scenarios such as smart homes, which has broad application prospects.
Keywords: speech recognition; intelligent garbage bin; Kaldi; garbage classification; intelligence; artificial intelligence
0? 引? 言
隨著經(jīng)濟的發(fā)展,人們物質(zhì)生活日益豐富,同時也產(chǎn)生了大量的垃圾。過去垃圾的處理方式通常是焚燒、掩埋,對空氣和土壤造成了嚴(yán)重的污染。在此情況下,2017年國務(wù)院辦公廳下發(fā)《生活垃圾分類制度實施方案》,此舉加速了垃圾分類的推進與實施。垃圾經(jīng)過分類,再進行處理減少了對環(huán)境的污染,提高了垃圾的回收利用率。本文根據(jù)垃圾分類過程中的痛點,介紹了一種基于語音識別的智能分類垃圾桶,將垃圾分為可回收垃圾、廚余垃圾、有害廢物和其他廢棄物4種類型。
本文通過語音識別技術(shù),實現(xiàn)無接觸垃圾投放并進行分類,提高垃圾的回收率。語音識別運用Kaldi工具對輸入語音進行信息處理,實現(xiàn)語音識別并分類,經(jīng)上位機通過Python程序中的串口通信功能將識別結(jié)果傳輸給單片機,單片機控制對應(yīng)垃圾種類的舵機轉(zhuǎn)動并用語音播報模塊播報垃圾種類。溫度傳感部分采用DS18B20溫度傳感器識別垃圾桶內(nèi)溫度并由數(shù)碼管外部顯示,利用ESP8266模塊將溫度信息上傳至物聯(lián)網(wǎng)平臺,使用戶在手機端可遠程查看垃圾桶的環(huán)境溫度,避免發(fā)生安全問題。
1? 智能分類垃圾桶的結(jié)構(gòu)與原理
1.1? 智能分類垃圾桶的結(jié)構(gòu)
智能分類垃圾桶由底座、4個扇形垃圾桶、垃圾投放機構(gòu)等部分組成,其構(gòu)成及外形如圖1所示,
1.2? 智能分類垃圾桶的原理
如圖2所示,智能分類垃圾桶的工作原理為:將垃圾放在入口的轉(zhuǎn)盤上,通過輸入垃圾類型的自然語言指令,麥克風(fēng)將收集到的音頻信息,傳送給裝有Kaldi的上位機,Kaldi將識別結(jié)果傳送給STC89C51主控芯片,主控芯片控制舵機執(zhí)行指令,旋轉(zhuǎn)一定角度,實現(xiàn)垃圾投放,同時語音播報模塊輸出所投放的垃圾類型。智能垃圾桶內(nèi)置DS18B20溫度傳感器,一方面通過STC89C51主控芯片,將垃圾桶內(nèi)溫度傳輸?shù)綔囟蕊@示模塊;另一方面,通過ESP8266模塊,將垃圾桶內(nèi)溫度上傳到Wi-Fi模塊,用戶可以在無線終端實時觀察內(nèi)部溫度,此功能可實現(xiàn)高溫報警,防止內(nèi)部著火。
2? Kaldi語音識別原理與模型的搭建
語音識別目前應(yīng)用于手機、計算機、平板電腦和其他類型機器,使機器能夠接受、處理、識別和理解人類話語,它使用自然語言作為輸入來觸發(fā)動作,使我們的設(shè)備能夠響應(yīng)我們的口頭命令。Kaldi是一種先進的自動語音識別(ASR)工具包,包含目前在ASR系統(tǒng)中使用的幾乎所有算法,以及詳細的文件和腳本用于構(gòu)建完整的識別系統(tǒng)。本文Kaldi的使用在Linux系統(tǒng)下安裝和運行。
Kaldi對收集的音頻信息進行采樣頻率轉(zhuǎn)換、去噪等預(yù)處理,然后將音頻信息轉(zhuǎn)換成特征向量,進行語音模型訓(xùn)練,獲得聲學(xué)模型。工作過程中,通過對實時獲取的音頻信息進行解碼,得到最終的識別結(jié)果。解碼中,先使用聲學(xué)模型統(tǒng)計各個音素的概率,然后用語言模型對音素評分,獲得最終識別結(jié)果。
在語音識別中,Kaldi可以對語音作信號處理,借助聲學(xué)模型和語言學(xué)模型,解碼獲得語言文本。圖3是語音識別的過程。本文使用Kaldi工具,根據(jù)實際需求搭建自己的聲學(xué)模型和語言模型,幫助完成語音識別。Kaldi的數(shù)據(jù)準(zhǔn)備需要4個文本內(nèi)容——wav、spk2utt、utt2spk和text。其中,wav文本包含了音頻編號和音頻的絕對路徑,spk2utt包含了音頻編號和對應(yīng)的發(fā)音著編號,utt2spk包含了說話人編號和此人所有的音頻編號,text則是每個音頻中的發(fā)音文本,如表1所示。
發(fā)音詞典(Lexicon)表示了每個字、詞與音素之間的對應(yīng)關(guān)系,用來把聲學(xué)模型和語言模型連接起來,用于解碼工作。Lexicon文件中包含了音頻文本中所有詞匯與音素之間的對應(yīng),一般還需要對音頻文本進行分詞操作,由于本次錄制音頻內(nèi)容都為詞匯,則可以直接進行音素對應(yīng)。為了獲取每個詞的發(fā)音,可以下載中文語音的發(fā)音詞典集,本次采用了清華大學(xué)實驗室的中文語音數(shù)據(jù)集中的詞典。將所有的詞匯與音素對應(yīng)后,存儲在Lexicon中,其中SIL表示靜音音素。如圖4所示。
根據(jù)發(fā)音詞典和靜音因素的結(jié)合,可以由Kaldi工具中的prepare_lang.sh生成L.fst,構(gòu)成有限狀態(tài)轉(zhuǎn)換器。有限狀態(tài)轉(zhuǎn)換器每個狀態(tài)節(jié)點通過弧線相連,每條弧上包含了輸入和輸出內(nèi)容,還有相應(yīng)的權(quán)重。L.fst中包含了每個詞匯從初始狀態(tài)到末端狀態(tài)的路徑,路徑上包括輸入的音素以及輸出的詞。Kaldi工具中具備的繪圖功能,可以將fst可視化輸出。
對text分詞處理,可以獲得語料,由于本次設(shè)計中詞匯并不需要做分詞處理,可以將text直接當(dāng)作語料處理。在對語料中詞匯做統(tǒng)計處理后,運用Kaldi中的ngram-count命令,可以獲得語料的統(tǒng)計文件以及一元的語言模型。利用生成的語言模型,使用Kaldi工具的format_lm_sri.sh命令,即可獲得G.fst。如圖5所示。
mfcc特征中保留了音頻中語義部分的內(nèi)容,過濾掉背景音等無效音素,對音頻運用make_mfcc.sh和compute-cmvn-stats.sh命令提取聲學(xué)特征和計算倒譜均值方差歸一化系數(shù)后,就能利用train_mono.sh命令結(jié)合L.fst和G.fst訓(xùn)練單因子聲學(xué)模型??紤]到音素的發(fā)音通常受相鄰音素的影響,還需要進一步訓(xùn)練三音子模型。將訓(xùn)練出的三音子模型導(dǎo)入Kaldi的online_demo項目下,即可利用麥克風(fēng)或者音頻文件進行語音識別,輸出文本。
3? 硬件選型
當(dāng)前單片機芯片的種類有很多,根據(jù)實用性和可操作性,最終選擇了宏晶公司生產(chǎn)的STC89C52RC芯片。輸入音頻,經(jīng)上位機語音識別后,會輸出垃圾種類。編寫的Python程序可以讀取垃圾種類,并將其利用Python中的串口通信功能發(fā)送給單片機,用來控制舵機和語音播報模塊的運行。
舵機是常見的執(zhí)行部件,可以用在需要較為精確地控制角度變化的控制系統(tǒng),通常用于遙控玩具中,也可以用在小型機器人項目中。本裝置選用簡單可控的SG90舵機,其價格便宜,應(yīng)用較廣,可以用來模擬垃圾桶蓋的開關(guān)。
在垃圾類別被識別出后,除了舵機模擬對應(yīng)類別垃圾桶蓋的開關(guān),還需要語音播報模塊用來外放垃圾種類,幫助居民掌握垃圾分類知識。DY-SV17F是一種語音播報模塊,具有多種工作模式,板載32 MB大小的存儲空間,可以直接通過USB接口傳輸音頻文件來自定義語音播放的內(nèi)容。
垃圾分類過程中,安全問題不容忽視。針對安全隱患,本文添加了溫度檢測部分。包含溫度檢測模塊和Wi-Fi通信模塊。目前用于溫度檢測的傳感器種類有很多,如SHTC3、MCP9808T-E/MC、AD592、DS18B20等,本文選用了DS18B20,DS18B20具有體積小、接線方便、傳輸速率高等優(yōu)點。該傳感器正常運作下電壓范圍為3.0~5.5 V,零待機功耗,能夠以0.5 ℃的精準(zhǔn)度測量-10~+85 ℃的溫度,支持自定義多精度的溫度分辨率,在溫度檢測和控制系統(tǒng)中應(yīng)用廣泛。
程序中,初始化函數(shù)可以根據(jù)信號線的電平變化來判斷傳感器是否存在,寫字節(jié)函數(shù)可以按位從低到高將數(shù)據(jù)發(fā)送出,讀字節(jié)函數(shù)則按位讀取從傳感器傳輸過來的數(shù)據(jù)。DS18B20的各個功能是按照指令表,由單片機寫入的命令來運行。
4? 系統(tǒng)軟件設(shè)計
舵機采用定時器作為定時時鐘發(fā)出脈沖信號,根據(jù)定時器溢出公式計算出初值。選用定時器0輸出脈沖信號,程序包括定時器初始化和定時器中斷。初始化中包括設(shè)置定時器工作方式和設(shè)置初值等,初始化完成后,每達到重裝載值就會進入定時器中斷函數(shù),定時器中斷中將重置初值并計數(shù),根據(jù)舵機的PWM周期按轉(zhuǎn)動角度的占空比依次輸出高低電平。
語音播報模塊用于播報垃圾種類,采用IO觸發(fā)模式,低電平觸發(fā),4個IO口分別控制播報4個垃圾類別。垃圾類別由上位機傳輸?shù)絾纹瑱C后,隨即拉低對應(yīng)IO口引腳。
上位機完成語音識別后,Python程序會讀取識別的垃圾種類結(jié)果,利用serial庫的串口通信功能將結(jié)果發(fā)送給單片機。
單片機的串口通信在初始化后,每當(dāng)上位機傳輸數(shù)據(jù)時,單片機會進入串口中斷,在中斷中將數(shù)據(jù)存儲在全局變量中,根據(jù)變量數(shù)值來判斷垃圾的種類。
DS18B20溫度傳感器的控制需要嚴(yán)格按照時序圖進行,在溫度數(shù)據(jù)檢測的過程中,需要編寫傳感器的初始化、寫入字節(jié)和讀取字節(jié)的功能函數(shù)。傳感器初始化完成后,即可按照指令集向傳感器寫入轉(zhuǎn)換溫度并讀取溫度的命令,轉(zhuǎn)換完成后,讀取字節(jié)函數(shù)就能將轉(zhuǎn)換后的溫度數(shù)據(jù)存儲在變量中。
為了避免局域網(wǎng)或者藍牙傳輸數(shù)據(jù)的距離限制,本文將溫度數(shù)據(jù)經(jīng)ESP8266傳輸?shù)轿锫?lián)網(wǎng)平臺,物聯(lián)網(wǎng)平臺提供了遠程可靠的數(shù)據(jù)通信功能,集成了設(shè)備管理、數(shù)據(jù)安全通信和消息訂閱等能力,向下支持大量設(shè)備,允許設(shè)備數(shù)據(jù)發(fā)送到云端。阿里云生活物聯(lián)網(wǎng)平臺是阿里云搭建的一個公有云平臺,提供了開發(fā)、調(diào)試、運維及管理等功能,可快速實現(xiàn)消費裝置的智能化,支持開發(fā)設(shè)備在國內(nèi)及海外激活。在該平臺開發(fā)設(shè)備,平臺提供了蜂窩、Wi-Fi、以太網(wǎng)等多種設(shè)備接入方案,設(shè)備下也提供了多種自定義功能。設(shè)備注冊成功后,平臺會提供用戶名及密碼,保障了用戶隱私安全,同時支持多個設(shè)備接入。在人機交互方面,平臺支持免開發(fā)的云智能APP功能及自由化的界面設(shè)計,界面中可綁定功能屬性來顯示屬性內(nèi)容,快速簡便地實現(xiàn)設(shè)備界面的可視化。設(shè)備調(diào)試功能中,用戶可調(diào)試設(shè)備下的各個功能,根據(jù)設(shè)備發(fā)送的內(nèi)容對設(shè)備進行調(diào)整,排除故障。
ESP8266模塊與單片機以串口通信方式傳輸數(shù)據(jù),利用AT指令控制Wi-Fi模塊運行。開始透傳后,ESP8266模塊會將從單片機發(fā)來的數(shù)據(jù)由TCP端口發(fā)送到阿里云服務(wù)器,實現(xiàn)單片機向云服務(wù)器的數(shù)據(jù)傳輸。
溫度檢測部分硬件如圖示。單片機上電后數(shù)碼管顯示正常,溫度數(shù)據(jù)經(jīng)ESP8266模塊傳輸?shù)桨⒗镌品?wù)器,在云智能APP中同步顯示,如圖6所示。
5? 結(jié)? 論
本文將語音識別與垃圾分類結(jié)合,通過訓(xùn)練的語音模型完成語音識別,整個系統(tǒng)以單片機為主控制器,將語音識別后的信息以串口通信的方式從上位機傳輸給單片機。外設(shè)則搭配了舵機、語音播報模塊、溫度檢測模塊、顯示模塊和Wi-Fi通信模塊。在獲得語音識別結(jié)果后,舵機模擬對應(yīng)種類垃圾桶的開合,語音播報模塊播放垃圾種類。系統(tǒng)控制溫度檢測模塊實時采集垃圾桶的環(huán)境溫度,并通過兩位數(shù)碼管顯示。溫度信息還通過Wi-Fi通信模塊傳輸?shù)桨⒗镌破脚_,通過云智能APP顯示,使得可以遠程觀測溫度,避免發(fā)生安全事故。通過實際結(jié)果測試,設(shè)定的垃圾種類詞匯語音識別率達72%左右,溫度檢測值可以在數(shù)碼管準(zhǔn)確顯示,阿里云平臺調(diào)試結(jié)果正常,能夠在APP界面觀測到溫度值,實現(xiàn)了溫度信息的遠程查看。
參考文獻:
[1] 廖盛澨,曾俊,徐崇.基于Kaldi的智能語音識別在物聯(lián)網(wǎng)中的應(yīng)用研究 [J].電聲技術(shù),2022,46(1):10-13.
[2] 王凱.基于Kaldi的語音識別研究 [D].南京:南京郵電大學(xué),2021.
[3] 李春雨.基于Kaldi的語音識別系統(tǒng)構(gòu)建與調(diào)優(yōu) [D].長沙:湖南大學(xué),2021.
[4] 彭燕子,柏杰,曹炳堯,等.基于Kaldi的AI語音識別在嵌入式系統(tǒng)中的應(yīng)用研究 [J].工業(yè)控制計算機,2020,33(9):64-67.
[5] 張德良.深度神經(jīng)網(wǎng)絡(luò)在中文語音識別系統(tǒng)中的實現(xiàn) [D].北京:北京交通大學(xué),2015.
[6] 李娜,葛萬成.語音關(guān)鍵詞識別系統(tǒng)的模型訓(xùn)練及性能評價 [J].信息通信,2020(3):8-10.
[7] 陳康寧.基于深度學(xué)習(xí)的語音關(guān)鍵詞檢測技術(shù)研究 [D].廣州:華南農(nóng)業(yè)大學(xué),2019.
[8] 溫登峰. 基于循環(huán)神經(jīng)網(wǎng)絡(luò)的語音識別聲學(xué)建模研究 [D].重慶:重慶郵電大學(xué),2019.
[9] 楊勝捷,朱灝耘,馮天祥,等.基于Kaldi的語音識別算法 [J].電腦知識與技術(shù),2019,15(2):163-166.
[10] 王成.基于深度學(xué)習(xí)的語音識別方法研究 [D].西安:西安工程大學(xué),2018.
[11] 袁翔.基于HMM和DNN的語音識別算法研究與實現(xiàn) [D].江西:江西理工大學(xué),2017.
作者簡介:王亞磊(1991—),男,漢族,河南平頂山人,助教,碩士,主要研究方向:機器人工程;季曄(1982—),男,漢族,江蘇大豐人,副教授,博士,主要研究方向:機器人機構(gòu)學(xué);李彬(1982—),男,漢族,山東濟南人,教授,博士,主要研究方向:先進制造技術(shù)研究;馮崇(1989—),男,漢族,河南駐馬店人,講師,碩士,主要研究方向:機器人系統(tǒng)集成;丁文豪(1999—),男,漢族,江西豐城人,碩士在讀,主要研究方向:機械工程領(lǐng)域。