我正在一个小项目中,记录一个 .wav 文件,然后在Python中使用 wave 读取其框架。
因此,我尝试实现的是获取帧的数组/列表,将每个帧乘以2,然后创建一个新的 .wav 文件或更改实际的文件。
因此,在线阅读Wave文件并使用 .readframes()获取帧的网上有很多不错的帖子,我得到的是 ndarray 。我使用以下代码行获取每一帧:
(struct.unpack("<h",frame[i]))[0]
问题是,一旦我获得列表中的数据并将其相乘..是否可以创建一个新的wave文件或直接将其值更新为实际值?
要读取文件的代码:
filename="/path/to/file/file.wav"
rfile = wave.open(filename, 'r')
framesTmp= rfile.readframes(-1)
frames= np.fromstring(signalTmp, 'Int16')
#get list of frames
data=[]
for i in range(0,len(signal)-1):
data.append((struct.unpack("<h",signal[i]))[0]*2)
rfile.close()