我想使用python wave模块更改某个WAV音频文件的播放速度(增加或减少)。
我试过下面的事情:
但它没有成功。
请建议。
先谢谢,
答案 0 :(得分:8)
WOW!
如果你在增加或减少速度时改变音高,你可以改变采样率!
使用python可以非常简单:
import wave
CHANNELS = 1
swidth = 2
Change_RATE = 2
spf = wave.open('VOZ.wav', 'rb')
RATE=spf.getframerate()
signal = spf.readframes(-1)
wf = wave.open('changed.wav', 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(swidth)
wf.setframerate(RATE*Change_RATE)
wf.writeframes(signal)
wf.close()
增加或减少变量Change_RATE
!
现在如果你需要保持音高不变,你需要做同样类型的重叠加法!
答案 1 :(得分:1)
如果更改采样频率,则不会影响可录制的播放速度。 您可以使用SoX Sound eXchange, the Swiss Army knife of audio manipulation
来解决这个问题python的pySonic库看一下Song对象的UserSpeed方法。 pySonic Python wrapper of FMOD Sound library