Python – 将数组浮动音频数据转换为wav文件。

我的麦克风记录的音频数据是这样的。(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文件只使用整数值。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

评估 "true && {}"是否涉及类型强制?

2022-5-13 14:00:23

解决方案

如何将Vergen的版本信息传递给StructOpt?

2022-5-13 14:00:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索