
Com o pulseaudio, foi fácil carregar um módulo para redução de ruído do microfone. Este link explica isso claramente: https://askubuntu.com/questions/18958/realtime-noise-removal-with-pulseaudio
Quero adicionar rnnoise como um plugin do pipewire para cancelar o ruído do microfone para todos os usuários.
Procuro uma solução minimalista e gostaria de evitar aplicações. Como este: https://github.com/noisetorch/NoiseTorch?tab=readme-ov-file
Responder1
Instalarsupressão de ruído para voz. Em abril de 2024, não havia pacote Ubuntu, consulteesta questão em abertopara obter instruções de instalação. No entanto, ele é empacotado para Arch, Alpine, Gentoo e openSUSE. Veja seu README para configurações que você pode ajustar.
Responder2
Encontrei uma maneira de carregar rnnoise
como um pipewire
plugin para todos os usuários.
Passo 1:
Nesta páginavocê pode baixar os rnnoise
drivers compilados para Linux X86. Esta não é a última versão do rnnoise
. Se você quiser a versão mais recente, acho que terá que realizar a compilação sozinho a partir dorepositório oficial do github.
Passo 2:
No arquivo baixado, você encontrará as bibliotecas Linux necessárias. Sempre use bibliotecas mono. Você provavelmente tem apenas um microfone! Proponho armazená-los em /usr/lib/audio/
Então você terá que criar a pasta audio. Ao renomear os arquivos, agora tenho nesta pasta:
- ladspa.so
- lv2.so
- vst3.so
- vst.so
etapa 3
Crie as 2 pipewire
pastas para obter este caminho:
/etc/pipewire/pipewire.conf.d/
Passo 4
Nesta pasta crie o arquivo 99-mic-denoising.conf
. Neste arquivo cole este conteúdo:
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
}
}
}
]
Etapa 5
Reinicie o deamon do pipewire:
systemctl restart --user pipewire.service
Agora nas configurações do gnome você pode escolher o microfone com cancelamento de ruído.
Comentários
- Então usamos o módulo de cadeia de filtro pipewire. Verifique a documentação, é muito útil.
- Cada aplicativo (que usa áudio) foi projetado para usar um padrão (chamado API de plugin de áudio):
- ladspa: padrão aberto... mas não é o mais novo
- lv2: padrão aberto...o mais novo
- vst3: padrão proprietário (você não deve vê-lo em programas de código aberto)
- vst: padrão proprietário (você não deveria....)
Portanto, a solução que forneci não cobre aplicativos que usam o plugin de áudio lv2 (não me importo com padrões proprietários). Qualquer ajuda para o nível 2 é bem vinda.