【发布时间】:2017-07-21 13:02:59
【问题描述】:
我有原始二进制 int16 数据,我正在使用
将其转换为 numpy 数组audio = np.fromstring(raw_data, dtype=np.int16)
数据是音频数据。当我将数据转换为 float32 时,音频会失真:
audio = audio.astype(np.float32, order='C')
我正在将音频保存到磁盘以使用 SoundFile 收听:
soundfile.write('out.wav', audio, sample_rate)
如果我直接将音频写入磁盘而不执行astype操作,则不会失真(即);
# no distortion
audio = np.fromstring(raw_data, dtype=np.int16)
soundfile.write('out.wav', audio, sample_rate)
# distortion
audio = np.fromstring(raw_data, dtype=np.int16)
audio = audio.astype(np.float32, order='C')
soundfile.write('out.wav', audio, sample_rate)
这里转换数据类型的正确方法是什么?
【问题讨论】: