摘 要 本文研究了基于傅里葉變換的音樂與視覺的互動形式,提供了一種可視化的方法,這種可視化方法可用于音樂學(xué)相關(guān)的研究,以及互動媒體創(chuàng)造方法中。
關(guān)鍵詞 音樂;可視化;FFT;傅立葉變換
在音樂創(chuàng)作領(lǐng)域中,近些年出現(xiàn)了探索音樂與視覺之間的關(guān)系的研究方向。有很多方法可以將音樂“轉(zhuǎn)換”為二維(或三維)視覺效果(圖像,視頻),盡管它們始于手動轉(zhuǎn)換,現(xiàn)在有許多自動轉(zhuǎn)換的方法進行逆向轉(zhuǎn)換(從視覺到音樂)的方法較少,主要涉及聲音化而不是輸出音樂。而且,許多流行的可視化工具都使用聲音而不是音樂作為輸入(例如,媒體播放器),因此,除了音樂本身之外,這種可視化還受到樂器音色和人類演奏的影響。僅將抽象音樂符號作為其輸入的可視化將提供對音樂結(jié)構(gòu)而不是特定音樂錄音的一般特征的洞察。
傅立葉變換是檢測信號周期性的工具。它在分析音頻和聲音時非常有用,因為它可以在短時間內(nèi)(通常為100ms)提供聲音的頻譜。如果在水平時間線上垂直繪制一組這些頻譜(低頻在底部,高頻在頂部),則將獲得二維頻譜圖。這樣的頻譜圖顯示了隨時間變化的頻率(音符)和諧波,等效于計算機音樂音序器軟件中使用的鋼琴側(cè)傾圖,但未顯示或編碼較高級別的內(nèi)部音樂結(jié)構(gòu)和較長的周期性。
傅立葉變換(FT)通常顯示信號的周期性,但是也可以用于將一般的非周期性信號變換為其傅立葉分量。基于這樣的想法,可以嘗試將FT方法應(yīng)用于音樂結(jié)構(gòu)本身。在這種情況下,與典型頻譜計算的FT相比,必須覆蓋更長的時間。這樣較長的時間窗(一維)FT的輸入信號可能是音頻信號本身。這樣的FT頻譜將顯示高頻分量的經(jīng)典FT頻譜(等效于音樂音符本身),但也有望顯示出此類音符變化的低頻結(jié)構(gòu)(<10Hz)。由于需要較長的時間窗(>0.5秒)來計算FT,因此對此的計算要求相對較高。一種更簡單的方法是將一段時間內(nèi)的音樂事件單獨視為此“慢速”FT的輸入,而不是計算整個頻譜。這導(dǎo)致了使用二維鋼琴滾動圖作為輸入的想法:它們基本上是二維聲譜圖,顯示了音符在設(shè)定的時間窗口內(nèi)隨時間的分布。如果將二維FT算法應(yīng)用于該圖,則所得二維FT將顯示與音符隨時間和音高分布相關(guān)的特征。實際上,這是應(yīng)用于一維FT(頻譜)的時間圖的二維FT。
這種FT計算方法已經(jīng)在20世紀(jì)60年代開發(fā)出來,該技術(shù)已用于諸如語音識別之類的信號處理應(yīng)用中,但尚未應(yīng)用于音樂。本文中研究的是如何將FT用于可視化音樂。
1算法分析
下列等式中給出了使用復(fù)數(shù)表示法的一維離散FT的基本方程。是離散采樣波輸入,這些方程式以復(fù)數(shù)形式表示。
對于二維離散FT,必須在輸入數(shù)組的兩個軸上進行求和。二維FT通常用于圖像處理,圖像分析,壓縮和過濾。在下面的中給出了用于計算具有點的陣列上的結(jié)果FT的等式。
盡管FT的輸入可以只是虛部為零的實數(shù)數(shù)組,但生成的FT通常是復(fù)數(shù)的數(shù)組,每個復(fù)數(shù)也可以顯示為具有幅度和相位的數(shù)組。對于可視化,通常大小是有意義的變量,但是為了保持輸入要素的正確時間線關(guān)系,相位也是必不可少的。
一種快速計算FT的算法是20世紀(jì)60年代開發(fā)的快速傅立葉變換(FFT)算法,它可將復(fù)雜度降低到將二維FT計算為復(fù)雜度。該算法在計算頻譜的許多應(yīng)用中使用[1]。
2數(shù)字音樂信息提取
從音頻信號中提取信息的方法稱為基于內(nèi)容的音頻處理。它是音樂信息檢索(MIR)的眾多學(xué)科之一,MIR可以從音頻信號計算許多特征。由于這些特征描述了音頻數(shù)據(jù)的各個方面,因此它們被稱為描述符。在音頻處理的上下文中,有三種類型的描述符:低級描述符是直接或在變換后根據(jù)信號計算的。中級描述符描述了音樂流派或音調(diào)等特征。用于計算這種信息的算法將音頻信號的特征與參考數(shù)據(jù)進行比較以用于分類目的。高級描述符描述了包含語義的特征,如“快樂”或“悲傷"。由于對高級特征的感知是主觀的,因此算法要基于其他歌曲的用戶評級來計算這些特征。
基于內(nèi)容的音頻處理源是PCM音頻信號,其首先被分成幀。這些幀表示在信號的幾毫秒范圍內(nèi)的時間間隔,是進一步計算的基礎(chǔ)。典型的幀長約為20ms。在執(zhí)行計算之前,將處理函數(shù)應(yīng)用于每個幀,以便將開始和結(jié)束處的不連續(xù)性最小化。此外,連續(xù)幀通常有一些重疊,要允許效果更平滑的分析。最后,對于每個幀,計算每個描述符的一個標(biāo)量值。
Processing處理核心API不支持音頻,但開發(fā)社區(qū)提供了此功能的庫。其中一個是Minim,包括聲音訪問,處理和分析等功能。Minim支持播放WAV,AIFF,AU,SND以及MP3文件,并提供從處理中訪問音頻信號的方法。它還允許通過音頻緩沖區(qū)直接訪問播放歌曲的信號,音頻緩沖區(qū)可從左,右和混合區(qū)訪問。這些緩沖區(qū)提供對要播放的下一個樣本的緩沖和同步訪問。因此緩沖器中寫入的音頻幀是特征提取和可視化的基礎(chǔ)。雖然Minim還可以分別訪問保存左右揚聲器信號的緩沖區(qū),但本文討論的可視化僅使用混合緩沖區(qū),其中包含兩個通道的混合。當(dāng)通過Minim.loadFile加載音頻文件時,可以指定緩沖區(qū)中包含的樣本數(shù)[2]。
3可視化方法
音樂可視化的一種簡單方法是以原始形式可視化幀數(shù)據(jù)-即緩沖數(shù)據(jù)。這可以通過從draw方法內(nèi)部訪問混合緩沖區(qū)來輕松完成。然后可以通過將緩沖區(qū)長度映射到窗口的寬度和樣本值來可視化緩沖區(qū)數(shù)據(jù),音頻信號的一小部分圖形,也稱為波形。
Minim提供了一個可用于實現(xiàn)轉(zhuǎn)換的STFT。FFT類提供了許多有用的方法,可用于計算強度平均值或?qū)㈩l帶映射到頻率等。它還可以配置為在轉(zhuǎn)換之前自動將漢寧窗口應(yīng)用于緩沖區(qū)數(shù)據(jù),從而使得結(jié)果平滑。最簡單的形式是,所獲得的數(shù)據(jù)可以通過將頻帶的數(shù)據(jù)映射到窗口寬度以及將頻帶的強度映射到窗口的高度來可視化,這類似于用于波形可視化的方法。
另一個有用的可視化是頻譜圖,它顯示了信號的頻率分布如何隨時間變化。譜圖可以揭示可用于識別目的的模式。最簡單的形式是譜圖具有三個維度:水平軸表示時間,垂直軸頻率,顏色表示給定頻帶的強度。這意味著特定時間的頻率由可視化中每個點的顏色表示。
在Processing中實現(xiàn)譜圖可視化并不像到目前為止所描述的可視化那樣簡單?;旧希ㄟ^將表示時間的計數(shù)器映射到顯示窗口的水平位置,將頻帶映射到窗口的高度以及將頻帶的強度映射到顏色來計算頻譜圖。問題是需要在以前的繪制調(diào)用中計算的數(shù)據(jù)。一種方法是使用諸如LinkedList之類的集合,該集合可以保存在當(dāng)前和之前的調(diào)用繪制期間計算的頻率數(shù)據(jù)。然后可以從集合中讀取最后的w值(w是顯示窗口的寬度)并使用該數(shù)據(jù)進行繪制??梢詮募现袆h除較舊的值。這種方法的問題在于效率非常低,因為每次調(diào)用繪圖時都必須訪問和繪制wn(n表示頻帶的數(shù)量)值。
解決此類問題的方法是基于所謂的屏幕外緩沖區(qū)的使用。在最簡單的情況下,這樣的緩沖區(qū)只是像素值改變的圖像(PImage類的對象)。此外,Processing提供了PGraphics類,一個離屏渲染緩沖區(qū),支持與Processing相同的繪圖功能,可以像普通圖像一樣顯示。通過使用緩沖器,以有效的方式實現(xiàn)光譜圖可視化。首先,初始化具有寬度w和高度n的緩沖器,以及設(shè)置計數(shù)器c為零。然后,在每次調(diào)用繪制時,c遞增,并且基于當(dāng)前音頻幀的頻率信息用于繪制離屏緩沖器的c行。然后,緩沖區(qū)顯示Processing的圖像,直到c>w。但此方法最終會超出緩沖區(qū)寬度,解決方案是在發(fā)生這種情況時將c重置為零,即開始新的迭代。使用此方法,當(dāng)前迭代的值將覆蓋上一次迭代的值。
本文介紹了一種音樂可視化的方法,它是Processing的眾多應(yīng)用領(lǐng)域之一。討論了如何訪問音樂,通過計算機從音頻數(shù)據(jù)流中獲取信息。介紹了使用Processing音樂可視化支持庫,這個庫基于FT,可以用于音樂頻譜的視覺表現(xiàn)。它提供了一種可逆的方式來檢測音樂的特征和結(jié)構(gòu),從而提供了可視化和音樂創(chuàng)作的新方式。
參考文獻
[1] 列阿斯.Processing語言權(quán)威指南[M].北京:電子工業(yè)出版社,2013:51.
[2] Rao K R,Kim D N,Hwang J J.快速傅里葉變換:算法與應(yīng)用[M].北京:機械工業(yè)出版社,2013:77-78.
作者簡介
陳玨(1972-),男,江蘇省蘇州人;畢業(yè)院校:東南大學(xué),學(xué)歷:本科,中級講師/工程師,現(xiàn)就職單位:蘇州工藝美術(shù)職業(yè)技術(shù)學(xué)院,研究方向:交互設(shè)計。