ใช้โทรศัพท์เป็นไมโครโฟนใน Linux


12

ฉันบูตคู่กับ Windows และ Ubuntu เนื่องจากฉันไม่ได้ใช้ไมโครโฟนบนเดสก์ท็อปของฉันฉันจึงเริ่มใช้แอพชื่อ "WO Mic" เพื่อเชื่อมต่อไมโครโฟนของโทรศัพท์ Android กับเดสก์ท็อปของฉันใน Windows ทางเลือกที่ดีใช่มั้ย

น่าเศร้าที่ WO Mic ไม่รองรับระบบปฏิบัติการ Linux ดังนั้นฉันอยากทราบว่ามีทางเลือกอื่นหรือแอพใด ๆ ที่สามารถใช้โทรศัพท์ของฉันเป็นไมโครโฟนบน Ubuntu ผ่าน WiFi หรือ USB ได้ (แต่ควรมี wifi มากกว่า)

คำตอบ:


5

คือนี้โปรแกรมได้หรือไม่ คุณลองดาวน์โหลดไคลเอนต์ / ไดรเวอร์แล้วทำตามคำแนะนำสำหรับ Ubuntu หรือไม่?

  1. โหลดโมดูลไดร์เวอร์

    $ sudo insmod wo_snd_capture-x86.ko
    
  2. เชื่อมต่อจากลูกค้า

    • สร้างโดย Wifi คุณสามารถค้นหาที่อยู่ IP ได้จาก UI แอป WO Mic

      $ micclient-ubuntu-x86 -t Wifi 192.168.1.100
      
    • เชื่อมต่อด้วยบลูทู ธ

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

      xx: xx: xx: xx: xx: xx แสดงถึงที่อยู่บลูทู ธ ของโทรศัพท์ คุณสามารถค้นหาได้ในโทรศัพท์ของคุณ: การตั้งค่า -> เกี่ยวกับโทรศัพท์ -> สถานะ -> ที่อยู่บลูทู ธ

ตัวอย่างข้างต้นใช้สำหรับ Ubuntu แบบ 32 บิต หากคุณใช้ 64 บิตให้เปลี่ยนชื่อไฟล์ไคลเอนต์และไดรเวอร์เป็น xxx-x86_64 ที่ดาวน์โหลดมา


2
ฉันได้Please first load ALSA snd-aloop.ดังนั้นฉันต้องทำ: sudo modprobe snd-aloopแล้วฉันจะต้องเรียกใช้micclient-ubuntu-x86เป็นราก (ใช้sudo) แล้วมันก็ใช้ได้ใช่
Amichai Schreiber

1
สิ่งนี้ใช้ไม่ได้ ความเงียบเท่านั้นที่จะถูกบันทึกจากอุปกรณ์ลูปแบ็ค ...
Calmarius

วิธีการเชื่อมต่อผ่าน USB
abhisekp

1
ฉันได้รับการแบ่งส่วนหลักทุกครั้งที่ฉันเรียกใช้ ฉันอยู่ใน Linux Mint 18.3 x64
abhisekp

5

ฉันใช้ Mumble (ไคลเอนต์เดสก์ท็อป) + Murmur (เป็นเซิร์ฟเวอร์ LAN) + Plumble (ไคลเอนต์ Android / iOS) ผลลัพธ์นี้มีความหน่วงแฝงต่ำที่สุดที่ฉันเคยประสบความสำเร็จ (ฟังดูคล้ายลูปแบ็คปกติในทางทฤษฎี 7ms WiFi delay + 2x 10ms codec delay = 27 ms)

สำหรับรุ่นล่าสุดโปรดดูhttps://github.com/pzmarzly/mic_over_mumble

ชิ้นส่วนของ README (รุ่น 8c827fe)

ติดตั้ง Mumble (ไคลเอนต์เดสก์ท็อป) + Murmur (เซิร์ฟเวอร์) + Plumble (ไคลเอนต์ Android / iOS) ตั้งค่าทั้ง 3 โปรแกรมเพื่อใช้คุณภาพที่ดีที่สุดและเวลาแฝงน้อย ตั้งค่าไคลเอนต์มือถือให้สตรีมเสมอ

ในการติดตั้ง Mumble + Murmur บน Ubuntu คุณสามารถใช้:

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

คัดลอกmic_over_mumbleได้ทุกที่ - มันจะใช้~/.mic_over_Mumbleเป็นไดเรกทอรีการกำหนดค่า

mic_over_mumbleวิ่ง มันจะเริ่มเซิร์ฟเวอร์บน LAN จากนั้นเริ่ม Mumble (หากถูกถามชื่อเล่นให้ป้อนชื่ออื่นนอกเหนือจาก SuperUser) จากนั้นเชื่อมต่ออุปกรณ์มือถือของคุณกับเซิร์ฟเวอร์ LAN ด้วยตนเอง โปรดทราบว่า Mumble app มือถือมีปัญหาบางอย่าง

จากนั้นตั้งค่าโปรแกรมของคุณให้ใช้ "Monitor_of_Mumble" หรือ "VirtualMic" เป็นอุปกรณ์อินพุต (เชื่อมโยง) เช่นใน OBS:

สกรีนช็อตของการกำหนดค่า OBS

สำเนาของmic_over_mumbleสคริปต์ (รอบ 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

อืมฉันเคยลองใช้แอพนั้นมาก่อน แต่มันไม่ได้ผลสำหรับฉันดังนั้นฉันขอแนะนำวิธีนี้:

  • ก่อนติดตั้งกล้อง ipบนโทรศัพท์จากนั้นติดตั้งpulseaudioเมื่อคุณทำเสร็จแล้วเปิด ipcamera และเริ่มเซิร์ฟเวอร์บนโทรศัพท์ของคุณตรวจสอบให้แน่ใจว่าพีซีของคุณเชื่อมต่อกับเครือข่ายเดียวกัน
  • เปิด Chrome หรือ Firefox แล้วพิมพ์ที่อยู่ IP ที่ ipcamera มอบให้คุณ (IP จะแสดงในแอป)
  • ในเบราว์เซอร์คลิกที่เครื่องเล่นเสียงและเลือก HTML5 และตรวจสอบให้แน่ใจว่าคุณได้ยินอะไรบางอย่าง
  • เปิด PulseAudio และไปที่การเล่นแท็บแล้วคลิกและแสดงและเลือกทั้งหมด Streams คุณจะเห็นแอปพลิเคชัน chrome หรือ firefox กำลังเล่นไมโครโฟน
  • ในส่วนแอปพลิเคชันให้เลือกLookback for Chrome หรือ Firefox ที่จะเปลี่ยนเส้นทางเสียงจากโทรศัพท์ของคุณไปยังช่องไมโครโฟนคุณสามารถทำได้เหมือนกัน แต่ใช้ VLC และจัดการกับปัญหาเช่นความล่าช้าได้ดียิ่งขึ้น

ยังไงก็ตามที่จะแก้ไขปัญหาความล่าช้า?
swdev

2
Mmmm ฉันไม่แน่ใจ แต่ฉันคิดว่าโพสต์นี้สามารถช่วยคุณได้ถ้าคุณใช้ vlc วิธีแก้ไขการข้ามและการปกคลุมด้วยวัตถุฉนวนใน VLC @swdev
Maxtermax
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.