gpt4 book ai didi

python - 如何在 python 中将 16 位 PCM 数据转换为 float ?

转载 作者:行者123 更新时间:2023-12-03 02:07:53 25 4
gpt4 key购买 nike

我是 python 和树莓派的新手。我参与了一个项目,我必须将位流嵌入到 wav 文件中。起初我打开 wav 文件,它是一个 2 channel 、16 位 wav 文件。为了更改样本值,我应该将这些样本值转换为浮点数。我尝试了一个代码。但是当我运行模块时,它会给出错误,因为“名称结构”没有定义。而且在这里我尝试将数据转换为整数,因为我不知道如何转换为浮点数。如果有人可以帮助我更正这个程序或建议其他代码,那么这将是一个很大的帮助。谢谢你。

from struct import unpack
import numpy as np
import wave

wavfile = wave.open('/home/pi/desktop/codes/mysong.wav','r')
number_of_frames = wavfile.getnframes()
no_channels = wavfile.getnchannels()
raw_data = wavfile.readframes(number_of_frames)

total_samples = number_of_frames * no_channels
fmt = "%ih" % total_samples
integer_data = struct.unpack(fmt,raw_data)

最佳答案

正如@jonrsharpe 所说,您要么:

# if using from ... import ...
from struct import unpack
...
# then change this to
integer_data = unpack(fmt,raw_data)

...

# if using import ...
import struct
...
# then this will work fine
integer_data = struct.unpack(fmt,raw_data)

但不要将进口商品混在一起。

关于python - 如何在 python 中将 16 位 PCM 数据转换为 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26654855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com