RNNoise, la lib qui supprime le bruit, sort en version 0.2
Si vous faites du streaming ou que vous jouez en ligne, vous connaissez probablement RNNoise qui supprime les bruits parasites qui gâchent vos enregistrement ou vos parties de CS, grâce à la magie des réseaux neuronaux. La bonne nouvelle du jour c’est qu’une nouvelle version vient de sortir.
Pour ceux qui ne connaîtraient pas, RNNoise c’est une bibliothèque open source développée par les petits génies de Xiph.Org et Mozilla qui utilise un modèle de réseau neuronal récurrent pour filtrer le bruit en temps réel, tout en préservant la qualité de la voix.
Et les nouveautés sont cool :
- Déjà, ils ont ajouté des optimisations AVX2 et SSE4.1 pour booster les performances. Votre CPU va carburer comme jamais !
- Ensuite, ils ont intégré une détection automatique des fonctionnalités CPU, pour utiliser au mieux votre hardware. Avec ça, peu importe votre CPU, il saura faire tourner RNNoise au poil !
- Enfin, cerise sur le gâteau, les modèles fournis sont maintenant entraînés uniquement sur des datasets publics. Adieu les bases de données privées et bonjour la transparence ! 🌞
RNNoise ne se limite pas à éliminer les bruits lors de vos visioconférences. Cette merveille peut aussi améliorer la reconnaissance vocale, le traitement musical et bien d’autres tâches. En plus de la voix la plus probable, le modèle indique aussi la fiabilité de son estimation, ce qui est très utile pour la reconnaissance automatique de la parole. Mais ce n’est pas le seul facteur qui entre en jeu : les caractéristiques du locuteur, les modèles de langage et les techniques de traitement du signal ont aussi leur importance.
Pour le tester, c’est tout simple :
Commencez par cloner le dépôt GitHub de RNNoise
git clone https://github.com/xiph/rnnoise.git
Puis compilez le machin en lançant ces commandes
./autogen.sh
./configure<br></br>make
Pro tip : utilisez l’option -march=native
dans vos CFLAGS
pour profiter à fond des optimisations AVX2 !
Vous pouvez maintenant tester RNNoise sur un fichier audio brut en 16 bits / 48 kHz
./examples/rnnoise_demo input.pcm output.pc
Et voilà, votre audio ressortira propre comme un sou neuf, débarrassé de tous les bruits indésirables. Vous m’en direz des nouvelles !
Si vous voulez creuser le sujet, je vous recommande de jeter un oeil aux benchmarks RNNoise sur OpenBenchmarking. Vous verrez que c’est loin d’être une solution gadget : sur un bon gros CPU, on arrive à traiter 60 fois le temps réel ! De quoi livestreamer sur Twitch en toute sérénité. D’ailleurs, c’est marrant de voir que RNNoise cartonne aussi sur des architectures exotiques comme les puces POWER ou ARM. Les développeurs ont vraiment fait du bon boulot pour rendre leur code portable. Respect ! 🙌
Bon allez, je ne vais pas vous bassiner plus longtemps et je vous invite à consulter l’excellent article de Jean-Marc Valin. C’est fascinant de voir comment on peut exploiter le deep learning pour améliorer des algorithmes de traitement du signal traditionnels.