我已经使用了scipy.io.wavfile的write函数来生成一个.wav文件。
scaled = np.int16(lol/np.max(np.abs(lol))*32767)
write("my/path",44100,scaled)
在这里,我使用上面的函数对数组名
lol
进行规范化。现在,在写完这个.wav
文件之后,当我在另一个代码中读取它时,它给了我scaled
数组(Normalized lol
array)。但是我想要的是lol
数组,这是我之前用来生成声音文件的原始数组。因此,我尝试编写上述函数的反函数来获取原始的
lol
数组,但无法获得任何有用的结果。通过写逆,我认为这是不可能的,因为原始函数包含np.max()
和np.abs()
。那么如何从该函数获取原始数组呢?
最佳答案
documentation列出您可以直接使用32位浮点数据。读取后不需要任何转换。有关lol
类型的更多信息将有助于回答您需要浮点还是定点。
关于python - 将其标准化以写入.wav文件后,无法获取原始的numpy数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43250953/