65 lines
No EOL
1.5 KiB
Nix
65 lines
No EOL
1.5 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
{
|
|
services.pulseaudio.enable = false;
|
|
security.rtkit.enable = true;
|
|
services.pipewire = {
|
|
enable = true;
|
|
audio.enable = true;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
jack.enable = true;
|
|
extraConfig.pipewire = {
|
|
"00-rnnoise.conf" = {
|
|
"context.modules" = [
|
|
{
|
|
"name" = "libpipewire-module-filter-chain";
|
|
"args" = {
|
|
"node.description" = "Noise Cancelling source";
|
|
"media.name" = "Noise Cancelling source";
|
|
"filter.graph" = {
|
|
"nodes" = [
|
|
{
|
|
"type" = "ladspa";
|
|
"name" = "rnnoise";
|
|
"plugin" = "${pkgs.rnnoise-plugin}/lib/ladspa/librnnoise_ladspa.so";
|
|
"label" = "noise_suppressor_stereo";
|
|
"control" = {
|
|
"VAD Threshold (%)" = 50.0;
|
|
"VAD Grace Period (ms)" = 200;
|
|
"Retroactive VAD Grace (ms)" = 0;
|
|
};
|
|
}
|
|
];
|
|
};
|
|
"audio.position" = [
|
|
"FR"
|
|
"FL"
|
|
];
|
|
"capture.props" = {
|
|
"node.name" = "capture.rnnoise_source";
|
|
"node.passive" = true;
|
|
"audio.rate" = 96000;
|
|
};
|
|
"playback.props" = {
|
|
"node.name" = "rnnoise_source";
|
|
"media.class" = "Audio/Source";
|
|
"media.role" = "Communication";
|
|
"audio.rate" = 96000;
|
|
};
|
|
};
|
|
}
|
|
];
|
|
};
|
|
|
|
"10-clock-rate" = {
|
|
"context.properties" = {
|
|
"default.clock.rate" = 96000;
|
|
"default.clock.allowed-rates" = [ 44100 48000 96000 ];
|
|
"audio.format" = "FLOAT32LE";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
} |