Используйте телефон в качестве микрофона в 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. Подключиться от клиента

    • Общаться по Wi-Fi. Вы можете найти 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-x86root (используя sudo). И тогда это сработало, ууу.
Амихай Шрайбер

1
Это не работает. Только
петля

Как подключиться через USB?
abhisekp

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

4

Я использую Mumble (настольный клиент) + Murmur (в качестве сервера локальной сети) + Plumble (клиент Android / iOS). Это приводит к самой низкой задержке, которую я когда-либо достигал (звучит почти как обычный шлейф, теоретически задержка WiFi 7 мс + задержка кодека 2x 10 мс = 27 мс).

Для получения последней версии см. 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. Он запустит сервер в локальной сети, затем запустит Mumble (если запрашивается псевдоним, введите что-либо кроме SuperUser). Затем подключите мобильное устройство к серверу локальной сети вручную. Обратите внимание, что у мобильного приложения Mumble есть некоторые проблемы .

Затем настройте свои программы на использование «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 camera на телефон, затем установите pulseaudio , после этого откройте ipcamera и запустите сервер на своем телефоне, убедитесь, что ваш компьютер подключен к той же сети.
  • Откройте Chrome или Firefox и введите IP-адрес, который вам предоставляет ipcamera (ip будет отображаться в приложении).
  • В браузере нажмите на аудиоплеер и выберите HTML5, и убедитесь, что вы что-то слышите.
  • Откройте pulseaudio и перейдите на вкладку « Воспроизведение », затем нажмите, покажите и выберите « Все потоки» . Вы увидите приложение Chrome или Firefox, играющее на микрофоне.
  • В разделе приложения выберите Lookback for Chrome или Firefox; это перенаправит звук с вашего телефона на канал микрофона, вы можете сделать то же самое, но с помощью VLC и лучше справляться с такими проблемами, как отставание.

В любом случае, чтобы решить проблему отставания?
swdev

2
Мммм, я не уверен, но я думаю, что этот пост может помочь вам, если вы используете vlc Как исправить пропуски и
задержки
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.