2024-06-10 08:49:49 发布
网友
我正在尝试将32位浮点采样波形文件转换为16位整数波形文件。在
我想从-1.414到1.414的超声波正弦波生成16位整数WAV文件。在SciPy.io.wavfile中,根据我生成的类型数组,输出格式是固定的。但是我把我的32位浮点格式数组改为16位,方法是将32767乘以casting得到整数格式值,但是结果频率一点都不相似。在
有没有办法用SciPy库将my从32位浮点改为16位PCM?在
不确定是否使用SciPy,但可以很容易地将数据转换为16位整数,然后使用任何音频包将其写入wav文件。在
SciPy
wav
将数据除以1.414,使其在范围[-1,1]内,然后乘以32767,使其在int16变量的范围内。然后使用numpy.astype()对其进行强制转换。解决方案如下:
numpy.astype()
import numpy as np float32_data /=1.414 float32_data *= 32767 int16_data = np.astype(np.int16)
不确定是否使用
SciPy
,但可以很容易地将数据转换为16位整数,然后使用任何音频包将其写入wav
文件。在将数据除以1.414,使其在范围[-1,1]内,然后乘以32767,使其在int16变量的范围内。然后使用
numpy.astype()
对其进行强制转换。解决方案如下:相关问题 更多 >
编程相关推荐