Ошибка в PyAudio
Ubuntu 22.04. Интерпретатор - IDLE (мне так удобнее). PyAudio 0.2.13 (пробовал также на 0.2.11). PyAudio импортируется без ошибок. Код проверял на python 3.7.16 и python 3.10.6. На python 3.7 код работает без ошибок. В python 3.10 ошибка:
Traceback (most recent call last):
File "/usr/lib/python3.10/idlelib/run.py", line 578, in runcode
exec(code, self.locals)
File "<pyshell#1>", line 24, in <module>
File "/usr/lib/python3/dist-packages/pyaudio.py", line 585, in write
pa.write_stream(self._stream, frames, num_frames,
SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
Вот код, который проигрывает звук микрофона:
import pyaudio
chunk_size = 1024
audio_format = pyaudio.paInt16
channels = 1
rate = 44100
p = pyaudio.PyAudio()
stream_in = p.open(format=audio_format,
channels=channels,
rate=rate,
input=True,
frames_per_buffer=chunk_size)
stream_out = p.open(format=audio_format,
channels=channels,
rate=rate,
output=True,
frames_per_buffer=chunk_size)
while True:
data = stream_in.read(chunk_size)
stream_out.write(data)
P.S. 1. Пробовал перед импортированием добавлять (не помогло):
#define PY_SSIZE_T_CLEAN
import pyaudio
- Пробовал указывать (не помогло)
stream = p.open(format=pyaudio.paFloat32,
channels=1,
rate=44100,
output=True)