- Use phone as microphone in Linux
- 8 Answers 8
- For the latest version, see github.com/pzmarzly/mic_over_mumble.
- Fragments of README (rev 8c827fe)
- Copy of mic_over_mumble script (rev 8c827fe)
- Используйте телефон в качестве микрофона в Linux
- 8 ответов
- Фрагменты README (rev. 59091372580f481320224532aeaaea84c9c07848)
- Копия mic_over_mumble скрипт (rev 59091372580f481320224532aeaaea84c9c07848)
- Как использовать телефон в качестве микрофона?
- diyism / Use your android phone as a karaoke microphone in Linux.md
Use phone as microphone in Linux
I have dual boot Windows and Ubuntu. Since I don’t use any microphone on my desktop, I started using an app named «WO Mic» to connect my Android phone’s microphone to my desktop in Windows. A good alternative, right? Well, sadly, WO Mic is not supported on any Linux-based OS, so I would like to know if there are any alternatives or any app that could use my phone as microphone on Ubuntu over Wi-Fi or USB. (but preferably Wi-Fi).
8 Answers 8
I use Mumble (desktop client) + Murmur (as LAN server) + Plumble (Android/iOS client). This results in the lowest latency I’ve ever achieved (sounds almost like normal loopback, theoretically 7ms WiFi delay + 2x 10ms codec delay = 27 ms).
For the latest version, see github.com/pzmarzly/mic_over_mumble.
Fragments of README (rev 8c827fe)
- Install Mumble (desktop client) + Murmur (server) + Plumble (Android/iOS client). Set all 3 programs to use best quality and minimal latency. Set mobile client to always streaming.
- To install Mumble + Murmur on Ubuntu, you can use:
sudo apt install mumble mumble-server sudo systemctl stop mumble-server.service sudo systemctl disable mumble-server.service
Copy of mic_over_mumble script (rev 8c827fe)
#!/bin/bash set -euo pipefail # PAID = PulseAudio ID # / 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 '' > main
Используйте телефон в качестве микрофона в Linux
У меня двойная загрузка Windows и Ubuntu. Поскольку я не использую микрофон на своем рабочем столе, я начал использовать приложение под названием «WO Mic» для подключения микрофона моего телефона Android к своему рабочему столу в Windows. Хорошая альтернатива, верно?
Что ж, к сожалению, WO Mic не поддерживается ни в одной ОС на базе Linux, поэтому я хотел бы знать, есть ли какие-либо альтернативы или какие-либо приложения, которые могли бы использовать мой телефон в качестве микрофона в Ubuntu через WiFi или USB. (но желательно wifi).
8 ответов
Я использую Mumble (настольный клиент) + Murmur (в качестве сервера локальной сети) + Plumble (клиент Android/iOS). Это приводит к самой низкой задержке, которую я когда-либо достигал (звучит почти как обычный шлейф, теоретически задержка WiFi 7 мс + задержка кодека 2x 10 мс = 27 мс).
Фрагменты README (rev. 59091372580f481320224532aeaaea84c9c07848)
Установите все 3 программы, чтобы использовать лучшее качество и минимальную задержку. Установите для мобильного клиента постоянную потоковую передачу. копия mic_over_mumble везде — это будет использовать ~/.mic_over_Mumble в качестве каталога конфигурации. Бежать mic_over_mumble , затем подключите мобильное устройство к серверу локальной сети. Затем настройте свои программы на использование монитора Mumble в качестве устройства ввода. Например, в OBS:
Копия mic_over_mumble скрипт (rev 59091372580f481320224532aeaaea84c9c07848)
#!/bin/bash set -e # PAID = PulseAudio ID # / 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). " MUMBLE_SERVER_ID=`run_mumble_server_bg` sleep 5 echo "Starting Mumble client. " MUMBLE_CLIENT_ID=`run_mumble_client_bg` sleep 5 echo "Fetching PulseAudio configuration. " MUMBLE_CLIENT_PAID=`get_mumble_client_paid` echo "Changing PulseAudio configuration. " SINK_MODULE_PAID=`add_sink` sleep 3 SINK_PAID=`get_sink_paid` pacmd move-sink-input $MUMBLE_CLIENT_PAID $SINK_PAID echo "Done. Please use pavucontrol to ensure everything works." echo "Press Return to shut down. " read -n1 -s echo "Shutting down. " echo "Stopping Mumble client. " kill -KILL $MUMBLE_CLIENT_ID | true sleep 2 echo "Stopping Mumble server. " kill -KILL $MUMBLE_SERVER_ID | true echo "Restoring PulseAudio configuration. " 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 $! >function get_mumble_client_paid () < pacmd list-sink-inputs | egrep "index: |application.name = " | cut_every_second_newline | egrep 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 get_sink_paid () < pacmd list-sinks | egrep "index: |name: " | cut_every_second_newline | egrep 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 '' > main
Как использовать телефон в качестве микрофона?
Здраствуйте. Раньше пользовался программой на виндовс «WO mic», сейчас перешел на линукс минт, на ноутбуке микрофон не работает. Есть ли анологи под минт?
Простой 1 комментарий
Если используете pavucontrol(pulseaudio), вам следует сделать:
$ pulseaudio -k $ killall micclient-x86_64.AppImage $ sudo modprobe -r snd-aloop $ sudo vi /etc/pulse/default.pa
load-module module-alsa-source device=hw:CARD=Loopback,DEV=1,SUBDEV=0
$ sudo modprobe snd-aloop $ pulseaudio --start $ sudo cp micclient-x86_64.AppImage /usr/bin/MicClient $ while true; do nohup MicClient -t Wifi 192.168.1.100 > /dev/null 2>&1; sleep 1; done &
192.168.1.100 — это IP-адрес моего телефона в локальной сети, вы должны изменить его на IP-адрес вашего телефона.
В pavucontrol(регулятор громкости) на вкладке «Устройства ввода» включите «Встроенный звук» (а не «Встроенный аналоговый стереозвук») в качестве устройства ввода.
И перенаправьте звук MicClient на виртуальное устройство вывода, сначала в «pavucontrol / Устройства ввода», чтобы поставить галочку «Встроенный звук» на «Установить как резервный», а затем:
$ pactl load-module module-loopback latency_msec=1
Теперь с WoMic в android и micclient-x86_64.AppImage в x64 linux, у вас есть набор домашнего караоке-оборудования с почти нулевой задержкой.
Если вы слышите много шумов, вы можете попробовать переключить «Настройки микрофона WO / Источник звука» в своем телефоне Android, например: nexus 6p должен выбрать «Микрофон (режим 2)».
Чтобы отключить перенаправление звука MicCleint на устройство вывода:
$ pactl unload-module module-loopback
diyism / Use your android phone as a karaoke microphone in Linux.md
micclient+WoMic is close source, while Mumble is open source, so on armbian tv, I can only use Mumble+Murmurd+Plumble.
sudo apt install mumble mumble-server
sudo systemctl stop mumble-server.service
sudo /lib/systemd/systemd-sysv-install disable mumble-server
chmod 744 mic_over_mumble
#config minimal delay 20ms
#next next and exit and murmurd server started
#muble client started, input a random user name
#install plumble free version on your phone
#start plumble and cancel certification generation
#input a random user name that is different to the mumble client user name on armbian tv
#now you can sing to your phone, and your voice will be played on the armbian tv immediately
====================»micclient-x86_64.AppImage»(on amd64 linux pc)+Wo Mic(on android)====================
If your linux release is using pavucontrol(pulseaudio), you should do:
$ pulseaudio -k $ killall micclient-x86_64.AppImage $ sudo modprobe -r snd-aloop $ sudo vi /etc/pulse/default.pa
load-module module-alsa-source device=hw:CARD=Loopback,DEV=1,SUBDEV=0
$ sudo modprobe snd-aloop $ pulseaudio --start $ wget https://wolicheng.com/womic/softwares/micclient-x86_64.AppImage $ sudo chmod 777 /usr/bin/MicClient $ sudo mv micclient-x86_64.AppImage /usr/bin/MicClient $ while true; do nohup MicClient -t Wifi 192.168.1.100 > /dev/null 2>&1; sleep 1; done &
192.168.1.100 is my phone IP in local network, you should change it to your phone’s LAN ip.
In pavucontrol(Volume Control), in «Input Devices» tab, enable «Built-in Audio»(not «Built-in Audio Analog Stereo») as input device.
And redirect MicClient audio to virtual output device, first in «pavucontrol/Input Devices» to tick «Built-in Audio» to «Set as fallback» and then:
$ pactl load-module module-loopback latency_msec=1
Now with WoMic in android and micclient-x86_64.AppImage in x64 linux, you have a set of home karaoke equipment with near 0 latency.
If you hear many noises, you could try to switch the «WO Mic Settings/Audio source» in your android phone, for example: nexus 6p should choose «Mic(mode 2)».
To disable redirecting MicCleint audio to Output Device:
$ pactl unload-module module-loopback