Я новичок в python и Raspberry pi. Я участвую в проекте, где мне нужно встроить поток бит в wav-файл. Сначала я открыл wav-файл, и это двухканальный 16-битный wav-файл. Чтобы изменить значения выборок, я должен преобразовать эти значения выборки в float. Я попробовал код. Но когда я запускаю модуль, он дает ошибки, поскольку «name struct» не определяется. А также здесь я попытался преобразовать данные в целые числа, так как я не знаю, как конвертировать в float. Если кто-то может помочь мне исправить эту программу или предложить другой код, тогда это будет большой помощью. Спасибо.Как преобразовать 16-битные данные PCM в float в python?
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
как это сделать? мне нужно вводить структуру импорта? Но я включил ее из struct.is это неправильно? скажите мне, пожалуйста, –
Либо «из строки импорта foo», то вызывают 'bar (...)' или 'import foo' и вызывают' foo.bar (...) ', но не смешиваются и не сопоставляются. – jonrsharpe