I was just doing research and landed on this exact page last night! I was wondering if anyone knows how someone could mic a room and record audio from only a specific area. For my use case I want to record a couch so I can watch TV with my friends online and remove their speech + show noise from the audio. Setting up some array of mics and using them for beam steering would probably work but there's not a lot of examples I could find on GitHub with code that works in real time.
You might look into OBS and/or VoiceMeeter to see how streamers selectively route audio while livestreaming/recording video/audio streams.
Loud show noise and your online friends' nearby audio is going to be reflected around the room as well as off of your bodies.
What you want isn't microphone or beamforming tech, it's echo cancellation the same as every videoconferencing software uses.
You just need to feed the show audio and friend audio in, and apply echo cancellation to each.
From the article "The simplest method of beamforming is delay-and-sum (DAS)". Measure distance from a point (couch) to each microphone, delay the signal in time domain by the time the sound takes to travel from point (couch) to microphone, and add up the signals. Pretty trivial. Basically you want the microphones receive the couch signal at the same time, even though they are different distances away.
Make sure there is enough variation in microphone distances for this method to be effective.