2016-07-23 14 views
0

我需要製作大量一致的音樂樣本。 採樣率44100的1秒長波,我應該能夠得到一個完全44100個採樣的數組。不幸的是,這不是事實。wav使用avconv時的樣本數量不一致

我的方法如下:

1)產生output.wav,這是1秒長,採樣率44100

avconv -i input.mp3 -ss 00:01:00 -t 00:00:01 -ar 44100 -ac 1 output.wav 

2)I讀取文件,並打印樣品

的數目
meta,song = scipy.io.wavfile.read(path + "/" +file) 
assert meta == 44100 
print(len(song)) 

對於input.mp3的不同選擇,起始位置,我得到不同的數字: 43776, 43776, 44928, 43776, 43776,44928

我的問題是,爲什麼是這樣呢?以及如何更改步驟1以生成一致的數據樣本?

回答

0

avconv不是很精確。應該具有一秒的歌曲片段,實際上具有0.983991秒。

爲了解決這個問題,我們可以使用SOX:

sox input.mp3 -r 44100 -c 1 output.wav --show-progress trim 0 00:01 

襪不支持默認的MP3,所以我必須安裝

sudo apt-get install libsox-fmt-mp3 
相關問題