Для првоедения видео и аудио встреч с нормальным звучанием голоса без комнаты (эхо, отражения и вот это всё) приобрёл микрофон Fifine AM8. Выбирал именно динамический, кардиоидный аппарат для решения спектра проблем:
Ноут гудит во время нагрева, а микрофон ноутбука перегружается и снижает громкость голоса. Для компенсирования приходится говорить громче, что некомфортно для голосовых связок и окружающих. Так как периодически через OBS веду запись встреч, параллельно ещё запуская разный софт, гудение становится значительным и говорить приходится ещё громче;
Микрофон ноута достаточно чувствительный и не имеет никакого подавления шумов. В итоге записывается всё: как кто-то смыл унитаз, как кто-то чихнул, скрипы, печать по клавиатуре, шевеление по столу и т.п;
Микрофон ноута ОЧЕНЬ сильно пишет комнату. При этом, если исплоьзовать нойз-гейты в OBS и пускать поток в созвон через виртуальный микрофон, становится очень плохо, так как шумодав пытается заглушить шум ноута, шум комнаты и из-за большого ревера не понимает, где конец/начало фразы, из-за чего рвётся поток и голос становится крайне дискретным и обрывистым.
Прикол в том, что аппарат типа должен был бороться со злом (и в целом стало лучше), но штатные настройки драйвера ALSA (аналог ASIO в Windows) делают звук микрофона, запущенный через Zoom U-24, очень тихим. Настолько, что слушателям на созвоне приходится выкручивать громкость на максимум, чотбы слышать меня, при этом когда начинает говорить кто-то другой, все глохнут (ну, из-за выкрученной громкости).
В итоге нужно, чтобы звук микрофона обрабатывался реалтайм, чтобы громко и классно, аки подкасты.
С недавнего времени во всех современных дистрибутивах используется Pipewire, против устаревшего PulseAudio. С одной стороны это окей, так как хорошая поддержка ALSA и JACK, но плохо, потому что разработчики софта не подтянулись и мало нормальных портов/новых плагинов. Проанализировал несколько решений, сразу перечислю их:
Carla (не использовал в итоге)
Audacity. Попробовал, но цель менять звук не на запсиси, а в реалтайме.
OBS. Пробовал в режиме виртуального микрофона, есть плагины и вот это всё, можно даже VST подключить, но мне не нравится, слишком тяжёлый варик, грузит систему.
NoiseTorch. Основан на RNNoise, классный вариант, но сохраняется проблема в п.3 с обрывистостью и не решается проблема с громкостью, по-прежнему тихо, ещё тише.
Real-time Noise Suppression Plugin. Прикреплю ссылку на всякий. Исплоьзую сейчас. Импульсы шумов обрабатывались нейронкой, заметно лучше среди прочего опенсорса. Плагин работает в фоне, что тоже плюс. Работает с Pipewire, что очевидный плюс. Жирный плюс - работает как виртуальный микрофон, а значит его можно эквализировать и вот это всё. Решает проблему 2 и 3.
Easy Effects. Использую сейчас. Плюс в том, что есть Flatpak, а значит система не засирается зависимостями. КУЧА настроек. Можно пирнять на вход звук с убранными шумами из RTNS и эквализировать, компрессировать, настроить громкость и т.д. Решает проблему 1.
Описываю только для Ubuntu
Качается последняя версия плагина.
Складывается в какой-то каталог. В моём случае это такое: /.config/pipewire/pipewire.conf.d/librnnoise_ladspa.so
В файл /usr/share/pipewire/pipewire.conf
в разделе context.modules =
в конец добавил:
{ name = libpipewire-module-filter-chain
args = {
node.description = "Noise Canceling source"
media.name = "Noise Canceling source"
filter.graph = {
nodes = [
{
type = ladspa
name = rnnoise
# Путь до распакованного плагина
plugin = /.config/pipewire/pipewire.conf.d/librnnoise_ladspa.so
# Не надо делать стерео, т.к. будет два потока обрабатываться и это плохо для реалтайм
label = noise_suppressor_mono
control = {
"VAD Threshold (%)" = 50.0
"VAD Grace Period (ms)" = 200
"Retroactive VAD Grace (ms)" = 0
}
}
]
}
capture.props = {
node.name = "capture.rnnoise_source"
node.passive = true
audio.rate = 48000
}
playback.props = {
node.name = "rnnoise_source"
media.class = Audio/Source
audio.rate = 48000
}
}
}
Сохранить изменения. Проблемы 2 и 3 решены.
systemctl restart --user pipewire.service
Качаю Flatpak EasyEffects.
В разделе Pipewire делаю вывод куда мне надо (там смотря через что мониторить, ситуационно). Входом назначаю виртуальный микрофон Noise Canceling source
.
В разделе "Вход" на вкладке эффектов добавил плагин "Громкость", настроил так:
mastering - golden transparency
. Он неплохо жмёт динамику голоса, но делает тише звук. Поэтому не лишним добавить мастер-громкости, но меня пока устраивает с нулевым постусилением.