Używaj telefonu jako mikrofonu w systemie Linux


12

Uruchamiam podwójnie system Windows i Ubuntu. Ponieważ nie używam żadnego mikrofonu na pulpicie, zacząłem używać aplikacji o nazwie „WO Mic”, aby podłączyć mikrofon mojego telefonu z Androidem do pulpitu w systemie Windows. Dobra alternatywa, prawda?

Niestety, mikrofon WO Mic nie jest obsługiwany w żadnym systemie operacyjnym opartym na systemie Linux, dlatego chciałbym wiedzieć, czy istnieją jakieś alternatywy lub aplikacje, które mogłyby używać mojego telefonu jako mikrofonu w systemie Ubuntu przez WiFi lub USB. (ale najlepiej Wi-Fi).

Odpowiedzi:


5

Czy to jest program? Czy próbowałeś pobrać klienta / sterownik i postępować zgodnie z instrukcjami dla Ubuntu?

  1. Załaduj moduł sterownika

    $ sudo insmod wo_snd_capture-x86.ko
    
  2. Połącz z klientem

    • Conenct przez Wifi. Adres IP można znaleźć w interfejsie aplikacji WO Mic.

      $ micclient-ubuntu-x86 -t Wifi 192.168.1.100
      
    • Połącz przez Bluetooth.

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

      xx: xx: xx: xx: xx: xx oznacza adres Bluetooth telefonu. Możesz wysłać zapytanie do telefonu: Ustawienia -> Informacje o telefonie -> Status -> Adres Bluetooth.

Powyższe przykłady dotyczą 32-bitowego systemu Ubuntu. Jeśli korzystasz z wersji 64-bitowej, zamień nazwę pliku klienta i sterownika na xxx-x86_64 po pobraniu.


2
Mam Please first load ALSA snd-aloop., więc musiałem zrobić: sudo modprobe snd-aloopa potem musiałem uruchomić micclient-ubuntu-x86jako root (używając sudo). A potem zadziałało.
Amichai Schreiber

1
To nie działa. Z urządzenia loopback zapisywana jest tylko cisza ...
Calmarius

Jak podłączyć przez USB?
abhisekp

1
Dostaję zrzut rdzenia segmentacji za każdym razem, gdy go uruchamiam. Jestem w Linux Mint 18.3 x64
abhisekp

5

Używam Mumble (klient stacjonarny) + Murmur (jako serwer LAN) + Plumble (klient Android / iOS). Powoduje to najniższe opóźnienie, jakie kiedykolwiek osiągnąłem (brzmi prawie jak normalne sprzężenie zwrotne, teoretycznie 7 ms opóźnienie WiFi + 2x 10 ms opóźnienie kodeka = 27 ms).

Aby uzyskać najnowszą wersję, zobacz https://github.com/pzmarzly/mic_over_mumble

Fragmenty README (rev 8c827fe)

Zainstaluj Mumble (klient stacjonarny) + Murmur (serwer) + Plumble (klient Android / iOS). Ustaw wszystkie 3 programy tak, aby korzystały z najlepszej jakości i minimalnych opóźnień. Ustaw klienta mobilnego, aby zawsze przesyłał strumieniowo.

Aby zainstalować Mumble + Murmur na Ubuntu, możesz użyć:

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

Kopiuj w mic_over_mumbledowolnym miejscu - będzie używany ~/.mic_over_Mumblejako katalog konfiguracji.

Uruchom mic_over_mumble. Uruchomi serwer w sieci LAN, a następnie uruchom Mumble (jeśli zostaniesz poproszony o nick, wpisz cokolwiek innego niż SuperUser). Następnie ręcznie podłącz urządzenie mobilne do serwera LAN. Pamiętaj, że w aplikacji mobilnej Mumble występują pewne problemy .

Następnie skonfiguruj programy, aby używały „Monitor_of_Mumble” lub „VirtualMic” jako urządzenia wejściowego (są połączone). Np. W OBS:

Zrzut ekranu konfiguracji OBS

Kopia mic_over_mumbleskryptu (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 Próbowałem już wcześniej tej aplikacji, ale ona nie działa, więc polecam tę metodę:

  • Najpierw zainstaluj kamerę IP na telefonie, a następnie zainstaluj pulseaudio , a kiedy to zrobisz, otwórz ipcamera i uruchom serwer na telefonie, upewnij się, że komputer jest podłączony do tej samej sieci.
  • Otwórz Chrome lub Firefox i wpisz adres IP, który zapewnia ipcamera (ip wyświetli się w aplikacji).
  • W przeglądarce kliknij odtwarzacz audio i wybierz HTML5 i upewnij się, że coś słyszysz.
  • Otwórz pulseaudio i przejdź do karty Odtwarzanie , a następnie kliknij i pokaż i wybierz Wszystkie strumienie . Zobaczysz aplikację chrome lub firefox grającą na mikrofonie.
  • W sekcji aplikacji wybierz Lookback for Chrome lub Firefox; który przekieruje dźwięk z twojego telefonu do kanału mikrofonu, możesz zrobić to samo, ale używając VLC i lepiej radzić sobie z problemami takimi jak opóźnienie.

W każdym razie, aby rozwiązać problem opóźnienia?
swdev

2
Mmmm, nie jestem pewien, ale myślę, że ten post może ci pomóc, jeśli używasz VLC Jak naprawić pomijanie i opóźnianie w VLC @ swdev
Maxtermax
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.