我的麦克风记录的音频数据是这样的。(ndarray of float)
> print(data)
[-0.00762939 -0.00817871 -0.00714111 ... 0.0265511 0.02484207 0.02377392]
这是我的代码。
while(recording):
frames.append(data)
waveFile = wave.open(WAVE_OUTPUT_FILENAME + "_" + str(COUNT_FILE) + ".wav", 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.wr(b''.join(frames))
waveFile.close()
但当我播放音频时,它变得很糟糕,什么都没有,只有噪音... 如何将其转换为.wav音频文件?
你需要先用结构体来打包你的数据
把你的waveFile.writeframes替换成这个。
data=struct.pack( 'h' * len(frames), *frames )
waveFile.writeframes(data)
也许还可以将你的数据转换为整数,因为我认为wav文件只使用整数值。