I tried to use pyaudio library to record my audio.But after initialising pulse audio server and giving required permissions to termux api it doesn't work.
What steps will reproduce the bug?
Install portaudio version(19.07) from apt and install pyaudio library.Then executing this code
import pyaudio
import wave
chunk = 1024 # Record in chunks of 1024 samples
sample_format = pyaudio.paInt16 # 16 bits per sample
channels = 2
fs = 44100 # Record at 44100 samples per second
seconds = 3
filename = "output.wav"
p = pyaudio.PyAudio() # Create an interface to PortAudio
print('Recording')
stream = p.open(format=sample_format,
channels=channels,
rate=fs,
frames_per_buffer=chunk,
input=True)
frames = [] # Initialize array to store frames
# Store data in chunks for 3 seconds
for i in range(0, int(fs / chunk * seconds)):
data = stream.read(chunk)
frames.append(data)
# Stop and close the stream
stream.stop_stream()
stream.close()
# Terminate the PortAudio interface
p.terminate()
print('Finished recording')
# Save the recorded data as a WAV file
wf = wave.open(filename, 'wb')
wf.setnchannels(channels)
wf.setsampwidth(p.get_sample_size(sample_format))
wf.setframerate(fs)
wf.writeframes(b''.join(frames))
wf.close()
,it throws this error
Traceback (most recent call last): File "/data/data/com.termux/files/home/main1.py", line 15, in <module> stream = p.open(format=sample_format, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/pyaudio/__init__.py", line 639, in open stream = PyAudio.Stream(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/pyaudio/__init__.py", line 441, in __init__ self._stream = pa.open(**arguments) ^^^^^^^^^^^^^^^^^^^^ OSError: [Errno -9996] Invalid input device (no default output device)
Problem description
I tried to use pyaudio library to record my audio.But after initialising pulse audio server and giving required permissions to termux api it doesn't work.
What steps will reproduce the bug?
Install portaudio version(19.07) from apt and install pyaudio library.Then executing this code
,it throws this error
Traceback (most recent call last): File "/data/data/com.termux/files/home/main1.py", line 15, in <module> stream = p.open(format=sample_format, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/pyaudio/__init__.py", line 639, in open stream = PyAudio.Stream(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/pyaudio/__init__.py", line 441, in __init__ self._stream = pa.open(**arguments) ^^^^^^^^^^^^^^^^^^^^ OSError: [Errno -9996] Invalid input device (no default output device)
What is the expected behavior?
It should work without rasing any error
System information