I'm currently using an Odroid N2+ as a temporary desktop, while working from home, during the times when my regular desk is taken over by my kids doing homework. The alternative was using the laptop in the kitchen, but the chairs were uncomfortable for long term use, so I chose to set up an N2+ as a desktop (Ubuntu 22.04, Kernel 6.1), connected to the bedroom TV, with a wireless mouse/keyboard. With this setup I can operate it "remotely", 4m away, from the bed.
The N2+ has no problems running my work apps - mostly consisting of ssh, VSCodium, XPRA and xfreerdp. But there is one thing that I need and is problematic - Teams. I can connect to Teams via Chromium, share the desktop and participate, but the N2 doesn't have a microphone, so I need one that works 4m away.
Forwarding Android microphone over the network to a PC is nothing new (e.g. WoMIC), but finding a client app that works under Linux and especially under something else than x86_64, is more of a challenge.
Thankfully, after searching for a while, I found a quick and easy way of forwarding microphone on demand, over wifi (or USB tethering if needed) to an ARM64 linux system (could be armhf as well or some other architecture). The answer: pulseaudio-virtualmic
It's a minimal script that allows you to pipe audio content (from a file or a stream) as a virtual microphone into pulseaudio.
Installation is straight-forward:
$ sudo wget -O /usr/local/bin/virtualmic https://raw.githubusercontent.com/MatthiasCoppens/pulseaudio-virtualmic/master/virtualmic
$ sudo chmod a+x /usr/local/bin/virtualmic
$ sudo apt-get install ffmpeg
On the Android side you can install IP Webcam and enable only Audio streaming under Misc -> Audio mode. Once you start the server, you can connect virtualmic to your Android microphone (use the addresses shown on your phone screen):
$ virtualmic http://192.168.1.35:8080/audio.opus
Now, either set the new microphone as a default source in Pulseaudio Volume Control, or directly in the application, if it supports it. Note, that the microphone name will look strange, because it has a temporary pipe in its name:
In terms of latency - it was unnoticeable for me, with the N2+ being connected via ethernet, and the Android phone over 5GHz Wifi.
Comments