Використовуйте телефон як мікрофон в Linux


12

Я подвійний завантажую Windows та Ubuntu. Оскільки я не використовую жодного мікрофона на робочому столі, я почав використовувати додаток під назвою "WO Mic" для підключення мікрофона мого Android до мого робочого столу в Windows. Хороша альтернатива, правда?

Ну, на жаль, WO Mic не підтримується в будь-якій ОС на базі Linux, тому я хотів би знати, чи є альтернативи чи будь-яка програма, яка могла б використовувати мій телефон як мікрофон на Ubuntu через WiFi або USB. (але бажано Wi-Fi).

Відповіді:


5

Є чи це програма? Ви спробували завантажити клієнт / драйвер та дотримуючись інструкцій для Ubuntu?

  1. Завантажте драйверний модуль

    $ sudo insmod wo_snd_capture-x86.ko
    
  2. Підключення від клієнта

    • Conenct від Wifi. IP-адресу можна знайти в інтерфейсі програми WO Mic.

      $ micclient-ubuntu-x86 -t Wifi 192.168.1.100
      
    • Підключіться через Bluetooth.

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

      xx: xx: xx: xx: xx: xx позначає адресу Bluetooth телефону. Ви можете запитувати його на своєму телефоні: Установки -> Про телефон -> Стан -> Адреса Bluetooth.

Наведені вище приклади стосуються 32-розрядного Ubuntu. Якщо ви використовуєте 64-розрядні, замініть ім’я файлу клієнта та драйвера на xxx-x86_64 як завантажені.


2
Я отримав Please first load ALSA snd-aloop., тому мені потрібно було зробити: sudo modprobe snd-aloopі тоді мені довелося запустити micclient-ubuntu-x86як root (використовуючи sudo). І тоді це спрацювало, так.
Amichai Schreiber

1
Це не працює. З приладу зворотного зв'язку записується лише тиша ...
Кальмарій

Як підключитися через USB?
abhisekp

1
Я отримую дамп сегментації ядра щоразу, коли запускаю його. Я в Linux Mint 18.3 x64
abhisekp

5

Я використовую Mumble (настільний клієнт) + Murmur (як локальний сервер) + Plumble (клієнт Android / iOS). Це призводить до найнижчої затримки, яку я коли-небудь досягав (звучить майже як нормальний зворотний зв'язок, теоретично 7 мс затримка Wi-Fi + 2х затримка кодека 10 мс = 27 мс).

Для останньої версії див. Https://github.com/pzmarzly/mic_over_mumble

Фрагменти README (rev 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. Він запустить сервер в локальній мережі, потім запустить Mumble (якщо запитається прізвисько, введіть що-небудь, крім SuperUser). Потім підключіть свій мобільний пристрій до локального сервера вручну. Зауважте, що у мобільного додатка Mumble є деякі проблеми .

Потім налаштуйте ваші програми використовувати "Monitor_of_Mumble" або "VirtualMic" як пристрій введення (вони пов'язані). Напр. В OBS:

Знімок екрана конфігурації OBS

Копія mic_over_mumbleсценарію (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

Мммм, я раніше пробував це додаток, але він не працює для мене, тому я рекомендую цей метод:

  • Спочатку встановіть ip камеру на телефон, потім встановіть pulseaudio , після цього відкрийте ipcamera і запустіть сервер на своєму телефоні, переконайтеся, що ваш ПК підключений до тієї ж мережі.
  • Відкрийте Chrome або Firefox та введіть IP-адресу, яку надає ipcamera (ip відобразиться в додатку).
  • У браузері натисніть на аудіоплеєр і виберіть HTML5 і переконайтеся, що ви щось чуєте.
  • Відкрийте pulseaudio та перейдіть на вкладку Відтворення , потім натисніть та покажіть та виберіть Усі потоки . Ви побачите програму chrome або firefox, яка відтворює мікрофон.
  • У розділі програми виберіть Lookback для Chrome або Firefox; що перенаправить аудіо з вашого телефону на канал мікрофона, ви можете зробити те саме, але за допомогою VLC та краще вирішувати такі проблеми, як відставання.

У будь-якому випадку вирішити питання про відставання?
swdev

2
Мммм, я не впевнений, але я думаю, що ця публікація може вам допомогти, якщо ви використовуєте vlc Як виправити пропуск та відставання у VLC @swdev
Maxtermax
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.