在電腦做人聲移除的方法

5 / 23, 2013 HTML5 , JS , 電腦技巧
註:這篇文章會有很多專有名詞啊,請自己决定要不要看。

可能你在網上聽過一些被移除人聲的音樂,或者你自已曾經嘗試過做人聲移除。你有沒有想過電腦是怎樣做到呢?其實,人聲移除的原理是把屬於人聲的頻率盡可能的減低。(這會牽涉到一些數學,請注意。)

方法一:帶通濾波器
首先,用帶通濾波器把人聲的頻率過濾出來,再把過濾出來的訊號和原先的訊號相減,便能把人聲移除。

方法二:相位取消 (Phase Cancellation)
這假設人聲是只用一個麥克風來錄音,並平均分佈在兩絛聲道上。把左聲道的相位倒轉,並和另一聲道的訊號相加,便能把人聲移除

在這些方法中,相位取消是容易的,只牽涉到基本數學。這裏展出了相位取消的算法:

output[i] = (inputL[i] - inputR[i]) / 2;

(註:output[i]是輸出訊號的樣本,而inputL[i]和inputR[i]則是左右聲道輸入的樣本。)

這方法有一個缺點,相位取消產生的結果是單聲道的。這可以透過結合方法一來解決。網上有很多關於帶通濾波器的文章可以參巧。

你想一個可以在你的網頁瀏覽器上運行的例子?這裡有一個用Web Audio API做的網頁可以試試: