Linux'ta telefonu mikrofon olarak kullanma


12

Ben Windows ve Ubuntu çift önyükleme. Masaüstümde mikrofon kullanmadığımdan, Android telefonumun mikrofonunu Windows'taki masaüstüme bağlamak için "WO Mic" adlı bir uygulamayı kullanmaya başladım. İyi bir alternatif, değil mi?

Ne yazık ki, WO Mic herhangi bir Linux tabanlı işletim sisteminde desteklenmiyor, bu yüzden telefonumu WiFi veya USB üzerinden Ubuntu'da mikrofon olarak kullanabilecek herhangi bir alternatif veya uygulama olup olmadığını bilmek istiyorum. (ancak tercihen wifi).

Yanıtlar:


5

bu program? İstemciyi / sürücüyü indirmeyi ve Ubuntu için talimatları izlemeyi denediniz mi?

  1. Yük sürücü modülü

    $ sudo insmod wo_snd_capture-x86.ko
    
  2. İstemciden bağlan

    • Wifi ile Conenct. IP adresini WO Mic uygulaması kullanıcı arayüzünde bulabilirsiniz.

      $ micclient-ubuntu-x86 -t Wifi 192.168.1.100
      
    • Bluetooth ile bağlanın.

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

      xx: xx: xx: xx: xx: xx telefonun Bluetooth adresini gösterir. Telefonunuzda sorgulayabilirsiniz: Ayarlar -> Telefon hakkında -> Durum -> Bluetooth adresi.

Yukarıdaki örnekler 32-bit Ubuntu içindir. 64 bit kullanıyorsanız, istemci ve sürücü dosya adını indirildiği şekilde xxx-x86_64 olanlarla değiştirin.


2
Anladım Please first load ALSA snd-aloop., bu yüzden yapmalıydım: sudo modprobe snd-aloopve sonra micclient-ubuntu-x86kök olarak kullanmak zorunda kaldım sudo. Ve sonra işe yaradı, yay.
Amichai Schreiber

1
Bu çalışmıyor. Geridöngü cihazından sadece sessizlik kaydedilir ...
Calmarius

USB üzerinden nasıl bağlanır?
abhisekp

1
Her çalıştırdığımda segmentasyon çekirdeği dökümü alıyorum. Linux
Mint'deyim

5

Mumble (masaüstü istemcisi) + Murmur (LAN sunucusu olarak) + Plumble (Android / iOS istemcisi) kullanıyorum. Bu, şimdiye kadar elde ettiğim en düşük gecikme ile sonuçlanır (teorik olarak 7ms WiFi gecikmesi + 2x 10ms kodek gecikmesi = 27 ms).

En son sürüm için bkz. Https://github.com/pzmarzly/mic_over_mumble

README parçaları (rev 8c827fe)

Mumble (masaüstü istemcisi) + Murmur (sunucu) + Plumble'ı (Android / iOS istemcisi) yükleyin. En iyi kaliteyi ve minimum gecikmeyi kullanmak için 3 programı da ayarlayın. Mobil istemciyi her zaman akışa ayarlayın.

Mumble + Murmur'u Ubuntu'ya kurmak için şunları kullanabilirsiniz:

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

mic_over_mumbleİstediğiniz yere kopyalayın - ~/.mic_over_Mumbleyapılandırma dizini olarak kullanılır.

Koş mic_over_mumble. Sunucuyu LAN'da başlatacak, sonra Mumble'ı başlatacaktır (takma ad istenirse, SuperUser dışında bir şey girin). Ardından mobil cihazınızı LAN sunucusuna manuel olarak bağlayın. Mumble mobil uygulamasının bazı sorunları olduğunu lütfen unutmayın .

Ardından, programlarınızı giriş aygıtı olarak "Monitor_of_Mumble" veya "VirtualMic" kullanacak şekilde ayarlayın (bağlı). Örneğin, OBS'de:

OBS yapılandırmasının ekran görüntüsü

mic_over_mumbleKomut dosyasının kopyası (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 Daha önce bu uygulamayı denedim ama benim için çalışmıyor, bu yüzden bu yöntemi tavsiye:

  • Önce ip kamerayı telefona kurun, ardından pulseaudio'yu yükleyin , bunu yaptığınızda ipcamera'yı açın ve sunucuyu telefonunuzda başlatın, bilgisayarınızın aynı ağa bağlı olduğundan emin olun.
  • Chrome veya Firefox'u açın ve ipcamera'nın size sağladığı IP adresini yazın (ip uygulamada gösterilir).
  • Tarayıcıda ses çalara tıklayın ve HTML5'i seçin ve bir şeyler duyduğunuzdan emin olun.
  • Pulseaudio'yu açın ve Oynatma sekmesine gidin, ardından tıklayın ve gösterin ve Tüm Akışlar'ı seçin . Mikrofonu çalan krom veya firefox uygulamasını göreceksiniz.
  • Uygulama bölümünde Chrome veya Firefox için Yeniden Arama'yı seçin ; Sesi telefonunuzdan mikrofon kanalına yönlendirir, aynısını yapabilirsiniz, ancak VLC'yi kullanarak gecikme gibi sorunlarla daha iyi başa çıkabilirsiniz.

Yine de gecikme sorunu çözmek için?
swdev

2
Mmmm emin değilim ama vlc kullanıyorsanız bu yazının size yardımcı olabileceğini düşünüyorum VLC'de Atlama ve Gecikme Nasıl Giderilir @swdev
Maxtermax
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.