韓文超,黃衛(wèi)華(武漢科技大學(xué)信息科學(xué)與工程學(xué)院,湖北武漢430000)
基于聲信號(hào)反饋的葫蘆絲演奏機(jī)器人仿真設(shè)計(jì)
韓文超,黃衛(wèi)華
(武漢科技大學(xué)信息科學(xué)與工程學(xué)院,湖北武漢430000)
針對(duì)管樂(lè)器演奏機(jī)器人在演奏過(guò)程中氣息難以精確控制,從而導(dǎo)致演奏穩(wěn)定性差、演奏效果不佳的問(wèn)題,設(shè)計(jì)了一種基于聲音信號(hào)反饋的葫蘆絲演奏機(jī)器人。介紹了葫蘆絲機(jī)器人的整體結(jié)構(gòu)和控制方案;根據(jù)機(jī)器人演奏的特點(diǎn),設(shè)計(jì)了基于標(biāo)準(zhǔn)基音頻率的數(shù)字低通濾波器對(duì)聲音信號(hào)進(jìn)行濾波,并在此基礎(chǔ)上采用改進(jìn)的諧波峰值法提取聲音的基音頻率,實(shí)現(xiàn)葫蘆絲機(jī)器人演奏過(guò)程的閉環(huán)控制。通過(guò)實(shí)驗(yàn)仿真驗(yàn)證了設(shè)計(jì)的可行性。與一般的管樂(lè)器機(jī)器人演奏系統(tǒng)相比,此設(shè)計(jì)具有更好的穩(wěn)定性和抗干擾能力。關(guān)鍵詞:演奏機(jī)器人;基音檢測(cè);快速傅里葉變換
服務(wù)機(jī)器人是在非結(jié)構(gòu)環(huán)境下為人類(lèi)提供特定服務(wù)的多種高技術(shù)集成的智能化裝備,已深入人類(lèi)生活的多個(gè)領(lǐng)域[1]。其中,以樂(lè)器演奏為代表的娛樂(lè)機(jī)器人發(fā)展尤為迅速。目前,在樂(lè)器演奏機(jī)器人中,關(guān)于鍵盤(pán)樂(lè)器和弦樂(lè)器演奏機(jī)器人的研究較多,而管樂(lè)器則比較少,且多為開(kāi)環(huán)控制,演奏效果的穩(wěn)定性和準(zhǔn)確性難以保證[2]。
針對(duì)這種情況,本文設(shè)計(jì)了一種帶有聲音信號(hào)反饋的葫蘆絲演奏機(jī)器人。通過(guò)對(duì)機(jī)器人演奏過(guò)程中的參數(shù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)、采集,分析演奏的聲音信號(hào),并反饋給控制模塊,實(shí)現(xiàn)演奏系統(tǒng)的閉環(huán)控制,從而提升葫蘆絲機(jī)器人演奏的準(zhǔn)確度和抗干擾能力。
葫蘆絲演奏機(jī)器人系統(tǒng)的結(jié)構(gòu)如圖1所示。
圖1 葫蘆絲演奏機(jī)器人系統(tǒng)結(jié)構(gòu)圖Fig 1 Structure chart of gourd flute playing robot system
1)主控模塊
主控模塊選用由英國(guó)慈善組織“Raspberry Pi基金會(huì)”開(kāi)發(fā)的樹(shù)莓派(Raspberry Pi,RasPi)。主控模塊是整個(gè)演奏機(jī)器人的控制中樞,根據(jù)預(yù)先下載的程序發(fā)送演奏指令,控制口風(fēng)模塊和手指模塊的動(dòng)作來(lái)完成演奏。同時(shí),接收來(lái)自聲音檢測(cè)模塊和人機(jī)交互模塊的信號(hào),對(duì)演奏過(guò)程進(jìn)行相應(yīng)的調(diào)整。
2)口風(fēng)控制模塊
口風(fēng)控制模塊主要由空氣壓縮機(jī)、手動(dòng)節(jié)流閥、開(kāi)關(guān)閥和減壓閥等部分組成,根據(jù)主控模塊發(fā)送的信號(hào)指令,模擬人吹氣的動(dòng)作。其中,空氣壓縮機(jī)充當(dāng)氣源,手動(dòng)節(jié)流閥用來(lái)限制氣源壓力并保證壓力值恒定。開(kāi)關(guān)閥的作用是在調(diào)節(jié)減壓閥時(shí)關(guān)閉氣流,以免漏氣影響吹奏效果。減壓閥為一個(gè)微型電動(dòng)閥,采用脈寬調(diào)制(pulse width modulation,PWM)信號(hào)控制,根據(jù)主控模塊的控制指令來(lái)改變開(kāi)度,從而改變氣壓,模擬人吹奏時(shí)的氣壓變化。
3)手指控制模塊
手指控制模塊主要是模擬人的手指進(jìn)行彈奏。演奏葫蘆絲需要機(jī)器人的手指完成短距離的抬放動(dòng)作,實(shí)現(xiàn)葫蘆絲洞音孔的開(kāi)閉。在追求簡(jiǎn)單實(shí)用的基礎(chǔ)上,兼顧考慮系統(tǒng)運(yùn)行時(shí)的穩(wěn)定性和準(zhǔn)確性,選用扯線式的手指控制方式。手指模型選用一個(gè)活動(dòng)關(guān)節(jié)的模型,結(jié)構(gòu)簡(jiǎn)單,控制效果穩(wěn)定。
4)聲音檢測(cè)模塊
聲音檢測(cè)模塊的功能主要是對(duì)演奏的聲音信號(hào)進(jìn)行采集和處理。具體結(jié)構(gòu)如圖2所示。
圖2 聲音采集模塊結(jié)構(gòu)圖Fig 2 Structure chart of sound acquisition module
聲音檢測(cè)模塊通過(guò)麥克風(fēng)采集演奏的聲音信號(hào),并通過(guò)一個(gè)前置放大器對(duì)信號(hào)進(jìn)行放大,使信號(hào)電壓達(dá)到與ADC的輸入電平相匹配后,對(duì)信號(hào)進(jìn)行A/D轉(zhuǎn)換,之后發(fā)送給單片機(jī)進(jìn)行數(shù)據(jù)處理。
5)人機(jī)交互模塊
人機(jī)交互模塊通過(guò)串口方式與主控模塊進(jìn)行通信,顯示樂(lè)曲信息,控制演奏進(jìn)程,實(shí)現(xiàn)開(kāi)始、暫停和停止等功能。整個(gè)系統(tǒng)采用蓄電池供電,工作電壓約為24 V。
在葫蘆絲演奏機(jī)器人演奏樂(lè)曲前,先將轉(zhuǎn)換成代碼形式的曲譜存入RasiPi中,每個(gè)音符信息均采用一個(gè)結(jié)構(gòu)體表示,包含4個(gè)元素:聲強(qiáng)、指法、時(shí)長(zhǎng)和頻率。其中,聲強(qiáng)為一個(gè)0~100的數(shù)字量,表示演奏音符時(shí)減壓閥的開(kāi)度。指法為一個(gè)字節(jié),表示各個(gè)手指的開(kāi)閉狀態(tài)。每個(gè)手指對(duì)應(yīng)一個(gè)電平信號(hào),高電平表示松開(kāi),低電平表示閉合。時(shí)長(zhǎng)為一個(gè)數(shù)值量,表示音符演奏的時(shí)間。頻率即音符的標(biāo)準(zhǔn)頻率,在演奏開(kāi)始前發(fā)送給聲音檢測(cè)模塊。
RasPi接收到人機(jī)模塊發(fā)送的開(kāi)始命令后,讀取第一個(gè)音符信息,將標(biāo)準(zhǔn)頻率和時(shí)長(zhǎng)值通過(guò)串口發(fā)送給聲音檢測(cè)模塊。根據(jù)指法值和時(shí)長(zhǎng)值確定每個(gè)手指的狀態(tài)和保持相應(yīng)狀態(tài)的時(shí)間,分別給對(duì)應(yīng)的步進(jìn)電機(jī)發(fā)送字節(jié)指令,控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)固定角度,帶動(dòng)固定在手指上的線,完成手指抬放動(dòng)作。再發(fā)送電平信號(hào)控制開(kāi)關(guān)閥關(guān)閉,并根據(jù)音符信息中的聲強(qiáng)值,改變PWM信號(hào)占空比,調(diào)節(jié)減壓閥開(kāi)度,之后打開(kāi)開(kāi)關(guān)閥,開(kāi)始演奏。
聲音模塊在演奏開(kāi)始后,延時(shí)10 ms,等待演奏聲音信號(hào)穩(wěn)定后,通過(guò)麥克風(fēng)采集演奏的聲音,并根據(jù)時(shí)長(zhǎng)值,在演奏持續(xù)時(shí)間內(nèi)采集一段聲音,計(jì)算出聲音頻率,與標(biāo)準(zhǔn)頻率比對(duì),得到差值后通過(guò)串口返回給RasiPi,RasiPi根據(jù)差值調(diào)整減壓閥的開(kāi)度,對(duì)演奏過(guò)程進(jìn)行校正。
在葫蘆絲機(jī)器人演奏系統(tǒng)中,聲音信號(hào)的采集和分析是關(guān)鍵。聲音信號(hào)主要有3個(gè)特性:音色、音高和音強(qiáng)。在氣源和樂(lè)器固定不變的情況下,葫蘆絲演奏機(jī)器人的音色也是固定不變的。在管樂(lè)器演奏中,音高主要受氣流速度影響;響度則與單位時(shí)間內(nèi)通過(guò)截面的氣流量大小有關(guān)。在氣流截面變化不大的情況下,單位時(shí)間內(nèi)的氣流量大小主要取決于氣體流速。所以,在葫蘆絲演奏過(guò)程中,音高與響度大致是成正比的[3]。因此,本文主要對(duì)聲音信號(hào)的音高進(jìn)行檢測(cè)分析。
對(duì)聲音信號(hào)音高的檢測(cè)實(shí)際上就是對(duì)信號(hào)的基音頻率進(jìn)行檢測(cè)。音高和頻率之間存在一種近似對(duì)數(shù)的一一對(duì)應(yīng)關(guān)系[4]。因此,可以采用常用的基音檢測(cè)方法進(jìn)行聲音信號(hào)的音高識(shí)別。諧波峰值法是一種基于快速傅里葉變換(fast Fourier transformation,F(xiàn)FT)的基音檢測(cè)方法。在一般環(huán)境下,可以很好地檢測(cè)到基音頻率,但在復(fù)雜環(huán)境下,諧波分量較多時(shí),通常難以準(zhǔn)確檢測(cè)基音頻率,需要對(duì)信號(hào)進(jìn)行濾波處理來(lái)減少高次諧波對(duì)信號(hào)基音頻率提取的影響。
不同于一般的樂(lè)器演奏,葫蘆絲演奏機(jī)器人在演奏時(shí),每個(gè)音符均預(yù)先設(shè)定好,在進(jìn)行音高檢測(cè)時(shí),該音符的標(biāo)準(zhǔn)頻率是已知的。根據(jù)該音符信號(hào)的標(biāo)準(zhǔn)頻率設(shè)計(jì)相應(yīng)的濾波器,可以大大提高濾波效果[5]。而由于葫蘆絲音域有限,常見(jiàn)的葫蘆絲可以吹奏的音符頻率范圍主要集中在300~600 Hz,因此,可以采用低通濾波器對(duì)信號(hào)進(jìn)行濾波。
基于標(biāo)準(zhǔn)頻率fs,采用窗函數(shù)法設(shè)計(jì)一個(gè)通帶頻率fs、阻帶頻率fs+200Hz、通帶衰減3dB、阻帶衰減50dB的線性FIR低通數(shù)字濾波器。其中,選擇哈明(Hamming)窗作為窗函數(shù)。哈明窗為一種改進(jìn)的升余弦窗,具有優(yōu)良的旁瓣特性和較強(qiáng)的抗干擾能力,能有效地減少高次諧波對(duì)于基頻信號(hào)的泄漏干擾,提高基頻參數(shù)提取精度。
FIR數(shù)字濾波器的設(shè)計(jì)流程如圖3所示。
圖3 FIR數(shù)字濾波器設(shè)計(jì)流程Fig 3 Flow chart of FIR digital filter design
線性FIR濾波器的系統(tǒng)函數(shù)表達(dá)式為
式中h(n)為濾波器單位沖激響應(yīng),N為長(zhǎng)度,N-1為濾波器的階數(shù)。
式中hd(n)為理想的單位響應(yīng),其表達(dá)式為
式中ωc為截止頻率,ωc=(ωp+ωs)/2;ωp為通帶截止頻率;ωs為阻帶截止頻率;α為單位響應(yīng)的對(duì)稱(chēng)中心,α= (N-1)/2;w(n)為一個(gè)長(zhǎng)度為N的哈明窗,如式(4)所示
采用FFT求取基音頻率時(shí),采樣點(diǎn)數(shù)的選取是至關(guān)重要的。當(dāng)信號(hào)采樣點(diǎn)數(shù)過(guò)少時(shí),濾波器通帶和阻帶頻率的取值會(huì)對(duì)基音頻率提取精度有很大影響。對(duì)于采樣頻率為44.1 kHz的聲音信號(hào),至少需要1 200個(gè)采樣點(diǎn),約30 ms,才能基本消除濾波器參數(shù)對(duì)頻率精度的影響。
人在吹奏葫蘆絲時(shí),特別是吹奏高音時(shí),容易出現(xiàn)尾音氣息不穩(wěn)的情況,進(jìn)而影響音準(zhǔn),給基音檢測(cè)帶來(lái)困難。而在機(jī)器人演奏時(shí),聲音信號(hào)更加穩(wěn)定,每個(gè)音的音高幾乎固定不變,在噪聲環(huán)境相對(duì)復(fù)雜的情況下,對(duì)信號(hào)進(jìn)行分段變長(zhǎng)度的采樣、濾波,再用均值法求取基音頻率,可以最大程度地減少噪聲對(duì)信號(hào)頻率的影響,提高檢測(cè)精度。
在葫蘆絲樂(lè)曲的演奏過(guò)程中,單個(gè)音符吹奏的持續(xù)時(shí)間一般不會(huì)低于250 ms。因此,可以在每個(gè)音符吹奏的開(kāi)始部分,依次截取30,40 ms,…等n(0<n<4)個(gè)長(zhǎng)度不等的聲音片段,經(jīng)濾波后,采用FFT求得基音頻率值fi,i=0,1,…,n-1。之后對(duì)求得的所有頻率值求均值后與標(biāo)準(zhǔn)頻率相減得到頻率差值
式中y(n)為檢測(cè)頻率與標(biāo)準(zhǔn)頻率的差值。fs是標(biāo)準(zhǔn)頻率,n為檢測(cè)次數(shù),fi為單次檢測(cè)到的基音頻率。
為了驗(yàn)證改進(jìn)的基音提取算法可以有效提高基音檢測(cè)精度,設(shè)計(jì)了如下對(duì)比仿真實(shí)驗(yàn)。本文選用的聲音樣本是室內(nèi)噪聲環(huán)境下的葫蘆絲C調(diào)中音1的單音文件。采樣頻率為44.1 kHz,8 bit分辨率。信號(hào)的原始波形如圖4所示。
圖4 C調(diào)中音1信號(hào)原始波形圖Fig 4 C alto 1 signal original waveform figure
圖5中,C調(diào)中音1的標(biāo)準(zhǔn)頻率為523 Hz。因此,以通帶頻率523 Hz,阻帶頻率723 Hz為標(biāo)準(zhǔn)設(shè)計(jì)低通濾波器。FIR濾波器的頻率響應(yīng)曲線如圖5所示。
圖5 低通濾波器的頻率響應(yīng)曲線Fig 5 Frequency response curve of low pass filter
對(duì)信號(hào)采用一般的基音提取方法,即對(duì)原始信號(hào)直接做FFT,得到的頻譜圖如圖6所示。
圖6中,信號(hào)的FFT頻譜圖中存在大量的諧波分量,其中有一個(gè)諧波分量與基頻幾乎相等,難以識(shí)別到基音頻率。而將信號(hào)經(jīng)過(guò)如圖5中的低通濾波器濾波后再進(jìn)行FFT得到的頻譜圖如圖7所示。
圖7 信號(hào)濾波后FFT頻譜圖Fig 7 FFT spectrum diagram of signal after filtering
圖7中,經(jīng)過(guò)低通濾波器濾波后的信號(hào)濾去了絕大多數(shù)噪聲頻率,得到只有基頻分量的理想頻譜,可以直接識(shí)別到基音頻率。圖7中信號(hào)頻率值為528 Hz,與標(biāo)準(zhǔn)頻率相差不大。通過(guò)多次提取信號(hào)不同部分的頻率值,再求取均值,得到頻率值為526 Hz,進(jìn)一步縮小誤差。從而驗(yàn)證了本文所設(shè)計(jì)的基音提取方法是切實(shí)可行的。
本文設(shè)計(jì)了一種帶有聲音信號(hào)反饋的葫蘆絲演奏機(jī)器人。采用基音提取的方式對(duì)演奏過(guò)程中的聲音信號(hào)進(jìn)行檢測(cè)分析,并根據(jù)機(jī)器人演奏的特點(diǎn),針對(duì)性地設(shè)計(jì)信號(hào)濾波器,提高了基音檢測(cè)精度,實(shí)現(xiàn)了對(duì)音符音高的有效識(shí)別。采用了一種改進(jìn)的諧波峰值法來(lái)計(jì)算聲音的基音頻率,葫蘆絲演奏機(jī)器人可以實(shí)現(xiàn)葫蘆絲機(jī)器人的自主調(diào)音,并對(duì)演奏過(guò)程中的偏差進(jìn)行一定程度的校正。通過(guò)實(shí)驗(yàn)仿真,驗(yàn)證本文的設(shè)計(jì)效果比較理想。
[1]王田苗,陶永,陳陽(yáng).服務(wù)機(jī)器人技術(shù)研究現(xiàn)狀與發(fā)展趨勢(shì)[J].中國(guó)科學(xué):信息科學(xué),2012,42(9):1049-1066.
[2]Lim A,Ogata T,Okuno H G.Towards expressive musical robots:A cross-modal framework for emotional gesture,voice and music[J]. EURASIP Journal on Audio,Speech,and Music Processing,2012,2012(1):1-12.
[3]Singh C P,Kumar T K.Efficient pitch detection algorithms for pitched musical instrument sounds:A comparative performance evaluation[C]∥2014 International Conference on Advances in Computing,Communications and Informatics(ICACCI),IEEE,2014:1876-1880.
[4]Lin J C,Huang H H,Li Y F,et al.Electronic piano playing robot[C]∥2010 International Symposium on Computer Communication Control and Automation(3CA),IEEE,2010:353-356.
[5]潘陽(yáng).鋼琴校音計(jì)算機(jī)軟件的設(shè)計(jì)[D].合肥:安徽大學(xué),2011.
Simulation design of gourd flute playing robot based on sound signal feedback
HAN Wen-chao,HUANG Wei-hua
(School of Information Science and Engineering,Wuhan University of Science and Technology,Wuhan 430000,China)
Aiming at problem that breath of wind instruments robot is difficult to control precisely in the process of playing,which results in poor control stability and bad play performance,design a kind of gourd flute playing robot based on sound signal feedback.Introduce overall structure and control scheme of gourd flute playing robot;according to characteristics of robot performance,a digital low-pass filter is designed based on standard pitch frequency to filter sound signal,and on this basis,uses improved harmonic peak value method to extract sound pitch frequency,achieve closed-loop control of gourd flute robot in the process of playing.Feasibility of the design is verified by simulation experiment.Compared with the general pipe robot play system,this design has better stability and anti-interference ability.
playing robot;pitch detection;fast Fourier transformation(FFT)
TP242.6
A
1000—9787(2016)06—0082—03
10.13873/J.1000—9787(2016)06—0082—03
2015—10—09
韓文超(1991-),男,湖北天門(mén)人,碩士研究生,主要研究方向?yàn)榍度胧较到y(tǒng)設(shè)計(jì)。