Gunakan telepon sebagai mikrofon di Linux


11

Saya dual boot Windows dan Ubuntu. Karena saya tidak menggunakan mikrofon di desktop saya, saya mulai menggunakan aplikasi bernama "WO Mic" untuk menghubungkan mikrofon ponsel Android saya ke desktop saya di Windows. Alternatif yang bagus, bukan?

Sayangnya, WO Mic tidak didukung pada OS berbasis Linux, jadi saya ingin tahu apakah ada alternatif atau aplikasi apa pun yang dapat menggunakan ponsel saya sebagai mikrofon di Ubuntu melalui WiFi atau USB. (tapi sebaiknya wifi).

Jawaban:


5

Apakah ini programnya? Sudahkah Anda mencoba mengunduh klien / driver dan mengikuti instruksi untuk Ubuntu?

  1. Muat modul driver

    $ sudo insmod wo_snd_capture-x86.ko
    
  2. Terhubung dari klien

    • Conenct oleh Wifi. Anda dapat menemukan alamat IP di UI aplikasi WO Mic.

      $ micclient-ubuntu-x86 -t Wifi 192.168.1.100
      
    • Terhubung dengan Bluetooth.

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

      xx: xx: xx: xx: xx: xx mewakili alamat Bluetooth ponsel. Anda dapat menanyakannya di ponsel Anda: Pengaturan -> Tentang ponsel -> Status -> alamat Bluetooth.

Contoh di atas adalah untuk Ubuntu 32-bit. Jika Anda menggunakan 64-bit, ganti nama file klien dan driver ke xxx-x86_64 yang sudah diunduh.


2
Saya dapat Please first load ALSA snd-aloop., jadi saya perlu melakukannya: sudo modprobe snd-aloopdan kemudian saya harus menjalankan micclient-ubuntu-x86root sebagai (menggunakan sudo). Dan kemudian berhasil, yay.
Amichai Schreiber

1
Ini tidak bekerja. Hanya kesunyian yang direkam dari perangkat loopback ...
Calmarius

Bagaimana cara terhubung melalui USB?
abhisekp

1
Saya mendapatkan segmentasi dump inti setiap kali saya menjalankannya. Saya di Linux Mint 18,3 x64
abhisekp

4

Saya menggunakan Mumble (klien desktop) + Murmur (sebagai server LAN) + Plumble (klien Android / iOS). Ini menghasilkan latensi terendah yang pernah saya raih (terdengar hampir seperti loopback normal, secara teoritis 7ms WiFi delay + 2x 10ms codec delay = 27 ms).

Untuk versi terbaru, lihat https://github.com/pzmarzly/mic_over_mumble

Fragmen README (rev 8c827fe)

Instal Mumble (klien desktop) + Murmur (server) + Plumble (klien Android / iOS). Atur ketiga program untuk menggunakan kualitas terbaik dan latensi minimal. Tetapkan klien seluler untuk selalu streaming.

Untuk menginstal Mumble + Murmur di Ubuntu, Anda dapat menggunakan:

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

Salin di mic_over_mumblemana saja - ini akan digunakan ~/.mic_over_Mumblesebagai direktori konfigurasi.

Lari mic_over_mumble. Ini akan memulai server pada LAN, kemudian memulai Mumble (jika ditanya nama panggilan, masukkan apa pun selain SuperUser). Kemudian sambungkan perangkat seluler Anda ke server LAN secara manual. Harap perhatikan bahwa aplikasi seluler Mumble memiliki beberapa masalah .

Kemudian, siapkan program Anda untuk menggunakan "Monitor_of_Mumble" atau "VirtualMic" sebagai perangkat input (mereka ditautkan). Misalnya dalam OBS:

Cuplikan layar konfigurasi OBS

Salinan mic_over_mumbleskrip (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
}

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

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

main

3

Mmmm saya pernah mencoba aplikasi itu tetapi tidak berhasil, jadi saya merekomendasikan metode ini:

  • Pertama instal kamera ip di telepon, kemudian instal pulseaudio , setelah selesai, buka ipcamera dan mulai server di ponsel Anda, pastikan bahwa pc Anda terhubung di jaringan yang sama.
  • Buka Chrome atau Firefox dan ketikkan alamat IP yang disediakan ipcamera untuk Anda (ip akan ditampilkan di aplikasi).
  • Di browser klik pada pemutar audio dan pilih HTML5, dan pastikan bahwa Anda mendengar sesuatu.
  • Buka pulseaudio dan buka tab Playback , lalu klik dan tampilkan dan pilih Semua Streaming . Anda akan melihat aplikasi chrome atau firefox memainkan mikrofon.
  • Pada bagian aplikasi pilih Lookback for Chrome atau Firefox; yang akan mengarahkan audio dari ponsel Anda ke saluran mikrofon, Anda dapat melakukan hal yang sama tetapi menggunakan VLC dan menangani lebih baik dengan masalah seperti lag.

Pokoknya untuk memecahkan masalah lag?
swdev

2
Mmmm saya tidak yakin, tapi saya berpikir bahwa posting ini dapat membantu Anda jika Anda menggunakan vlc Cara Perbaiki Skipping dan tertinggal di VLC @swdev
Maxtermax
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.