Guide Mumble pour Linux exotique (NixOS/Sway/Wayland)

J’ai ressorti des cartons Mumble récemment pour les réunions mensuelles CHATONS et j’ai eu pas mal de problèmes à le configurer. Mon Linux est un peu exotique avec son NixOS, Wayland, et Sway mais je me dis que certains de ces problèmes pourraient arriver dans une distribution plus standard.

Vérifier le support PulseAudio dans Mumble

La pile audio de Linux est assez fragmentée, avec plein de solutions différentes : ALSA, OSS, PulseAudio, Jack, et Pipewire. Aujourd’hui, pour un usage personnel, PulseAudio s’est imposé comme standard. Sauf que sur ma distribution (NixOS), Mumble vient sans le support de PulseAudio par défaut !

Note : si vous utilisez Pipewire, ce dernier est rétro-compatible avec PulseAudio, donc activez aussi le support PulseAudio du côté de Mumble.

Pour régler ça, il suffit d’explicitement demander le support de PulseAudio dans mon cas :

{ config, pkgs, ...}:
{
  environment.systemPackages = [
    (pkgs.mumble.override { pulseSupport = true; })
  ];
}

https://nixos.wiki/wiki/Mumble

Utiliser le push-to-talk avec Wayland

Pour interfacer les applications graphiques avec le matériel (affichage, clavier, souris, etc.), il faut un protocole commun entre ces applications et le système. Là aussi, l’écosystème est fragmenté entre le vénérable X11 et le plus récent Wayland. Les distributions sont souvent en train de passer de l’un à l’autre, de manière remarquablement invisible pour l’utilisateur final grâce à la couche de compatibilité XWayland.

Un des changements de Wayland, c’est un contrôle plus strict des accès. Une application ne peut plus capturer comme elle veut ce que vous tapez sur le clavier ou ce qui se passe sur votre écran. En gros, ça rend plus difficile d’écrire un keylogger sous Wayland. Mais cette fonctionnalitée casse aussi pas mal d’applications, comme Mumble chez moi.

Dans les cas où ça casse l’appliation, les mainteneurs font souvent le choix de lancer l’app par défaut en mode X11 pour ne pas casser ses fonctionnalités, mais ce n’était pas le cas chez moi. Et donc, Mumble ne pouvant pas capturer le clavier, je ne pouvais pas configurer le push-to-talk.

Ceci dit, il est maintenant possible d’utiliser Mumble sous Wayland depuis la version 1.4.0, sans casser la sécurité de ce dernier, en communicant à travers dbus. Il faut ensuite configurer votre gestionnaire de fenêtre pour envoyer les commandes sur dbus quand vous appuyez sur le raccourci que vous voulez.

Pour ma part, il m’a fallu installer Mumble depuis le dépôt NixOS unstable (notez le pkgs.unstable, il faut l’avoir déclaré comme overlay en amont) :

{ config, pkgs, ...}:
{
  environment.systemPackages = [
    (pkgs.unstable.mumble.override { pulseSupport = true; })
  ];
}

Et ensuite configurer Sway (dans mon cas j’ai choisi la combinaison touche Super + Tabulation) :

bindsym --no-repeat --release Mod4+tab exec gdbus call -e -d net.sourceforge.mumble.mumble -o / -m net.sourceforge.mumble.Mumble.stopTalking
bindsym --no-repeat Mod4+tab exec gdbus call -e -d net.sourceforge.mumble.mumble -o / -m net.sourceforge.mumble.Mumble.startTalking

https://elis.nu/blog/2021/06/setting-up-push-to-talk-in-mumble-on-sway/

Utilisation des filtres de PulseAudio

En écoutant mon retour, je me suis rendu compte que le son capté par Mumble n’était absolument pas traité pour la voix : pas d’annulation d’écho, pas de filtre sur les fréquences de la voix, etc. Pourtant, par défaut, PulseAudio possède toutes ces fonctionnalités, elles fonctionnent très bien et améliorent grandement la qualité d’un appel.

Pour forcer à la main ces configurations, je crois que définir une variable d’environnement au démarrage de Mumble peut aider : PULSE_PROP="media.role=phone filter.want=echo-cancel" mumble.

J’ai fait quelques tests rapidement et mes impressions sont que :

  • La qualité du traitement de l’audio de Mumble 1.3.4 à 1.4.0 s’est déjà bien amélioré de base
  • Mumble a un système d’annulation d’écho intégré qui donne des résultats équivalents à celui de PulseAudio, activer les 2 ne semble pas avoir d’impact positif ou négatif
  • Il me semble qu’activer media.role=phone pourrait ajouter d’autres filtres qui diminuent les bruits parasites comme les clics de souris.

https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/Clients/ApplicationProperties/

https://www.freedesktop.org/wiki/Software/PulseAudio/FAQ/

En conclusion

J’espère qu’en partageant ces petites astuces, ça pourra aider des gens à améliorer leur son, leur permettre donc de s’exprimer plus facilement et de rendre la réunion plus agréable pour tout le monde :slight_smile:

1 Like