在python中拆分wav文件

2024-05-19 16:11:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Python以编程方式拆分wav文件。根据stackoverflow的提示以及Python wave模块的文档,我正在执行以下操作

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()

我迭代了许多不同的开始和结束值,并以这种方式从原始文件中提取音频块。奇怪的是,这项技术对某些块非常有效,而对其他块则产生垃圾白噪声。此外,没有明显的模式,开始和结束位置产生白噪声,只是它发生一致的输入文件。

以前有人经历过这种行为吗?或者知道我做错了什么?我们欢迎您就如何更好地以编程方式分割音频文件提出建议。

提前谢谢。


Tags: 文件编程方式openfloatwavestartend