Распознавание речи оffline
Системы распознавания речи развиваются сегодня очень быстро. Меня приятно поразила библиотека Whisper от OpenAI. Сконвертировать звуковой файл в текст можно оффлайн буквально парой команд, при этом качество распознавания получается очень хорошим.
Whisper написана на python и устанавливается при помощи pip:
# installing pip install -U openai-whisper # usage wisper file_to_recognize.mp3 --language Russian --model large
При первом запуске будет скачана голосовая модель для нужного языка, которая занимает несколько гигабайт на жестком диске. Распознавание голоса, особенно на CPU, занимает значительное время, получасовой файл обрабатывался на моем лаптопе пол-часа или даже дольше, но результат того стоит.
Комментирование нескольких строк в vim
Начиная создавать анимированные гифки очень трудно остановиться. Cегодня у нас мини-инструкция как можно закомментировать несколько строк в vim:
Самый простой способ организовать чат в сети
Как можно быстро послать сообщение в сеть и получить ответ? Например можно сформировать широковещательные UDP пакеты которые будут принимать все пользователи локальной сети. UDP (User Datagram Protocol) это протокол для посылки сообщений без гарании получаения.
Одним из самых простых способов принимать UDP сообщения из сети это воспользоваться командой "socat - udp-recv:2000". Эта команда будет выводить на экран все широковещательные сообщения на порт 2000 принимаемые вашей сетевой картой.
Но чтобы принимать сообщения кто-то должен их сначала послать. Для того чтобы послать широковещательное сообщение в сеть в другом терминале запускаем "socat - UDP-DATAGRAM:255.255.255.255:2000,broadcast". Все что вы набираете на клавиатуре в этом окне будет упаковываться в UDP пакеты и отправится в сеть.
В первом терминале будет отображаться все что вы будете набирать во втором. Остальные пользователи сети если они будут слушать сеть также увидят сообщение которое вы послали и смогут послать сообщение вам.
Следует понимать что такой способ коммуникации это как кричать через весь офис - любой человек в сети сможет принимать сообщение и посылать ответ, конечно если знает язык на котором вы общаетесь. Все устройства в сети компьютеры, телефоны, умные часы прочие устройства подключенные к роутеру через WIFI или по проводам будут способны принимать пакеты которые вы посылаете.
Посколько в качестве транспорта используются пакеты UDP то гарантии получения сообщения тоже не предусмотрено.
Как открыть VNC сессию на компьютере с Ubuntu
Каждый раз ищу эту инструкции и каждый раз удивляюсь, почему я до сих пор не добавил ее в блог?
Дано: у меня есть компьютер с Ubuntu который я умею будить дистанционно. На компьютере крутиться Ubuntu и я могу подключиться к нему через внутренний адрес OpenVPN.
Задача: помимо консольных приложений я хочу запускать на нем также GUI приложения. Конечно, можно запускать приложения удаленно показывая их через локальный X11 сервер - Ubuntu позволяет это делать с легкостью, но проблема в том что я хочу запускать приложения полностью локально чтобы можно было запустить приложение и отключиться. Кроме того, трафик X11 сервера достаточно интенсивный и приложения запущенные таким образом основательно тормозят.
Решение:
Поэтому есть способ лучше - при помощи команды x11vnc. X11vnc это приложение которое транслирует текущую X11 сессию в VNC сессию.
Запускается сессия при помощи следующей команды:
x11vnc -display :0
После чего я просто подключаюсь к GUI сессии при помощи любого VNC клиента, например TightVNC.
Важно иметь ввиду что способ будет работать только если X11 сессия уже авторизована, то есть компьютер уже включен и разблокирован!