由于wav文件基本上是原始音频数据,因此如果没有“原始音频处理”,您将无法更改音高.
这是你能做的.
您将需要wave(标准库)和numpy模块.
import wave
import numpy as np
打开文件.
wr = wave.open('input.wav', 'r')
# Set the parameters for the output file.
par = list(wr.getparams())
par[3] = 0 # The number of samples will be set by writeframes.
par = tuple(par)
ww = wave.open('pitch1.wav', 'w')
ww.setparams(par)
声音应该在很短的时间内处理.这减少了混响.尝试将fr设置为1;你会听到恼人的回声.
fr = 20
sz = wr.getframerate()//fr # Read and process 1/fr second at a time.
# A larger number for fr means less reverb.
c = int(wr.getnframes()/sz) # count of the whole file
shift = 100//fr # shifting 100 Hz
for num in range(c):
读取数据,将其分为左右声道(假设为立体声WAV文件).
da = np.fromstring(wr.readframes(sz), dtype=np.int16)</