一種以動作方向變化控制音符播放的方法
2023-05-24 19:33:21 2
專利名稱:一種以動作方向變化控制音符播放的方法
技術領域:
本發明屬於人機互動領域,具體涉及一種動作方向變化控制音符播放的方法。
背景技術:
目前在中國對孩子的教育方面,還是過於偏重分數的應試教育。音樂教育,尤其是音樂合奏教育對於解決獨生子女協作能力缺失、成年後難以融入社會生活的問題有重要意義。音樂合奏教育有助於兒童協作意識、情感的發展,有助於培養規則意識。目前在兒童協同音樂交互方面已有一些研究工作,如Mogclass是一個在聯網行動裝置上的合作演奏音樂環境(參考文獻Zhou, Y. S. , Percival. G. , Wang, X. X, Wang, Y·,and Zhao, S. D. MOGCLASS !evaluation of a collaborative system of mobile devices for classroom music education of young children. CHI, (2011),523-532.)。 Symphony-Q支持孩子們通過在交互桌面上擺放正確的樂器圖標來協同演奏對應樂器的音樂(Kusunoki, F. , Sugimoto, M. , and Hashizume, H. Symphony-Q a support system for learning music through collaboration. CSCL, (2002),491-492.)。器樂合奏要求兒童至少掌握一種樂器的演奏技巧,具有較高的音樂樂理知識,但是由於作為一種較專業的音樂形式,合奏對兒童的音樂要求較高,所以目前很少有研究關注如何幫助孩子們享受協作合奏音樂的過程。
發明內容
本發明的目的在於,提供一種通過手部擺動方向變化控制音符播放的方法,將兒童手部往返揮動的動作對應為樂曲音符的播放命令。每個單方向的運動過程中,持續播放某個音符,直到反方向揮動時,再開始播放下一個音符,適合兒童以比較自然的方式來控制演奏的節奏。本發明包括以下關鍵方法I)本發明提供一種肢體擺動角度序列的拐點檢測方法;2)本發明還提供一種揮動動作與音符的對應激活方法;肢體往復擺動,可以映射為肢體繞某個軸或者某個點往復轉動,通過不同的技術手段可以獲得肢體轉動的角度。方法I)是在運動過程中,從實時獲得的一連串角度數據中找到變化趨勢發生改變的臨界點(拐點);方法2)是在找到拐點的時刻,同時結束當前音符的播放並開始下一個音符,將改變揮動方向與切換播放音符嚴格對應起來。本發明的一種以動作方向變化控制音符播放的方法,其步驟包括;I)將待播放的音符轉換為midi輸出參數,在程序裡將整個音符序列存儲為一系列整數數組,每一個音符對應一組整數,每一組整數有其對應的下標,對應著音符的序列, 下標依次排序,下標每增加I就意味著音符前進一個;定義某一數組位置為初始播放位置;2)按照設定的時間間隔接收定位於人體的傳感器的輸出,識別人體動作;3)在檢測第一個動作方向拐點時,播放當前播放位置對應的音符;
4)在檢測下一個動作方向拐點時,停止播放當前音符並播放下一個音符。在上述方法中,需先將待播放樂曲音符轉換為可為電腦識別並播放的midi輸出參數,然後內置在程序頭文件裡。所述傳感器通過無線方式與電腦連接。進一步的,上述方法通過激活自定義的消息來停止或播放音符,在消息響應裡,通過設定的輸出參數控制電腦來播放、停止聲音,聲音的通道數,音高和音量。進一步的,根據所述傳感器繞豎直方向轉動的角度(航向角)識別人體動作。根據當前航向角currentYaw是否大於上一時刻航向角yawPre來檢測動作方向拐點;若檢測到動作方向拐點時,當前播放位置指向數組的最後一位,則結束當前位置的音符播放,返回數組的第一位對應的音符繼續播放。具體來講,若當前時刻動作變化趨勢flag異於上一時刻動作變化趨勢flagPre, 則判定當前時刻出現動作方向拐點,其中,flagPre為布爾類型,當前航向角currentYaw大於上一時刻航向角yawPre時,flagPre為真。為了保證邊際跳動數據對航向角產生的漂移現象,本發明還提供一種跳動過濾算法,在當前航向角與上一時刻航向角的差值大於設定的閾值時才進行動作方向拐點的檢測。本發明使音樂交互系統一方面降低了合奏的門檻,通過讓兒童用肢體揮動的動作控制音符長短的方式進行演奏,降低了獨奏的難度,同時鼓勵兒童在音樂聲中手舞足蹈來表達對音樂的感受與理解,提高了演奏的沉浸感和趣味性;另一方面儘可能的保留合奏的特點,讓兒童體驗不同聲部的配合。
圖I是動作方向變化控制音符播放節奏的總體流程圖;圖2是本發明中傳感器的旋轉方向示意圖;圖3是本發明中前後兩個時刻航向角數據關係示意圖;圖4是本發明中傳感器的航向角數據隨時間變化曲線及可檢測出的拐點示意圖;圖5a)是本發明中過濾前有邊際跳動的一個航向角曲線片段;圖5b)是a)中的航向角在經過過濾處理後的曲線及拐點示意圖;圖6是本發明中傳感器動作激活音符的流程圖。
具體實施例方式為了使本技術領域的人員更好的理解本發明,下面結合附圖和實施方式對本發明作進一步的詳細說明,但不構成對本發明的限制。本發明可以以陀螺儀傳感器為工具(但也可以選擇其他類型傳感器),通過傳感器來捕獲兒童肢體(這裡為手部,當然也可以是肘部或其他部位,實際情況可以依據個人喜好或實際需求而有所不同)的擺動動作。演奏的過程中每個兒童穿戴一個縫有傳感器的手套,其面前有一臺與此傳感器通信的PC負責接受數據,PC上運行著客戶端和服務端;傳感器通過無線方式(如藍牙)將原始傳感器數據實時發給到PC客戶端,客戶端計算出角度後通過socket發送至服務端,服務端進行動作識別後播放當前動作所對應的音符,並通過界面反饋。圖I是動作方向變化控制音符播放節奏的總體流程圖。當有兒童手部動作輸入
4時,傳感器每隔一段時間At,就實時獲取一次肢體擺動角度的數據(在本實施方式中為手部擺動角度的數據),服務端通過與上一個記錄時刻的角度比較,計算角度的變化趨勢,然後通過檢測到的角度變化拐點,順序激發樂曲音符。請綜合圖2、3、4來看。傳感器可檢測到的手部動作是繞著豎直的軸(z軸)進行旋轉分量,服務端只需要獲取手部繞z軸轉動的航向角的變化,就可以識別不同方向的擺動動作。傳感器沿著與水平平面平行的方向旋轉(或者在水平平面的投影有旋轉分量)。
由於人體腕部沿前臂骨的垂直軸進行旋內、旋外運動的幅度都在_y到y之間。在此運動範
圍內,航向角的變化範圍為[-90°,90° ],我們把航向角持續增大或者持續減少做為一個單程擺動動作。兩個單程擺動動作的分隔點,就是航向角數據取極值的時刻,亦即角度變化趨勢發生改變的時刻。由於不是對已有的一個完整數據序列進行分析識別,而是在演奏過程中實時採集數據,及時識別並給出響應,所以就需要實時記錄角度的變化狀態。服務端定義兩個負責數據識別的變量,分別保存當前時刻的航向角(currentYaw)及上一個時刻的航向角 (yawPre),並將當前時刻所獲取的航向角currentYaw與上一個時刻的航向角yawPre進行對比;定義布爾類型的標誌flag、flagPre分別表示當前時刻的變化趨勢和上一個時刻變化趨勢。currentYaw是否大於yawPre決定了當前的flag為真(true)還是為假(false), 因此如果flagPre與flag的真假相反,則判斷為航向角的變化趨勢發生了改變。隨著傳感器數據不斷更新,每一個時刻的currentYaw覆蓋其對應的yawPre, flag覆蓋上個flagPre, currentYaw和flag—起滑動並更新為剛讀出的傳感器數據。具體流程如下I)假定傳感器從操作者角度觀察先逆時針轉動,如圖4從上半部分到下半部分所示,隨著傳感器的轉動,航向角Yaw的值在逐漸減小;在記錄Yaw的兩個變量中,currentYaw 更新為新的角度,yawPre則更新為剛才的currentYaw,且currentYaw此時是小於yawPre 的,記錄角度變化趨勢的flag與上一個變化標誌flagPre都是false ;2)當傳感器停止逆時針旋轉時,currentYaw取到極小值,判斷此時檢測到如圖4 所示的第一個拐點;3)當接下來開始反方向順時針旋轉的時刻,currentYaw開始大於yawPre, flag更新為true且與flagPre不同,判斷此時檢測到如圖4所示的第二個拐點。這時結束播放當前index所指示的音符(index是一個整型變量,記錄的是當前正在播放第幾個音符,實際對應為由音符序列轉換成的整數數組的下標。),把index加I,開始播放新的index所指示的音符。手繼續擺動,傳感器繼續順時針轉動,航向角在持續增加,flag與flagPre都是同樣為true,此時一直播放當前的音符;4)當傳感器停止順時針旋轉並開始逆時針旋轉時,類似上述分析,航向角開始減小,flag為flase, flagPre為true,出現不同的值,此時停止播放當前音符,播放下一個音符。如此反覆擺動,直到歌曲播放至最後一個音符時,再從頭開始播放。但是,這個判斷方法在以下情況會面臨問題,即擺動到一個單程運動的終點時,手可能稍作停頓再進行反方向的下一個單程運動。這個短時間的停頓,雖然手基本處於靜止狀態,但是由於傳感器存在靜止漂移現象,航向角會出現很小範圍的無規律跳動變化,如圖 5a)所示。在上述檢測算法下,這個較短時間間隔內判斷出多個flag與flagPre值不同的時刻,會額外多出多個不需要的變化趨勢,影響後續樂曲音符的激活。對此,本發明提供一種跳動過濾算法,當currentYaw與yawPre的絕對值之差大於一個閾值時才進行變化趨勢的比較,否則yawPre保持原數,不被currentYaw的值覆蓋,以儘量減小邊際跳動數據對趨勢判斷的影響,如圖5b)所示。此外,本發明還提供一種揮動動作與音符的對應激活方法基於兒童手部運動的航向角信息,每檢測到一個航向角的拐點,停止播放當前的音符,同時開始下一個音符的播放,流程如圖6所示。具體實現步驟如下I)將需要播放的樂曲音符翻譯成midi輸出參數,這樣就可以把整個音符序列轉換成一系列整數數組保存起來。每個整數數組對應著一個音符;數組裡面的整數,是在 midi標準裡用來表示該音符音高的參數,如用60表示中音I (dao)。a)定義當前播放位置,沿著數組的下標往前遞增推進;b)檢測到一個拐點時,停止當前播放位置的音符,播放位置往前推進一個,播放下一個音符;c)如果是第一次檢測到拐點,即對應的播放位置為0,那麼直接播放當前位置的音符;d)如果檢測到某拐點,對應的播放位置已經推進到數組的最後一位,那麼先結束該位置的音符播放,將播放位置歸零,再從樂曲的開頭繼續播放;2)停止或者播放音符是激活自定義的消息,在消息響應裡面,通過不同的midi輸出參數來控制設備是播放還是停止聲音、聲音的通道數、音高(當前播放位置對應的簡譜數組裡寫入)、音量。
權利要求
1.一種以動作方向變化控制音符播放的方法,其步驟包括;.1)將待播放的樂曲簡譜轉換為音符輸出參數,存儲為整數數組,並定義某一數組位置為初始播放位置;.2)按照設定的時間間隔接收定位於人體的傳感器的輸出,識別人體動作;.3)在檢測第一個動作方向拐點時,播放當前播放位置數組對應的音符;.4)在檢測下一個動作方向拐點時,停止播放當前音符而播放數組中下一位對應的音符。
2.如權利要求I所述的方法,其特徵在於,將待播放樂曲轉換為可為電腦識別並播放的音符輸出參數,所述傳感器通過無線方式與電腦連接。
3.如權利要求2所述的方法,其特徵在於,通過激活自定義的消息來停止或播放音符, 在消息響應裡,通過設定的輸出參數控制電腦來播放、停止聲音,聲音的通道數,音高和音量。
4.如權利要求2所述的方法,其特徵在於,所述傳感器為陀螺儀,通過藍牙方式與電腦無線連接。
5.如權利要求I所述的方法,其特徵在於,根據所述傳感器繞豎直方向轉動的航向角識別人體動作。
6.如權利要求I所述的方法,其特徵在於,如檢測動作方向拐點時,當前播放位置指向數組的最後一位,則結束當前位置的音符播放,返回數組的第一位對應的音符繼續播放。
7.如權利要求I所述的方法,其特徵在於,所述傳感器定位於人體手部。
8.如權利要求1-7任一所述的方法,其特徵在於,根據當前航向角currentYaw是否大於上一時刻航向角yawPre來檢測動作方向拐點。
9.如權利要求8所述的方法,其特徵在於,在當前時刻動作變化趨勢flag異於上一時刻動作變化趨勢flagPre時,判定當前時刻出現動作方向拐點,其中,fIagPre為布爾類型, 當前航向角currentYaw大於上一時刻航向角yawPre時,fIagPre為真。
10.如權利要求9所述的方法,其特徵在於,在當前航向角與上一時刻航向角的差值大於設定的閾值時才進行動作方向拐點的檢測。
全文摘要
本發明為一種通過不同方向的動作控制音符播放的方法。該方法包括一種肢體擺動角度序列的拐點檢測方法和一種揮動動作與音符的對應激活方法。該方法將兒童手部往返揮動的動作對應為樂曲音符的播放;每個單方向的運動過程中,持續播放某個音符,直到反方向揮動時,再開始播放下一個音符。本發明適合兒童以比較自然的方式來控制演奏的節奏,通過讓兒童用肢體揮動的動作控制音符長短的方式進行演奏,降低了獨奏的難度,同時提高了演奏的沉浸感和趣味性,從而達到培養兒童音樂學習興趣,提高音樂素養,增進兒童溝通協作能力的目的。
文檔編號G09B15/02GK102592485SQ201110442230
公開日2012年7月18日 申請日期2011年12月26日 優先權日2011年12月26日
發明者呂菲, 戴國忠, 王宏安, 田豐, 馬奇林 申請人:中國科學院軟體研究所