I dual boot Windows and Ubuntu. Since I don't use any microphone on my desktop, I started using an app named "WO Mic" to connect my Android phone's microphone to my desktop in Windows. A good alternative, right?

Well, sadly, WO Mic is not supported on any Linux-based OS, so I would like to know if there are any alternatives or any app that could use my phone as microphone on Ubuntu over WiFi or USB. (but preferably wifi).


Is this the program? Have you tried downloading the client/driver and following the instructions for Ubuntu?

  1. Load driver module

    $ sudo insmod wo_snd_capture-x86.ko
  2. Connect from client

    • Conenct by Wifi. You can find the IP address on WO Mic app UI.

      $ micclient-ubuntu-x86 -t Wifi
    • Connect by Bluetooth.

      $ micclient-ubuntu-x86 -t Bluetooth xx:xx:xx:xx:xx:xx

      xx:xx:xx:xx:xx:xx represents phone Bluetooth address. You can query it on your phone: Settings -> About phone -> Status -> Bluetooth address.

The above examples are for 32-bit Ubuntu. If you are using 64-bit, replace client and driver file name to xxx-x86_64 ones as downloaded.

  • 1
    I got Please first load ALSA snd-aloop., so I needed to do: sudo modprobe snd-aloop and then I had to run the micclient-ubuntu-x86 as root (using sudo). And then it worked, yay. – Amichai Schreiber Jul 15 '17 at 7:09
  • This does not work. Only silence is recorded from the loopback device... – Calmarius Feb 1 '18 at 20:52

Mmmm I tried that app before but it does not work for me, so I recommend this method:

  • First install ip camera on the phone, then install pulseaudio, when you have that done, open ipcamera and start the server on you phone, make sure that you pc is connected on the same network.
  • Open Chrome or Firefox and type the IP address that ipcamera provides you (the ip will show in the app).
  • In the browser click on audio player and choose HTML5, and make sure that you hear something.
  • Open pulseaudio and go to the Playback tab, then click and show and select All Streams. You will see the chrome or firefox application playing the microphone.
  • On the application section select Lookback for Chrome or Firefox; that will redirect the audio from you phone to the microphone channel, you can do the same but using VLC and deal better with issues like the lag.

I use Mumble (desktop client) + Murmur (as LAN server) + Plumble (Android/iOS client). This results in the lowest latency I've ever achieved (sounds almost like normal loopback, theoretically 7ms WiFi delay + 2x 10ms codec delay = 27 ms).


Fragments of README (rev 59091372580f481320224532aeaaea84c9c07848)

Set all 3 programs to use best quality and minimal latency. Set mobile client to always streaming. Copy mic_over_mumble anywhere - it will use ~/.mic_over_Mumble as configuration directory. Run mic_over_mumble, then connect your mobile device to LAN server. Then, set up your programs to use monitor of Mumble as input device. E.g. in OBS:

Screenshot of OBS configuration

Copy of mic_over_mumble script (rev 59091372580f481320224532aeaaea84c9c07848)

set -e
# PAID = PulseAudio ID
# ID = PID / process ID

function main () {
    if [ ! -e ~/.mic_over_Mumble ]; then
        mkdir ~/.mic_over_Mumble
    cd ~/.mic_over_Mumble

    rm murmur.ini | true
    echo "bonjour=true" >> murmur.ini
    echo "bandwidth=130000" >> murmur.ini

    if [ ! -e ./initdone ]; then
        echo "You will need to configure Mumble client to use the lowest possible latency."
        echo "We will start Mumble now. Please complete setup wizard and go to settings to increase quality and decrease latency."
        echo "Also, mute your microphone (if you have one) in Mumble."
        echo "Then close Mumble."
        touch ./initdone

    echo "Starting Mumble server (murmurd)..."
    sleep 5
    echo "Starting Mumble client..."
    sleep 5
    echo "Fetching PulseAudio configuration..."

    echo "Changing PulseAudio configuration..."
    sleep 3

    pacmd move-sink-input $MUMBLE_CLIENT_PAID $SINK_PAID

    echo "Done. Please use pavucontrol to ensure everything works."
    echo "Press Return to shut down..."
    read -n1 -s
    echo "Shutting down..."

    echo "Stopping Mumble client..."
    kill -KILL $MUMBLE_CLIENT_ID | true
    sleep 2
    echo "Stopping Mumble server..."
    kill -KILL $MUMBLE_SERVER_ID | true
    echo "Restoring PulseAudio configuration..."
    pactl unload-module $SINK_MODULE_PAID

function run_mumble_client_wizard () {
    mumble >/dev/null 2&>1

function run_mumble_client_bg () {
    mumble $MUMBLE_URL >/dev/null 2&>1 &
    echo $!

function run_mumble_server_bg () {
    murmurd -ini ./murmur.ini &
    echo $!

function get_mumble_client_paid () {
    pacmd list-sink-inputs |
        egrep "index: |application.name = " |
        cut_every_second_newline |
        egrep Mumble |

function add_sink () {
    pactl load-module \
        module-null-sink \
        sink_name="Loopback_of_Mumble" \

function get_sink_paid () {
    pacmd list-sinks |
        egrep "index: |name: " |
        cut_every_second_newline |
        egrep Loopback |

# https://serverfault.com/a/375098/449626
function cut_every_second_newline () {
    awk 'ORS=NR%2?" ":"\n"'

function print_second_column () {
    awk '{print $2}'


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.