劉祥程,陳 陳,李嘉鵬,劉 濤,汪健韜,王玉琳
(合肥工業(yè)大學(xué) 機械工程學(xué)院,安徽 合肥 230009)
隨著時代的發(fā)展,各種健身娛樂活動越來越受到廣大老百姓的喜愛。在我國西南一帶的少數(shù)民族地區(qū)流傳著一種竹竿舞游戲[1]。該游戲中,一組人按照一定的節(jié)奏和頻率不斷地擺動竹竿,使竹竿不斷地開合;另一組人則按照節(jié)奏和頻率在不斷開合的竹竿空檔中跳來跳去,形成優(yōu)美的舞蹈。這種竹竿舞既鍛煉了身體,又愉悅了身心,兼有趣味性、普及性、簡便性、健身性和娛樂性,符合“以人為本”“健康第一”的指導(dǎo)思想[2,3]。
但是,傳統(tǒng)的竹竿舞需要2~8人甚至更多人跪在地上按音樂節(jié)拍來操縱竹竿的開合,俗稱“打竿”。長時間跪在地上打竿是一件非常辛苦的事[4],況且多人手動打竿,節(jié)奏很難保持一致,打竿者又不能加入到游戲中,人少時,還會導(dǎo)致竹竿舞不能進行。因此,為了解決上述不足,本文提出了一種基于深度學(xué)習(xí)的竹竿舞自動打拍機,打破了竹竿舞這項運動對人數(shù)的限制,并具有操作簡單、智能化程度高等優(yōu)點。
新型竹竿舞智能打拍機機械結(jié)構(gòu)如圖1所示,該機構(gòu)由STM-32單片機控制終端模塊1、交流伺服電動機2、扭矩傳遞圓盤3、扭矩傳動連桿4、搖桿聯(lián)動器5、第一固定卷筒6、第二固定卷筒7、第一傳動搖桿8、第二傳動搖桿9、移動滑塊10、移動導(dǎo)桿11、固定導(dǎo)軌12和光電傳感器13等組成。
交流伺服電動機驅(qū)動扭矩傳遞圓盤并帶動扭矩傳動連桿定軸轉(zhuǎn)動,使得搖桿聯(lián)動器帶動滑鍵在第一左傳動搖桿和第一右傳動搖桿的凹槽內(nèi)滑動,從而帶動第一左傳動搖桿和第一右傳動搖桿分別繞著第二左固定卷筒、第二右固定卷筒轉(zhuǎn)動,同時,第二左傳動搖桿、第二右傳動搖桿上的滑鍵分別在第一左傳動搖桿和第一右傳動搖桿的凹槽內(nèi)滑動,并帶動第二左傳動搖桿、第二右傳動搖桿分別繞著第一左固定卷筒、第一右固定卷筒轉(zhuǎn)動,進一步帶動處于第二左傳動搖桿、第二右傳動搖桿凹槽內(nèi)的左移動導(dǎo)桿與右移動導(dǎo)桿驅(qū)動兩端的移動滑塊在固定導(dǎo)軌上滑動,從而將交流伺服電動機的輸出扭矩轉(zhuǎn)化為移動導(dǎo)桿的往復(fù)運動。
1-單片機控制終端模塊;2-交流伺服電動機;3-扭矩傳遞圓盤;4-扭矩傳動連桿;5-搖桿聯(lián)動器;6-第一固定卷筒;7-第二固定卷筒;8-第一傳動搖桿;9-第二傳動搖桿;10-移動滑塊;11-移動導(dǎo)桿;12-固定導(dǎo)軌;13-光電傳感器圖1 竹竿舞智能打拍機機械結(jié)構(gòu)示意圖
竹竿舞自動打拍機的最后運動形式是兩根或更多竹竿的水平移動,因此,我們可以將兩根竹竿一側(cè)的運動看成是兩個質(zhì)點做對稱的往復(fù)運動,這種運動方式可以用滑塊在導(dǎo)軌上滑行來表示,在滑塊上加上兩根短軸就可以將竹竿套在上面了。兩個滑塊可以由兩根相同的連桿來帶動,兩根連桿的空閑端鉸接并同時與另一根連桿連接,這根連桿的運動只能是在兩滑塊的對稱軸上移動,也就是只要將這根桿在與兩滑塊對稱軸垂直的方向上限制住,可以使得兩個滑塊做對稱的往復(fù)運動[5,6],其傳動機構(gòu)簡圖如圖2所示。
圖2 竹竿舞智能打拍機傳動機構(gòu)簡圖
電機的輸出運動是轉(zhuǎn)動,要將轉(zhuǎn)動轉(zhuǎn)化成桿的豎直方向的往復(fù)運動,可以先將轉(zhuǎn)動輸出到一根桿上,然后再用一根連桿與上面提到的豎直移動的連桿連接,這樣就可以組成一套完整的機構(gòu)。由圖2可以看出整個機構(gòu)的運動,桿1一端與電機軸固結(jié),電機輸出軸將轉(zhuǎn)動輸出到桿1,即桿1隨電機轉(zhuǎn)動,這時桿2被桿1帶動,桿3則在豎直方向上做往復(fù)運動,桿3的這種運動同時帶動桿4、桿5與桿7、桿8做對稱的運動,最后兩個滑塊的輸出運動就是對稱的往復(fù)運動。
由圖2可知,由桿4帶動滑塊6在水平面上來回擺動從而帶動滑塊往復(fù)運動,桿5負責(zé)控制傳動角,使得底下兩端滑塊能夠達到虛接觸與完全開合兩種狀態(tài),提高了使用者的體驗感,并且該傳動機構(gòu)傳動角較大,能夠較好地傳輸扭矩,由于桿5的存在,使得機構(gòu)傳動的過程中沒有死點,大大提高了機構(gòu)的可靠性。
傳統(tǒng)竹竿舞音樂一般較為歡快,常用的節(jié)奏是2/4拍、3/4拍、4/4拍。
(1) 2/4拍的節(jié)奏重點是:第一拍強,第二拍弱。節(jié)奏輕快的音樂基本上都是這個。
(2) 3/4拍的節(jié)奏重點是:強、弱、弱。節(jié)奏很明顯。
(3) 4/4拍的節(jié)奏重點是:強、弱、次強,弱。一般曲調(diào)柔和、緩慢。
由于傳統(tǒng)竹竿舞的音樂節(jié)奏較為歡快,因此在設(shè)定打拍節(jié)奏時,將對應(yīng)的竹竿舞節(jié)拍節(jié)奏進行封裝,通過對音樂原文件(Mp3,Wav)進行預(yù)處理,提取相關(guān)信號。本文采用Python的第三方開源庫librosa對相關(guān)的音樂信號進行數(shù)字信號處理,提取相關(guān)的信號特征,進行相關(guān)實驗。如圖3所示,以實驗音頻為例,通過設(shè)置合適的采樣率,可以得到相關(guān)的波形。如圖4所示,通過內(nèi)置函數(shù)(librosa,feature,tempogram)的變換可以得到有關(guān)節(jié)拍對應(yīng)的特征向量值,包括近似系數(shù)(淺層特征)、細節(jié)系數(shù)(深層特征)[7]。
通過給傳動系統(tǒng)預(yù)設(shè)不同的轉(zhuǎn)速,使得不同的節(jié)拍對應(yīng)不同的轉(zhuǎn)速特點,并通過伺服電機的速度控制,實現(xiàn)了不同節(jié)拍下竹竿開閉合的不同速度。通過上述對預(yù)訂曲目的節(jié)拍分析,實現(xiàn)了機構(gòu)對基于節(jié)拍的連續(xù)運轉(zhuǎn)[8,9]。
利用處理過后得到的特征向量值,建立深度學(xué)習(xí)模型,該深度學(xué)習(xí)框架的數(shù)據(jù)集分為測試集與訓(xùn)練集兩部分。由于沒有前人這方面足夠的研究資料,我們采用自己搭建訓(xùn)練集的方式,并將該訓(xùn)練集命名為“HFUT-Mechatronics-Text”,該訓(xùn)練集中包括了相應(yīng)的原文件(處理)以及對應(yīng)的節(jié)拍。
當(dāng)音樂節(jié)拍輸入進卷積神經(jīng)網(wǎng)絡(luò)(CNN)后,神經(jīng)網(wǎng)絡(luò)會對音樂特征進行提取并歸類。淺層特征(近似系數(shù))主要包括音樂特征經(jīng)過神經(jīng)網(wǎng)絡(luò)模型前級卷積的特征。而深層特征(細節(jié)系數(shù))主要包括音樂特征的高頻成分,對節(jié)拍輸出的影響較大,這一部分的特征更加抽象。卷積神經(jīng)網(wǎng)絡(luò)能夠從中提取更高階的信息,從而實現(xiàn)數(shù)據(jù)降維的功能。
圖3 實驗音頻對應(yīng)的波形
圖4 實驗音頻對應(yīng)的節(jié)拍
LSTM是基于 RNN(循環(huán)神經(jīng)網(wǎng)絡(luò)) 的網(wǎng)絡(luò)結(jié)構(gòu)進行了優(yōu)化改進的神經(jīng)網(wǎng)絡(luò)系統(tǒng),如圖5所示,將應(yīng)用中神經(jīng)網(wǎng)絡(luò)的每層每個神經(jīng)元中均設(shè)置輸入門、輸出門和遺忘門。針對序列數(shù)據(jù)而言,LSTM的優(yōu)勢在于一方面可以提高模型的收斂速度;另一方面因為門限機制,可以促使模型避開局部最優(yōu),朝正確的方向進行收斂。
模型的數(shù)據(jù)處理需要實現(xiàn)由相關(guān)輸入的特征向量得到相應(yīng)電機轉(zhuǎn)速的輸出,本質(zhì)上是一個基于時間序列的多分類的循環(huán)輸出問題。我們預(yù)期輸出有6個不同的節(jié)拍,分別為1/4拍、2/4拍、3/4拍、4/4拍、3/8拍和6/8拍 ,分別對應(yīng)6種不同的轉(zhuǎn)速。
通過定義標簽,將期望的轉(zhuǎn)速特征與其對應(yīng)的特征向量建立數(shù)值上的對應(yīng)關(guān)系,并建立相應(yīng)的驗證集作為下一步訓(xùn)練的參考,通過輸入激勵節(jié)拍(相關(guān)音頻信號所提取的特征向量),可以得到相關(guān)的響應(yīng)序列,選取已知序列進行測試,如表1所示。
圖5 改進后的循環(huán)神經(jīng)網(wǎng)絡(luò)
由表1中的測試數(shù)據(jù)可知,該模型具有較高的預(yù)測能力,可以匹配實際應(yīng)用。
Sortmax是神經(jīng)網(wǎng)絡(luò)中的一個很重要的函數(shù),其作用是將人工神經(jīng)元的輸出結(jié)果映射到[0,1]空間中去,并且能夠保證歸一化后的和為1,這使得多分類問題的各結(jié)果的概率之和剛好為1,并且保證輸出的結(jié)果為最大概率的值。Sortmax函數(shù)的表達式如下:
Sortmax(i)=ei∑pi=1ei.
其中:Sortmax(i)為第i個節(jié)點輸出值;p為節(jié)點的個數(shù),即分類的類別個數(shù)。
表1 對應(yīng)測試數(shù)據(jù)
最終通過輸入的音樂信號,輸出所匹配概率最大的節(jié)奏信號并反饋輸入到MCU控制器(STM32F103),MCU控制器通過電機驅(qū)動器控制電機轉(zhuǎn)動,完成整個智能打拍的過程及節(jié)拍速度反饋的過程。本次實驗使用的控制電機如圖6所示。
針對傳統(tǒng)竹竿舞在打拍中出現(xiàn)的問題,本文提出新型竹竿舞智能自動打拍機的設(shè)計,并詳細介紹了該打拍機的整體結(jié)構(gòu)、設(shè)計原理以及深度學(xué)習(xí)的實現(xiàn)。該打拍機操作簡單、智能化程度高,不僅可以實現(xiàn)自動打拍功能,節(jié)約了人力與場地,為竹竿舞愛好者提供了良好的訓(xùn)練以及表演平臺,還可以通過無線通信與終端進行連接,保證了數(shù)據(jù)的實時反饋,實現(xiàn)了良好的人機交互。該機器應(yīng)用前景廣闊,經(jīng)濟效益和社會效益明顯。經(jīng)過實物樣機的制作與測試,實現(xiàn)了機電軟一體化綜合訓(xùn)練。
圖6 本次項目使用的電機驅(qū)動器與電機