2013-04-23 85 views
1

我試圖從聲音文件中提取信息,以便在我正在處理的視頻分類算法中使用它。fft在matlab中音頻文件的樣本

我的問題是,我不知道如何在Matlab中完全使用音頻文件。

下面是我需要完成:

  • 打開音頻文件,並得到採樣率/頻率
  • 我需要2秒的窗口上工作,所以我不得不遍歷文件並每2秒鐘作爲一個窗口,然後在每個窗口上執行ftt(快速傅里葉變換)。

之後,它是輪到我使用這些值做我想做

任何幫助,將不勝感激

感謝。

+0

你計劃開兩個第二個樣本?否則,您最終可能會出現工件。 – Doresoom 2013-04-23 19:20:31

回答

3

以下代碼可能只會給你一些想法。您可能需要確定另一個FFT大小,窗口函數像海明等

要讀取wav文件:

[data, Fs] = wavread('path.wav'); 

拆分到2秒的窗口和獲取FFT:

frameFFT = []; 
timeStep = Fs*2; 
for i=1:timeStep:length(data)-timeStep 
    frameFFT = [frameFFT; fft(data(i:i+timeStep-1),1024)]; 
end 
+0

我正在使用mp3文件,所以我不能使用wavread,我試過data = dsp。 AudioFileReader( 「...」);但長度(數據)是一個,我不知道爲什麼它是這樣的 – Maystro 2013-04-23 20:33:13

+0

另外我用data = audioread(「..」);但數據似乎不是一個矢量,因爲我檢查了它的大小,它是[4186368 2],有關它的任何想法? – Maystro 2013-04-23 20:38:28

+1

@Maystro,音頻文件可能是2聲道,只能將第一列作爲輸入。 – 2013-04-24 04:52:53