我正在尝试将我的32位浮点采样WAVE文件转换为16位整数WAVE文件。
我想从超声波正弦波生成16位整数WAV文件,范围从-1.414到1.414。在SciPy.io.wavfile中,输出格式根据我生成的类型数组而定。但是我通过将'32767'与转换相乘来将我的32位浮点格式数组更改为16位以获得整数格式值,但结果频率根本不相似。
有没有办法使用SciPy库将我的32位浮点数改为16位?
答案 0 :(得分:0)
不确定为此使用SciPy
,但是您可以轻松地将数据转换为16位整数,然后使用您喜欢的音频包将其写入wav
文件。
将数据除以1.414,以使其在[-1,1]范围内,然后将其乘以32767,以使其在int16变量范围内。然后使用numpy.astype()
进行投射。解决方案如下所示:
import numpy as np
float32_data /=1.414
float32_data *= 32767
int16_data = np.astype(np.int16)