Good day,
I'm trying to record my speaker output with Python using PyAudio. Currently, I'm able to record my microphone input and send this over to the 'listener'. What I'm trying to do now is create a loopback, so it will record the output from my speakers. I was able to do this with the 'Stereo Mix' from windows, but since this needs to be cross platform, there should be another way to do this.
Does anyone has some advice on how I could achieve this?
Here is my current code for recording an input stream.
import socket
import pyaudio
import wave
#record
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 40
HOST = '192.168.0.122' # The remote host
PORT = 50007 # The same port as used by the server
recording = True
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
p = pyaudio.PyAudio()
for i in range(0, p.get_device_count()):
print(i, p.get_device_info_by_index(i)['name'])
device_index = int(input('Device index: '))
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK,
input_device_index=device_index)
print("*recording")
frames = []
while recording:
data = stream.read(CHUNK)
frames.append(data)
s.sendall(data)
print("*done recording")
stream.stop_stream()
stream.close()
p.terminate()
s.close()
print("*closed")
Any help would be greatly appreciated!