2008-09-12 102 views
11

我正在爲大學音樂專業申請工作。我正在考慮的一項功能是在不改變音調的情況下減慢音樂播放速度。我已經看到這在商業軟件中完成,但無法找到任何類似這樣的庫或開源應用程序。減慢音頻文件的播放而不改變其音調?

  1. 那裏有圖書館嗎?
  2. 這怎麼可能從頭開始從各種文件格式?

注:我在java工作,但我不反對改變語言。

回答

10

時間緊張很難。你越慢或加快聲音越多,你得到的文物。如果你想知道他們聽起來像聽Fat Boy Slim的「Rockafeller Skank」。有很多方法可以做到這一點,都有自己的優勢和弱點。數學可能變得非常複雜。這就是爲什麼有這麼多專有算法。

這個頁面解釋的事情比我可以清楚一點,並鏈接到Dirac庫。 http://www.dspdimension.com/admin/time-pitch-overview/

我發現這個鏈接,java代碼做變調/ timestretching http://www.adetorres.com/keychanger/KeyChangerReadme.html

+0

「恐怖靈魂兄弟」 是的,當然, 「該Rockafeller Skank」) http://en.wikipedia.org/wiki/The_Rockafeller_Skank – moobaa 2008-09-13 03:13:54

+1

@moobaa:DOH ..愚蠢的我..定了!希望沒有人注意到:-) – Mendelt 2008-09-14 17:09:12

4

我使用soundstretch加速播客這是工作得很好,沒有嘗試過音樂壽啊。

2

這樣做的一種方法是將採樣率加倍而不改變源的採樣率。 (低質量的例子,但易於實現注意:你也可以降低採樣率)。

查看與相位聲碼器相關的任何數學運算。

另一種常見的方法是創建一個fft bin的數組,用於存儲您的聲音的預定時間間隔的數據。然後,您可以選擇在頻道中迭代的速度,並且只要您選擇,您就可以重新合成該音頻數據,從而使您可以隨意伸出一小段聲音。

1

大膽開箱即用,它是免費的。這是幾個MP3播放器的插件,也是免費的。顯然,使用mp3很容易,因爲它已經在頻域中進行了編碼。