While working with audio_grabber.py, I noticed that the AudioGrabber class defines the start() method twice.
The second definition overrides the first one, which prevents the original thread initialization logic from ever executing.
I am talking about this part:
Class AudioGrabber:
def start(self):
self.send_thread = threading.Thread(target=self.send_audio)
self.send_thread.start()
...
def start(self):
self.stream.start_stream()
I think this is an unintended behavior and could cause confusion to understand the audio sending flow.