這兩天在研究Web Audio API,這是個有趣的東西,但一般看到的應用都是在純音樂的創作上,比如線上五線譜,線上編曲等等的,因為另一個原因,所以我想研究的是線上剪切聲音檔的功能;但是最後發現,剪切聲音檔需要很強的運算能力,直接存成wav檔之類的還可以,但是要再壓線成其它的格式,就不一定吃得消了;雖然沒有辦法如願做出想要的功能,但也順便玩了一下視覺化的功能,做出來的成果還滿有趣的。
我做了兩個實作的成果,一個是可以直接開本機上的聲音檔出來播放,然後把聲音的頻率轉成動畫圖象來顯示,圖像的部份使用的是canvas的功能來即時繪製;將取得的音源資料做一些變化後,就可以產生不同的動態效果,github上也有一些專案是在做視覺化的。
API取得的資料有兩類,一類是顯示音源由那些頻率組合而成的,一類則是當下音源的能量組合,利用這兩類資料的數據特性就可以變化出各種隨音樂進行的動態出來。
另一個實作是對整個聲音檔的分析,這個功能原意要是來找出聲音檔的前後空白(靜音)的部份,方便做聲音檔的剪裁或標註,這個功能就不需要播放出聲音檔來截取資料,程式會以瀏灠器可以承受的速度儘快把資料送進一個我們自己寫的處理器中對資料進行分析。
我的實作則是提供可以一次上傳多個檔案並對檔案分析的功能,會在畫面上列出各個聲音檔及該檔案的整體音頻狀況,可以大概知道音頻是快的慢的,吵的還是柔和的,一樣提供直接讀取本機檔案的功能,原本有想做遠端檔案分析的,但我估計加上網路傳輸因素,會有很多狀況要處理,就先算了。
留言