Есть ли способ, которым я могу привести все значения как float32 на CHUNK данных? Я пробовал таким образом, это не дает мне ошибку, но тогда Aubio не может распознать любой шаг. Также я не могу разыграть непосредственно как float32 или он становится слишком чувствительным для FFT, который я использую в другой части программы.
CHUNK = 1024
#need it to be float for pitch, but int for frequencies
#FORMAT = pyaudio.paFloat32
FORMAT = pyaudio.paInt32
CHANNELS = 1
RATE = 44100
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
audioData = stream.read(CHUNK)
pDetection = aubio.pitch("default", CHUNK,
CHUNK, RATE)
#
# Set unit.
pDetection.set_unit("midi")
pDetection.set_silence(-40)
pDetection.set_tolerance(.1)
#trying to change data into float
for i in audioData:
i = np.float32(i)
pitchSamples = np.fromstring(audioData, dtype = aubio.float_type)
#
pitch = pDetection(pitchSamples)[0]