
С помощью pulseaudio было легко загрузить модуль для шумоподавления микрофона. Эта ссылка наглядно объясняет: https://askubuntu.com/questions/18958/удаление-шума-в-реальном-времени-с-пульсовым-диодом
Я хочу добавить rnnoise как плагин pipewire, чтобы подавить шум микрофона для всех пользователей.
Я ищу минималистичное решение и хотел бы избежать приложений. Например, вот это: https://github.com/noisetorch/NoiseTorch?tab=readme-ov-file
решение1
Установитьподавление-шума-для-голоса. По состоянию на апрель 2024 года пакета Ubuntu нет, см.этот открытый вопросдля инструкций по установке. Он упакован для Arch, Alpine, Gentoo и openSUSE. Смотрите его README для настроек, которые вы можете изменить.
решение2
Я нашел способ загрузить rnnoise
плагин pipewire
для всех пользователей.
Шаг 1:
На этой страницевы можете скачать rnnoise
драйвера, скомпилированные для X86 linux. Это не последняя версия rnnoise
. Если вы хотите последнюю версию, я думаю, вам придется выполнить компиляцию самостоятельно изофициальный репозиторий github.
Шаг 2:
В скачанном архиве вы найдете необходимые linux libs. Всегда берите mono libs. У вас, вероятно, только один микрофон! Предлагаю хранить их в /usr/lib/audio/
Поэтому вам придется создать папку audio. Поскольку я переименовал файлы, у меня теперь в этой папке:
- ladspa.so
- lv2.so
- vst3.so
- vst.so
Шаг 3
Создайте 2 pipewire
папки, чтобы получить следующий путь:
/etc/pipewire/pipewire.conf.d/
Шаг 4
В этой папке создайте файл 99-mic-denoising.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 = /usr/lib/audio/ladspa.so
label = noise_suppressor_mono
control = {
"VAD Threshold (%)" = 90.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
}
}
}
]
Шаг 5
Перезапустите демон pipewire:
systemctl restart --user pipewire.service
Теперь в настройках Gnome можно выбрать микрофон с шумоподавлением.
Комментарии
- Мы используем модуль фильтр-цепочки трубопровода. Проверьте документацию, она очень полезна.
- Каждое приложение (использующее аудио) было разработано для использования стандарта (так называемого API аудиоплагина):
- ladspa: открытый стандарт...но он не самый новый
- lv2: открытый стандарт...самый новый
- vst3: проприетарный стандарт (вы не должны его видеть в программах с открытым исходным кодом)
- vst: фирменный стандарт (вам не следует ....)
Поэтому решение, которое я предоставил, не распространяется на приложения, использующие аудиоплагин lv2 (мне плевать на фирменные стандарты). Любая помощь для lv2 приветствуется.