Usa il telefono come microfono in Linux


12

Doppio avvio di Windows e Ubuntu. Poiché non utilizzo alcun microfono sul desktop, ho iniziato a utilizzare un'app denominata "WO Mic" per collegare il microfono del mio telefono Android al desktop in Windows. Una buona alternativa, vero?

Beh, purtroppo, WO Mic non è supportato su nessun sistema operativo basato su Linux, quindi vorrei sapere se ci sono alternative o app che potrebbero usare il mio telefono come microfono su Ubuntu su WiFi o USB. (ma preferibilmente wifi).

Risposte:


5

È questo il programma? Hai provato a scaricare il client / driver e seguendo le istruzioni per Ubuntu?

  1. Carica il modulo driver

    $ sudo insmod wo_snd_capture-x86.ko
    
  2. Connetti dal client

    • Conenct di Wifi. Puoi trovare l'indirizzo IP sull'interfaccia utente dell'app WO Mic.

      $ micclient-ubuntu-x86 -t Wifi 192.168.1.100
      
    • Connetti tramite Bluetooth.

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

      xx: xx: xx: xx: xx: xx rappresenta l'indirizzo Bluetooth del telefono. Puoi interrogarlo sul tuo telefono: Impostazioni -> Informazioni sul telefono -> Stato -> Indirizzo Bluetooth.

Gli esempi sopra riportati sono per Ubuntu a 32 bit. Se si utilizza 64 bit, sostituire il nome del file client e driver con quelli xxx-x86_64 scaricati.


2
Ho avuto Please first load ALSA snd-aloop., quindi ho dovuto fare: sudo modprobe snd-aloope quindi ho dovuto eseguire il micclient-ubuntu-x86root come (usando sudo). E poi ha funzionato, yay.
Amichai Schreiber,

1
Questo non funziona. Dal dispositivo di loopback viene registrato solo il silenzio ...
Calmarius,

Come connettersi tramite USB?
abhisekp,

1
Ricevo il core dump della segmentazione ogni volta che lo eseguo. Sono in Linux Mint 18.3 x64
abhisekp

4

Uso Mumble (client desktop) + Murmur (come server LAN) + Plumble (client Android / iOS). Ciò si traduce nella latenza più bassa che abbia mai raggiunto (suona quasi come un normale loopback, teoricamente 7ms di ritardo WiFi + 2x 10ms di ritardo codec = 27 ms).

Per l'ultima versione, consultare https://github.com/pzmarzly/mic_over_mumble

Frammenti di README (rev 8c827fe)

Installa Mumble (client desktop) + Murmur (server) + Plumble (client Android / iOS). Impostare tutti e 3 i programmi per utilizzare la migliore qualità e latenza minima. Imposta il client mobile su streaming sempre.

Per installare Mumble + Murmur su Ubuntu, puoi usare:

sudo apt install mumble mumble-server
sudo systemctl stop mumble-server.service
sudo systemctl disable mumble-server.service

Copia mic_over_mumbleovunque: verrà utilizzato ~/.mic_over_Mumblecome directory di configurazione.

Corri mic_over_mumble. Avvierà il server su LAN, quindi avvierà Mumble (se richiesto per il soprannome, inserire qualcosa di diverso da SuperUser). Quindi collegare manualmente il dispositivo mobile al server LAN. L'app mobile Mumble presenta alcuni problemi .

Quindi, imposta i tuoi programmi per utilizzare "Monitor_of_Mumble" o "VirtualMic" come dispositivo di input (sono collegati). Ad esempio in OBS:

Schermata della configurazione OBS

Copia dello mic_over_mumblescript (rev 8c827fe)

#!/bin/bash
set -euo pipefail
# PAID = PulseAudio ID
# ID = PID / process ID

function main () {
    if [ ! -e ~/.mic_over_Mumble ]; then
        mkdir ~/.mic_over_Mumble
    fi
    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."
        run_mumble_client_wizard
        touch ./initdone
    fi

    echo "Starting Mumble server (murmurd)..."
    run_mumble_server_bg
    sleep 5
    echo "Starting Mumble client..."
    MUMBLE_CLIENT_ID=$(run_mumble_client_bg)
    sleep 15
    echo "Fetching PulseAudio configuration..."
    MUMBLE_CLIENT_PAID=$(get_mumble_client_paid)

    echo "Changing PulseAudio configuration..."
    echo "Adding sink..."
    SINK_MODULE_PAID=$(add_sink)
    sleep 3

    echo "Fetching current configuration to redirect Mumble..."
    SINK_PAID=$(get_sink_paid)
    pacmd move-sink-input "$MUMBLE_CLIENT_PAID" "$SINK_PAID"

    echo "Adding a virtual microphone..."
    SOURCE_MODULE_PAID=$(add_source)

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

    echo "Stopping Mumble client..."
    kill -KILL "$MUMBLE_CLIENT_ID" || true
    sleep 2
    echo "Stopping Mumble server..."
    # TODO: find a better way to kill murmurd
    # (it forks, so we cannot use its PID)
    pkill murmurd || true
    echo "Restoring PulseAudio configuration..."
    pactl unload-module "$SOURCE_MODULE_PAID"
    pactl unload-module "$SINK_MODULE_PAID"
}

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

function run_mumble_client_bg () {
    MUMBLE_URL="mumble://localhost"
    mumble $MUMBLE_URL >/dev/null 2>&1 &
    echo $!
}

function run_mumble_server_bg () {
    murmurd -ini ./murmur.ini &
    # echo $!
    # TODO: here we can get murmur's PID
    # (uncomment the line above)
}

function get_mumble_client_paid () {
    pacmd list-sink-inputs |
        grep -F -e "index: " -e "media.name = " |
        cut_every_second_newline |
        grep -F -e "Mumble" |
        print_second_column
}

function add_sink () {
    pactl load-module \
        module-null-sink \
        sink_name=Loopback_of_Mumble \
        sink_properties=device.description=Loopback_of_Mumble
}

function add_source () {
    pactl load-module \
        module-virtual-source \
        source_name=VirtualMic \
        master=Loopback_of_Mumble.monitor \
        source_properties=device.description=VirtualMic
}

function get_sink_paid () {
    pacmd list-sinks |
        grep -F -e "index: " -e "name: " |
        cut_every_second_newline |
        grep -F -e "Loopback" |
        print_second_column
}

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

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

main

3

Mmmm ho provato quell'app prima ma non funziona per me, quindi consiglio questo metodo:

  • Prima installa ip camera sul telefono, quindi installa pulseaudio , quando hai finito, apri ipcamera e avvia il server sul tuo telefono, assicurati che il tuo PC sia collegato sulla stessa rete.
  • Apri Chrome o Firefox e digita l'indirizzo IP fornito da ipcamera (l'ip verrà visualizzato nell'app).
  • Nel browser fai clic sul lettore audio e scegli HTML5 e assicurati di sentire qualcosa.
  • Apri pulseaudio e vai alla scheda Riproduzione , quindi fai clic su e mostra e seleziona Tutti i flussi . Vedrai l'applicazione Chrome o Firefox che suona il microfono.
  • Nella sezione dell'applicazione selezionare Cerca per Chrome o Firefox; che reindirizzerà l'audio dal tuo telefono al canale del microfono, puoi fare lo stesso ma usando VLC e affrontare meglio problemi come il ritardo.

Comunque per risolvere il problema del ritardo?
swdev,

2
Mmmm non ne sono sicuro, ma penso che questo post possa aiutarti se usi vlc Come risolvere il salto e il rallentamento in VLC @swdev
Maxtermax,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.