張潤生 楊詩淇 程敏熙 李德安 鄧浩儀
(華南師范大學(xué)物理與電信工程學(xué)院 廣東 廣州 510006)
讓音叉對著紙振動,兩者有輕微接觸,實驗可以采集到低于音叉基頻的聲音頻率(低音現(xiàn)象),以及現(xiàn)象更為明顯的比音叉基頻更高的聲音頻率(泛音現(xiàn)象).有學(xué)者利用手機傳感器驗證了音叉接觸紙張低音的理論模型,卻并未提及泛音現(xiàn)象的特點及其影響因素[1,2].此外,諸如Spectroid,Phyphox,Adobe Audition等軟件功能相對單一,并且對于音頻的分辨率和精確度存在一定誤差,實驗數(shù)據(jù)的可靠性不強.
基于上述情況,本文利用Python-Librosa庫對音叉接觸紙張泛音現(xiàn)象的特點進行研究,定性探究紙張接觸位置、大小、厚度、材料等因素對泛音特性的影響.
通過查閱文獻發(fā)現(xiàn),音叉振動發(fā)聲的本質(zhì)為棒振動,在1次振動后,波傳遞到邊界并被反射形成第2次振動,振動再次被邊界反射形成第3次振動,以此類推形成n次振動.對于第q次振動,其振動頻率滿足[2]
(1)
其中,l為棒的長度,c為棒的縱向振動傳播速度.式(1)表示“駐波”形式的振動過程,當q=1時為基波,q>1為q次諧波.
音叉在振動時由于存在高次諧波振動,會產(chǎn)生泛音,即會產(chǎn)生滿足基頻整數(shù)倍的高音頻[3].通常,泛音頻率fq滿足[4,5]
fq=qf1
(2)
其中,f1為音叉自由振動時的基頻.
Python是一種具有易學(xué)、易讀、易維護等特點的解釋型腳本語言,其包含的模塊和擴展庫提供了各種問題的解決方法[6,7].Librosa是Python語音信號處理的第三方庫,可以實現(xiàn)時頻處理、特征提取、繪制聲音圖形等功能.本文的編程語法采用Python語言,調(diào)用Librosa庫處理音頻,實現(xiàn)數(shù)據(jù)可視化.
實驗裝置如圖1所示,包含鐵架臺、音叉、橡膠錘、紙張、短尺(固定紙張一側(cè))、固定夾、手機支架、手機傳感器(采集音頻信號).其中3個音叉的基頻分別為260 Hz,420 Hz,515 Hz,紙張包含A4紙、草稿紙、卡紙3種材料.在實驗過程中,音叉豎直放置,先用敲擊器敲打音叉,然后轉(zhuǎn)動紙張使之與音叉輕微接觸,用手機采集穩(wěn)定的音頻信號并進行分析.
以下是程序算法的部分代碼:
import librosa
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
y,sr= librosa.load(path="./beat..wav",sr=None) #讀取音頻文件
melspec=librosa.feature.melspectrogram(y,sr,n_fft=1024,hop_length=512,n_mels=128)
#提取頻譜特征
logmelspec = librosa.power_to_db(melspec)#轉(zhuǎn)換為對數(shù)刻度
plt.figure()#繪制頻譜特征
librosa.display.specshow(logmelspec,sr=sr,x_axis='time',y_axis='mel')
plt.colorbar(format='%+2.0f dB')
plt.show()
首先測量無紙張接觸時音叉的振動頻譜作為空白對照(以基頻為420 Hz的音叉為例),然后讓紙輕微接觸音叉,測量有泛音時的振動頻譜,實驗測得的頻譜圖如圖2所示.其中,橫坐標表示時間(單位為s),縱坐標表示聲音的頻率(單位為Hz),顏色代表聲音的強度(單位為dB),顏色由藍色到橙色變化表示聲音強度越來越強.
如圖2(a)所示,紙張未與音叉接觸時,采集到聲音為音叉自由振動的基頻,中心頻率f1約為420 Hz.當音叉單獨振動時,由于音叉的聲學(xué)特性比較特殊,其泛音強度較弱,而且非常容易消失,其發(fā)出的聲音不是復(fù)合音,近似純音.當紙張與音叉輕微接觸后,除音叉基頻外,還出現(xiàn)了高音振動峰,如圖2(b)所示.
提取強度較大的高音頻率進行分析,得到數(shù)據(jù)如表1所示.
表1 高次諧波頻率數(shù)據(jù)
不難發(fā)現(xiàn),與音叉振動發(fā)出的聲音相比,音叉接觸紙張振動的聲音頻譜既包含音叉的基頻,也包含與音叉基頻成整數(shù)倍關(guān)系的高次諧波,即產(chǎn)生非常明顯的泛音現(xiàn)象,符合理論預(yù)期.
如圖3所示,用一張A4紙,裁剪后尺寸為長×寬=20.00 cm×15.00 cm,將其劃分為圖3所示的5個區(qū)域.讓音叉接觸每個區(qū)域中軸位置振動(以基頻為260 Hz的音叉為例),收集并分析振動產(chǎn)生的高次諧波頻率,得到頻譜圖如圖4所示.
圖3 紙張分區(qū)圖示
(a)音叉接觸紙張一區(qū)的泛音頻譜
(b)音叉接觸紙張二區(qū)的泛音頻譜
(c)音叉接觸紙張三區(qū)的泛音頻譜
(d)音叉接觸紙張四區(qū)的泛音頻譜
(e)音叉接觸紙張五區(qū)的泛音頻譜圖4 音叉(基頻為260 Hz)接觸紙張各區(qū)的振動頻譜
通過分析發(fā)現(xiàn),對于同一張紙,振動的音叉接觸距離懸掛部位越遠的區(qū)域,產(chǎn)生的高次諧波越多,聲音系統(tǒng)整體越尖銳.
將同種材料、同種厚度的A4紙按相同長寬比例裁剪成5種大小的紙張,分別為4.00 cm×3.00 cm,8.00 cm×6.00 cm,12.00 cm×9.00 cm,16.00 cm×12.00 cm,20.00 cm×15.00 cm.分別用音叉接觸不同大小紙張區(qū)域五的中軸位置振動(以基頻為515 Hz的音叉為例),并對其產(chǎn)生的聲音進行頻譜分析,結(jié)果如圖5所示.
(a)音叉接觸4.00 cm×3.00 cm紙張的泛音頻譜
(b)音叉接觸8.00 cm×6.00 cm紙張的泛音頻譜
(c)音叉接觸12.00 cm×9.00 cm紙張的泛音頻譜
(d)音叉接觸16.00 cm×12.00 cm紙張的泛音頻譜
(e)音叉接觸20.00 cm×15.00 cm紙張的泛音頻譜圖5 音叉(基頻為515 Hz)接觸不同大小紙張的振動頻譜
通過分析可知,在材料、厚度、長寬比例、接觸部位相同的條件下,同一音叉接觸不同大小的紙張產(chǎn)生高次諧波的分布近似相同,即紙張大小對音叉接觸紙張泛音的影響不大.
將同種材料厚度不同的A4白卡紙裁剪成相同大小(長×寬=20.00 cm×15.00 cm),其厚度分別為0.16 mm,0.20 mm,0.30 mm,分別用音叉接觸不同厚度紙張區(qū)域五的中軸位置振動(以基頻為515 Hz的音叉為例),并對其產(chǎn)生的聲音進行頻譜分析,結(jié)果如圖6所示.
(a)音叉接觸厚度為0.16 mm紙張的泛音頻譜
(b)音叉接觸厚度為0.20 mm紙張的泛音頻譜
(c)音叉接觸厚度為0.30 mm紙張的泛音頻譜圖6 音叉(基頻為515 Hz)接觸不同厚度紙張的振動頻譜
通過分析可知,在材料、大小、接觸部位相同的條件下,音叉接觸越厚的紙張,振動產(chǎn)生的高次諧波越多,音色整體越短促、薄厚.
分別用音叉接觸尺寸為長×寬=20.00 cm×15.00 cm的草稿紙、A4紙、白卡紙的區(qū)域五的中軸位置(以基頻為420 Hz的音叉為例),采集音叉接觸紙張振動發(fā)聲的音頻,分析得到頻譜圖如圖7所示.
(a)音叉接觸草稿紙的泛音頻譜
(b)音叉接觸A4紙的泛音頻譜
(c)音叉接觸白卡紙的泛音頻譜圖7 音叉(基頻為420 Hz)接觸不同材料紙張的泛音頻譜
通過分析可知,音叉接觸A4紙和白卡紙振動產(chǎn)生的高次諧波較多,即產(chǎn)生的泛音現(xiàn)象更為明顯,其中音叉接觸卡紙發(fā)出的聲音更為短促、厚實,而音叉接觸草稿紙產(chǎn)生的泛音現(xiàn)象相對不明顯.
本研究針對音叉接觸紙張的泛音現(xiàn)象進行了研究,通過觀察、分析實驗現(xiàn)象,發(fā)現(xiàn)音叉接觸紙張振動會產(chǎn)生與音叉基頻成整數(shù)倍關(guān)系的高次諧波,得到紙張不同接觸位置、不同紙張厚度以及不同紙張材料會對泛音特性造成影響,紙張大小對泛音特性不造成影響.其中,音叉接觸距離紙張懸掛部位越遠的區(qū)域、厚度越厚,振動產(chǎn)生的高次諧波越多,聲音越尖銳;音叉接觸A4紙和白卡紙振動產(chǎn)生的泛音現(xiàn)象較為明顯,接觸草稿紙產(chǎn)生的泛音現(xiàn)象不明顯.