8
我想在Python中以編程方式拆分wav文件。基於從計算器以及從Python波組件文件的提示,我從原始文件做音頻以下拆分python中的wav文件
import wave
origAudio = wave.open('inputFile.wav','r')
frameRate = origAudio.getframerate()
nChannels = origAudio.getnchannels()
sampWidth = origAudio.getsampwidth()
start = float(someStartVal)
end = float(someEndVal)
origAudio.setpos(start*frameRate)
chunkData = origAudio.readframes(int((end-start)*frameRate))
chunkAudio = wave.open('outputFile.wav','w')
chunkAudio.setnchannels(nChannels)
chunkAudio.setsampwidth(sampWidth)
chunkAudio.setframerate(frameRate)
chunkAudio.writeframes(chunkData)
chunkAudio.close()
我通過一些不同的起始點和終止點的迭代,並提取塊這種方式。奇怪的是,這種技術對於某些塊很好地工作,併爲其他塊產生垃圾白噪聲。此外,沒有明顯的開始和結束位置產生白噪聲的模式,只是它始終發生在輸入文件中。
任何人都曾經歷過這種行爲?或者知道我在做什麼錯了?歡迎以編程方式更好地分割音頻文件的建議。
在此先感謝。
這可能與'start * frameRate'在調用'setpos'時是一個浮點數有關。也許在'readframes'之後,你應該使用'tell'來找到文件指針的當前位置,而不是... – unutbu 2013-03-22 22:37:25
arrgh!愚蠢的我......謝謝。固定它:) – user13321 2013-03-22 23:10:29
當我使用tell來代替setpos時,我可以得到這個錯誤:tell()需要1個位置參數,但是2個被給出 – 2017-01-14 11:01:14