2016年12月8日

利用BORIS動物行為研究軟體,分析影片聲音製作頻譜圖

我在Methods in Ecology and Evolution這期刊的臉書社團裡,看到一個軟體的發表,發現得以解決我一直以來想做的一項研究。

我最近做定點攝影的紀錄,拿來分析天氣、車輛感覺非常有趣,而我還想拿這影片來做聲音分析,比方說看看哪種車子經過,會發出怎樣的聲音,當可以辨識出這些聲音之後,就可以用機器分類這些聲音與事件的關係,藉由聲音的分析去反推什麼現象發生了,這也就是被動聲學監測(Passive acoustic monitoring)的研究範疇。

詳情可以參考林子皓博士的文章被動式聲學監測

簡單易用的分析軟體是Audactiy,可以直接讀取影片檔做頻譜圖和頻譜分析。
開啟程式以後,直接選取影片檔就可以看到影片中的聲音波型變化



在波型圖左方有個向下的小箭頭,點選後可以選擇頻譜圖,就可以呈現這段時間的頻譜

如果要進行頻譜分析,要先選擇分析的聲音範圍之後,選擇「分析/描繪頻譜」


看起來是滿足部份需求了,但是我想要同時看對照影片和聲音,怎麼做呢?BORIS這個軟體可以作到這個功能。

BORIS軟體是Behavioral Observation Research Interactive Software的簡稱(動物行為研究互動式軟體)

以前我大學時修動物行為學的時候,要選定一種動物進行動物行為觀察,當時我選的動物是木柵動物園的玉頸鴉,我們得觀察並紀錄他在不同的時間下的表現。當時錄影設備可沒那麼好,我們得扎扎實實地準備錶和紀錄紙,盯著牠看,把所有牠表現出來的行為和時間都整理在表上。

欸,仔細一想,很像是我們做教專要做的教學觀察啊,根本就一樣啊,還要紀錄老師的動線、時間,學生的反應之類的,根本就是動物行為學觀察的活動-靈長類成獸和幼獸群的互動觀察。

因為盯著看太累了,後來就發展可以用錄影觀察法,而BORIS就是用來搭配影片來紀錄觀察的軟體,你可以使用兩台裝置同時對觀察的對象錄影,再用這個BORIS播放並紀錄。

流程是這樣,先在BORIS設定好某次觀察專案的各種行為的編碼,吃東西、搖籠子、走動、問問題、鼓勵學生(等等,後面幾個是教學觀察靈長類成獸在幹嘛的,不要混進來)

設定好這些編碼以後,可以設定快速鍵,當你利用BORIS看這些動物影片時,只要按下快速鍵就可以快速進行紀錄,它可以幫你紀錄哪個時間發生了什麼行為,並且協助你作事後分析圖表。

這套軟體還能夠將影片中的聲音做頻譜圖,並且和影片做連動。也就是說,假設你錄製的是連續三小時的影片,想要看某種動物的行為,而你想要特別去觀察牠鳴叫前後的行為變化。如果是觀看影片來做這件事情,你就只能眼神死的盯著影片聽著聲音,很難利用快轉去找哪時候鳴叫。

但是如果可以將影片直接做頻譜圖出來,我們用視覺搜尋頻譜圖上的特定顏色資訊,就可以辨識哪時候有鳴叫聲了,這不是很棒嗎!

這個截圖是我用來分析我之前當老鼠訓練師的影片,直接產出的頻譜圖,我就可以用「看」的知道哪時候有click的聲音了,然後再去看那前後的影片片段發生的事情。




BORIS還有一項很棒的優點,在拍攝觀察影片的時候,有時候是定時攝影,影片就是一分鐘或十分鐘一個影片片段,有時是動作偵測攝影,目標出現動作才開始錄影。一次觀察中,這些影片動輒就是幾十個、幾百個檔案。BORIS可以將這些影片檔案合併在一起無縫播放紀錄,這並不是做了實際的影片合併,而是在播放的時候接續播放。

而紀錄時也可以將影片的時間軸延續或補償調整,例如影片實際上是從上午九點,每一分鐘拍攝一個影片,一共拍攝了60個影片。那麼在利用BORIS播放的時候,可以直接設定該影片的offset就是從上午九點紀錄,這樣當你在做編碼紀錄的時候,就可以產出實際時間的紀錄圖表。(顯示出上午九點十分做了什麼,九點三十分做了什麼)

以下就是針對聲音分析的操作流程影片








BORIS這套軟體是以PYTHON3開發的,是跨平台的軟體,在其網站上可以下載
http://www.boris.unito.it/?page=home

不過for linux的deb是64位元的,我沒法子用,所以是下載原始碼自己修改後執行。