2012-03-07 31 views
8

我需要一個音頻信號,並從中提取重疊的音頻幀。然後我需要將這些數據轉換爲頻率數據(FFT填充/像頻譜圖)並分析頻率信息。例如,如果我有一個1分鐘的mp3文件,我想將文件分割成較小的文件,從00:00.000到00:03.000,從00:00.010到00:03.010。然後我需要查看每個子文件的頻率分解。好的聲音庫?

哪些編程語言具有良好的音頻工具,可以幫助我做到這一點?有我可以使用的Linux命令行工具嗎? Node.js(yeah right)或Haskell的獎勵點,我最熟悉的。

+0

在Python中,我用Numpy成功使用了[Audiolab](http://www.ar.media.kyoto-u.ac.jp/members/david/softwares/audiolab/sphinx/index.html)。 – Vortico 2012-03-07 18:22:57

+0

我也會使用Python/Numpy。如果你想處理mp3文件,你需要一個庫來解碼它們,比如ffmpeg。您可以使用子進程調用從python調用ffmpeg。 – TJD 2012-03-07 18:34:47

+0

關於node.js的音頻庫有一些討論,但我不知道任何成熟的東西。查看[關於郵件列表的此次討論](http://groups.google.com/group/nodejs/browse_thread/thread/5b62789562697956)獲取入口點。我在想Python。 – 2012-03-07 18:43:31

回答

2

哈斯克爾:

http://hackage.haskell.org/package/hsndfile。然後主要是數學,我想可以用hmatrix和soforth。

+0

我實際上在玩python和scipy,但沒有一個人把他們放在答案:) TY!我可能會嘗試一下Haskell的版本,但使我的大腦中的FFT功能損害 – 2012-03-08 14:28:55

+0

注:libsndfile(庫被hsndfile包裹)不帶MP3工作。 HTTP:// WWW。mega-nerd.com/libsndfile/FAQ.html#Q020 – 2013-08-19 09:54:51

3

MATLAB。

GNU Octave是免費的八九不離十克隆。

+0

哇matlab很貴。感謝您的選擇。 – 2012-03-08 00:33:14

+0

@SeanClarkHess:比較貴,老兄?編寫和調試所有代碼需要多少費用?另外,如果你是全職學生,那麼Matlab上的學生折扣會非常好,你必須是一個完全的白癡才能獲得它。 (2003年,我做了進修的工作。我打了高校計算機商店微軟捆綁。我看到學生Matlab的版本。我花了零秒來決定說「給我其中的一個,也。」 – 2012-03-08 01:52:34

+0

相比免費。我正在爲我的創業準備一個關於這個主題的內部演示文稿,所以,商業授權,我絕對不會將它用於生產代碼,只是爲了演示,我不熟悉matlab,而不是使用普通舊代碼,所以它可能不是快很多對我來說,我需要一個「只是玩弄」許可證Matlab的:) – 2012-03-08 03:25:35

1

您考慮過SuperCollider嗎?它是一種功能全面的語言,與其他語言的大多數庫相比,它具有更多的聲音處理功能。