Я обращаюсь за помощью к проблеме, которую я до сих пор не смог решить ... Я использую модель малины Pi 3 B, на которой я 'подключили звуковую карту USB Focusrite Scarlett 2i2, на которой подключен микрофон XLR. Например, все работает отлично на Audacity. Он может записывать и/или воспроизводить звук. Теперь я хотел бы использовать эту настройку для записи потока в Python и анализа его с помощью функции FFT, чтобы получить оценку в реальном времени высоты звука, который я слушаю. Когда я запускаю код с Python 2.7 на малина, она работает в течение 4 Ou 5 секунд, затем он останавливается за исключением следующего:python2.7 on Raspberry Pi 3 - Pyaudio Вход переполнен
IOError: [Errno Input overflowed] -9981
Затем он выходит из строя консоли питона.
Пожалуйста, обратите внимание, что этот код работает отлично на базовом компьютере, но мне нужно работать на PI3 ...
Интересно, если бы не была нить, вызывающая проблемы с переполнением данных, поэтому я вернулся к очень базовому коду, выпущенному Pyaudio, чтобы «проверить» настройку. Поэтому я запустил код ниже и обнаружил, что сталкиваюсь с той же проблемой, с той же ошибкой.
import pyaudio
import wave
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
print("* recording")
frames = []
for i in range(0, int(RATE/CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print("* done recording")
stream.stop_stream()
stream.close()
p.terminate()
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()
Но у меня была идея, чтобы уменьшить размер порции, и я обнаружил, после нескольких прогонов, что выше 1010, появилось исключение.
Так что мой вопрос очень прост, кто-то знает, откуда это взялось? Почему я не могу иметь размер CHUNK 1024, если я хочу или должен? и почему он работает правильно на компьютере, а не на Pi? Есть ли решение?
Большое спасибо заранее, Edouard
http://stackoverflow.com/questions/10733903/pyaudio-input-overflowed - проверьте формат ввода (скорость и формат), и если это не так, код слишком медленный, чтобы обрабатывать данные. – Caramiriel