如何使用Python将wav文件内容获取到数组中,以便剪切所需片段并转换回wav格式?
我想知道怎么把wav文件里的内容放到一个数组里,这样我就可以剪切需要的部分,然后再把它转换回wav格式,使用Python来实现。我的问题跟之前在这个网站上看到的“ROMANs”的问题类似。
简单来说,我想把不同的wav文件的部分合并成一个wav文件。有没有其他的方法,不用把内容放到数组里,然后剪切、合并,再转换回来?如果有,请告诉我。
补充说明:
我更喜欢把wav文件的内容解压到一个数组里,然后通过剪切需要的声音段来编辑,因为我在做语音处理,我觉得这样后续提升声音质量会更简单。
有没有人能给我建议一下这个方法?请帮帮我。
提前谢谢大家。
1 个回答
7
有一些库可以用来处理媒体文件,比如pymedia。不过,如果你只需要处理简单的WAV文件,其实可以直接使用Python自带的wave模块。
import wave
win= wave.open('sample.wav', 'rb')
wout= wave.open('segment.wav', 'wb')
t0, t1= 1.0, 2.0 # cut audio between one and two seconds
s0, s1= int(t0*win.getframerate()), int(t1*win.getframerate())
win.readframes(s0) # discard
frames= win.readframes(s1-s0)
wout.setparams(win.getparams())
wout.writeframes(frames)
win.close()
wout.close()