本發(fā)明涉及深度學(xué)習(xí)及工業(yè)機(jī)器人語音控制的技術(shù)領(lǐng)域,尤其是指一種基于深度學(xué)習(xí)的智能工業(yè)機(jī)器人語音交互與控制方法。
背景技術(shù):
一直以來,語音作為人類特有的能力,是人與其他動物最本質(zhì)的區(qū)別,也是人類之間交流以及獲取外界信息資源的最重要的工具和渠道。21世紀(jì)是信息技術(shù)蓬勃發(fā)展的時(shí)代,語音識別技術(shù)作為這個(gè)洪流中人機(jī)交互分支的一個(gè)重要組成,是人機(jī)交互的重要接口,使得人類和機(jī)器的交互更加自動化、智能化,實(shí)現(xiàn)了讓機(jī)器聽得懂人類語言的主要途徑,推動了人工智能的發(fā)展。因此,將語音識別技術(shù)和機(jī)器人控制技術(shù)相結(jié)合,更體現(xiàn)了技術(shù)自動化和智能化。在我國,機(jī)器人被應(yīng)用到很多領(lǐng)域,而且隨著語音識別技術(shù)在機(jī)器人控制中的應(yīng)用,機(jī)器人的應(yīng)用領(lǐng)域在不斷擴(kuò)大。例如,將語音識別技術(shù)與工業(yè)機(jī)器人相結(jié)合,改變了傳統(tǒng)的生產(chǎn)方式,減輕工人勞動強(qiáng)度,提高勞動生產(chǎn)率,促進(jìn)了工業(yè)技術(shù)向智能化方向發(fā)展。
目前,國內(nèi)外關(guān)于基于語音識別的機(jī)器人控制技術(shù)的研究已經(jīng)很多了。例如,國內(nèi)有白琳在基于語音識別的機(jī)器人控制技術(shù)的研究中對語音特征參數(shù)提取方法進(jìn)行了改進(jìn),將傳統(tǒng)的MFCC特征參數(shù)與共振峰參數(shù)相結(jié)合,提出了新的語音特征參數(shù)提取方法;國外,有美國、日本、德國等對智能服務(wù)機(jī)器人控制技術(shù)進(jìn)行研究。
近年來,隨著深度學(xué)習(xí)熱潮的再次涌起,基于深度神經(jīng)網(wǎng)絡(luò)的語音識別系統(tǒng)的研究隨之火熱,目前最好的語音識別系統(tǒng)采用雙向長短時(shí)記憶網(wǎng)絡(luò)(LSTM,Long Short Term Memory),但是這以系統(tǒng)訓(xùn)練復(fù)雜度高、解碼時(shí)間長,在工業(yè)的實(shí)時(shí)識別系統(tǒng)中難以廣泛應(yīng)用,尤其是在工廠巨大噪音的環(huán)境下更加難以識別。因此需要一種基于深度學(xué)習(xí)的智能工業(yè)機(jī)器人語音交互與控制方法,使得機(jī)器人能在嘈雜的作業(yè)環(huán)境中準(zhǔn)確識別人類語音命令。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提出了一種基于深度學(xué)習(xí)的智能工業(yè)機(jī)器人語音交互與控制方法,該方法考慮了工廠中嘈雜的作業(yè)環(huán)境問題,減少了語音系統(tǒng)訓(xùn)練的復(fù)雜度和時(shí)間,實(shí)現(xiàn)了更好的語音交互與機(jī)器人控制。
為實(shí)現(xiàn)上述目的,本發(fā)明所提供的技術(shù)方案為:一種基于深度學(xué)習(xí)的智能工業(yè)機(jī)器人語音交互與控制方法,包括以下步驟:
1)將語音轉(zhuǎn)化為語譜圖,通過短時(shí)傅里葉變換FFT方法將原始語音轉(zhuǎn)化為一張能夠作為輸入的圖像,具體是:利用短時(shí)傅里葉變換FFT方法對原始語音信號的每一幀進(jìn)行處理,通過時(shí)間抽取算法和頻率抽取算法得到由時(shí)域和頻域兩個(gè)維度組成的語譜圖,其中,在頻率抽取過程中,對不需要的頻率進(jìn)行壓縮處理,從而降低噪音影響;
2)對整句語音建模,將由步驟1)得到的語譜圖作為特征圖輸入到一個(gè)由多個(gè)卷積層組成的神經(jīng)網(wǎng)絡(luò)中,這里的卷積層與全連接層不同,它是非全連接層,非全連接是指后一層的輸出與前一層的部分輸入相關(guān),而全連接則是認(rèn)為后一層的輸出與前一層的全部輸入都相關(guān),其中,每個(gè)卷積層都包括卷積、非線性變換和下采樣三個(gè)階段,具體如下:
2.1)卷積階段:假設(shè)n1是輸入語音信號的幀數(shù),n2和n3分別對應(yīng)每一幀特征圖的時(shí)域維度和頻域維度,即有n1個(gè)n2×n3大小的二維特征圖組成的三維數(shù)組,將每個(gè)輸入特征圖記為xi,卷積后的結(jié)果y也是一個(gè)三維數(shù)組,每個(gè)輸出特征圖記為yj,鏈接xi和yj的權(quán)重記為wij,則
其中,*表示二維離散卷積運(yùn)算符,bj是偏置項(xiàng);
2.2)非線性階段:將卷積階段輸出的特征y作為輸入,進(jìn)行非線性變換R=h(y),采用收斂速度較快的不飽和非線性函數(shù)ReLU,具體函數(shù)公式為:
R=max(0,y)
2.3)下采樣階段:采用最大池化的操作,依據(jù)定義的鄰域窗口大小計(jì)算特定范圍內(nèi)的數(shù)據(jù)最值PM;
將上述的卷積層進(jìn)行三次堆疊,前一層的輸出作為后一層的輸入,組成卷積神經(jīng)網(wǎng)絡(luò),其中,最后一個(gè)卷積層的下采樣階段輸出的特征圖與一個(gè)全連接層相連接,得到輸出序列O;
3)將卷積神經(jīng)網(wǎng)絡(luò)的輸出序列O與標(biāo)簽T進(jìn)行比較,這里的標(biāo)簽T指的是預(yù)定義在網(wǎng)絡(luò)中的命令,用于與網(wǎng)絡(luò)識別的命令做比較,比較結(jié)果所得的誤差E大于預(yù)設(shè)閾值時(shí),用反向傳播BP算法對網(wǎng)絡(luò)權(quán)值進(jìn)行調(diào)整,直至E小于預(yù)設(shè)閾值時(shí)就認(rèn)為收斂,訓(xùn)練結(jié)束,輸出文本信息結(jié)果;
4)將步驟3)輸出的文本信息結(jié)果作為控制命令,機(jī)器人接收到特定的命令后,做出相應(yīng)的動作。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn)與有益效果:
1、本發(fā)明將語音識別技術(shù)與工業(yè)機(jī)器人相結(jié)合,改變了傳統(tǒng)的生產(chǎn)方式,促進(jìn)了工業(yè)技術(shù)向智能化方向發(fā)展。
2、減輕了工人勞動強(qiáng)度,提高勞動生產(chǎn)率。
3、可以遠(yuǎn)程控制機(jī)器人在危險(xiǎn)環(huán)境下作業(yè),也可以近距離控制機(jī)器人。
4、可以使機(jī)器人在工廠嘈雜的環(huán)境下對人類語音進(jìn)行準(zhǔn)確地識別,并根據(jù)相應(yīng)的識別命令進(jìn)行作業(yè)。
附圖說明
圖1為本發(fā)明方法的邏輯流程示意圖。
圖2為卷積層的三個(gè)階段。
圖3為非線性函數(shù)ReLU形態(tài)圖。
圖4為本發(fā)明使用的卷積神經(jīng)網(wǎng)絡(luò)框架圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對本發(fā)明作進(jìn)一步說明。
如圖1所示,本實(shí)施例所述的基于深度學(xué)習(xí)的智能工業(yè)機(jī)器人語音交互與控制方法,包括以下步驟:
1)將語音轉(zhuǎn)化為語譜圖,通過短時(shí)傅里葉變換FFT方法將原始語音轉(zhuǎn)化為一張能夠作為輸入的圖像,具體是:利用短時(shí)傅里葉變換FFT方法對原始語音信號的每一幀進(jìn)行處理,通過時(shí)間抽取算法和頻率抽取算法得到由時(shí)域和頻域兩個(gè)維度組成的語譜圖,其中,在頻率抽取過程中,對不需要的頻率進(jìn)行壓縮處理,從而降低噪音影響。
2)對整句語音建模,將由步驟1)得到的語譜圖作為特征圖輸入到一個(gè)由多個(gè)卷積層組成的神經(jīng)網(wǎng)絡(luò)中,這里的卷積層與全連接層不同,它是非全連接層,非全連接是指后一層的輸出與前一層的部分輸入相關(guān),而全連接則是認(rèn)為后一層的輸出與前一層的全部輸入都相關(guān);如圖2所示,每個(gè)卷積層都包括卷積、非線性變換和下采樣三個(gè)階段,具體如下:
2.1)卷積階段:假設(shè)原始語音中有n1個(gè)音節(jié),則輸入語音信號的幀數(shù)就是n1個(gè),n2和n3分別對應(yīng)每一幀特征圖的時(shí)域維度和頻域維度,具體維度大小根據(jù)FFT變換后決定,即有n1個(gè)n2×n3大小的二維特征圖組成的三維數(shù)組,將每個(gè)輸入特征圖記為xi,卷積后的結(jié)果y也是一個(gè)三維數(shù)組,每個(gè)輸出特征圖記為yj,鏈接xi和yj的權(quán)重記為wij,則
其中,*表示二維離散卷積運(yùn)算符,bj是偏置項(xiàng);
2.2)非線性階段:將卷積階段輸出的特征y作為輸入,進(jìn)行非線性變換R=h(y),本發(fā)明采用收斂速度較快的不飽和非線性函數(shù)ReLU,如圖3所示,具體函數(shù)公式為:
R=max(0,y)
2.3)下采樣階段:本發(fā)明采用最大池化的操作,依據(jù)定義的鄰域窗口大小計(jì)算特定范圍內(nèi)的數(shù)據(jù)最值PM;
將第一個(gè)卷積神經(jīng)網(wǎng)絡(luò)的輸出結(jié)果圖像作為第二個(gè)卷積神經(jīng)網(wǎng)絡(luò)的輸入,同樣經(jīng)歷三個(gè)階段,輸出結(jié)果再輸入到第三個(gè)卷積神經(jīng)網(wǎng)絡(luò)中,經(jīng)歷三個(gè)階段后得到卷積網(wǎng)絡(luò)的輸出結(jié)果,該結(jié)果與一個(gè)全連接層相連接,最后得到最終的輸出序列O,如圖4所示。
3)將卷積神經(jīng)網(wǎng)絡(luò)的輸出序列O與標(biāo)簽T進(jìn)行比較,這里的標(biāo)簽T指的是預(yù)定義在網(wǎng)絡(luò)中的命令,用于與網(wǎng)絡(luò)識別的命令做比較,比較結(jié)果所得的誤差E大于預(yù)設(shè)閾值時(shí),用反向傳播BP算法對網(wǎng)絡(luò)權(quán)值進(jìn)行調(diào)整,直至E小于預(yù)設(shè)閾值時(shí)就認(rèn)為收斂,訓(xùn)練結(jié)束,輸出信息文本作為最終識別結(jié)果,即控制命令。其中,預(yù)定義的命令標(biāo)簽有十個(gè),分別是:抓、握、推、拉、插、按、夾、捏、剪、切、敲、打、采、挖、撕、拽、磨、削、刨、挫等。
4)將步驟3)得到的文本信息結(jié)果作為控制命令,機(jī)器人接收到特定的命令后,做出相應(yīng)的動作。本實(shí)例將前三個(gè)步驟用到的卷積神經(jīng)網(wǎng)絡(luò)用于Linux Ubuntu 16.04系統(tǒng)安裝的Robot Operating System(ROS)的kinetic版本上,一個(gè)talker節(jié)點(diǎn)將步驟3)得到的最終命令文本信息結(jié)果作為消息發(fā)布給ROS Master,并由一個(gè)機(jī)器人控制節(jié)點(diǎn)listener作為消息接收者來接收這個(gè)消息,從而對機(jī)器人進(jìn)行相應(yīng)的控制。
具體如下所示:當(dāng)用戶通過語音設(shè)備下達(dá)指令后,如指令“抓”,該語音信號的語譜圖通過卷積神經(jīng)網(wǎng)絡(luò)的識別,與命令標(biāo)簽T中的“抓”比較,產(chǎn)生誤差小于閾值,則將“抓”作為文本信息輸出,該文本信息被發(fā)布到ROS Master中,由一個(gè)機(jī)器人控制節(jié)點(diǎn)listener作為消息接收者來接收這個(gè)消息,通過選擇機(jī)制,最終將消息解釋為動作并控制機(jī)器人做出“抓”的反應(yīng);當(dāng)用戶通過語音設(shè)備下達(dá)的指令與命令標(biāo)簽T中的不相符,如指令“揉”,則通過卷積神經(jīng)網(wǎng)絡(luò)識別后不將結(jié)果作為文本信息輸出,相應(yīng)的機(jī)器人也不做任何反應(yīng);當(dāng)用戶下達(dá)命令時(shí)使用友好的語句,如“請抓”,其識別與控制過程與指令“抓”類似,區(qū)別在于語音識別結(jié)果只將“抓”與命令標(biāo)簽T中的“抓”作比較,忽略“請”字。
以上所述實(shí)施例只為本發(fā)明之較佳實(shí)施例,并非以此限制本發(fā)明的實(shí)施范圍,故凡依本發(fā)明之形狀、原理所作的變化,均應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。