C'est un schéma de réduction de bruit au moyen du seuillage de bruit dans le domaine fréquentiel.
dnoise [options] -i fichier_ref_bruit -o fichier_son_sortie format_fichier_son fichier_son_entree
Options spécifiques à dnoise :
(pas d'option) fichier son en entrée à débruiter
-i nomfic fichier de référence du bruit en entrée
-o nomfic fichier son de sortie
-N fnum nombre de filtres passe-bande (par défaut : 1024)
-w fovlp facteur de chevauchement des filtres : {0,1,(2),3} NE PAS UTILISER -w ET -M
-M longfa longueur de la fenêtre d'analyse (par défaut : N-1 à moins que -w ne soit spécifié)
-L longfs longueur de la fenêtre de synthèse (par défaut : M)
-D factd facteur de décimation (par défaut : M/8)
-b datedeb date de début dans le fichier de référence du bruit (par défaut : 0)
-B smpdeb échantillon de départ dans le fichier de référence du bruit (par défaut : 0)
-e datefin date de fin dans le fichier de référence du bruit (par défaut : fin du fichier)
-E smpfin échantillon de fin dans le fichier de référence du bruit (par défaut : fin du fichier)
-t seuil seuil au-dessus du bruit de référence en dB (par défaut : 30)
-S gfact raideur de la coupure au seuil de bruit, intervalle : 1 à 5 (par défaut : 1)
-n nbrtrm nombre de trames de TFR sur lesquelles calculer la moyenne (par défaut : 5)
-m gainmin gain minimum du seuillage de bruit lorsqu'il est fermé (par défaut : -40)
Options de format du fichier son :
-A format de sortie AIFF
-W format de sortie WAV
-J format de sortie IRCAM
-h pas d'en-tête de fichier (non valide pour une sortie AIFF/WAV)
-8 échantillons en caractères non signés sur 8 bit
-c échantillons en caractères signés sur 8 bit
-a échantillons en alaw
-u échantillons en ulaw
-s échantillons en entiers courts
-l échantillons en entiers longs
-f échantillons en virgule flottante. Les nombres en virgule flottante sont aussi supportés par les fichiers WAV. (Nouveau dans Csound 3.47.)
Options supplémentaires :
-R verbose - impression d'une information d'état
-H [N] imprime un caractère de type pulsation à chaque écriture dans le fichier son.
-- nomfic sortie de journal dans le fichier nomfic
-V verbose - impression d'une information d'état
Note | |
---|---|
DNOISE consulte aussi la variable d'environnement SFOUTYP pour déterminer le format du fichier de sortie. L'option -i est utilisée pour un fichier de référence du bruit (créé normalement à partir d'un court extrait du fichier à débruiter, dans lequel seul le bruit est audible). Le fichier son d'entrée à débruiter peut être donné n'importe où dans la ligne de commande, sans drapeau. |
C'est un schéma de réduction de bruit au moyen du seuillage de bruit dans le domaine fréquentiel. Il fonctionnera mieux dans le cas d'un rapport signal/bruit élevé avec un bruit de type souffle.
L'algorithme est celui suggéré par Moorer & Berger dans « Linear-Phase Bandsplitting: Theory and Applications » presenté à la 76ème Convention, 8-11 Octobre 1984 à New York, de l'Audio Engineering Society (préimpression #2132) sauf qu'il utilise la formulation par Chevauchement-Addition Pondéré pour l'analyse et la synthèse de Fourier à court terme au lieu de la formulation récursive proposée par Moorer & Berger. Le gain pour chaque bin de fréquence est calculé indépendamment selon la formule
gain = g0 + (1-g0) * [moy / (moy + th*th*nref)] ^ sh
où moy et nref sont la moyenne quadratique du signal et du bruit respectivement pour le bin en question. (Ceci diffère légèrement de la version dans Moorer & Berger.)
Les paramètres critiques th et g0 sont spécifiés en dB et convertis en interne en valeurs décimales. Les valeurs nref sont calculées au début du programme sur la base d'un fichier de bruit (spécifié dans la ligne de commande) qui contient du bruit sans signal.
Les valeurs moy sont calculée sur une fenêtre rectangulaire de m trames de TFR centrée sur la date courante. Cela correspond à une extension temporelle de m*D/R (qui vaut typiquement (m*N/8)/R ). Le réglage par défaut de N, m, et D devrait convenir pour la plupart des utilisations. Un taux d'échantillonnage supérieur à 16 kHz pourrait signifier un N plus grand.
Voici un exemple de l'utilitaire dnoise. Il utilise les fichiers dnoise.csd, MathewsNoise.wav et MathewsN.wav.
Exemple 1357. Exemple de l'utilitaire dnoise.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform -odac -m0 ;;;realtime audio out, with limiter protection ; For Non-realtime ouput leave only the line below: ; -o dnoise.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 ; by Menno Knevel 2022 ; analyze sound file and output result, and be verbose ires1 system_i 1,{{ dnoise -V -W -i MathewsNoise.wav -o outfile01.wav MathewsN.wav }} ; default settings (1024 bandoass filters) ires2 system_i 1,{{ dnoise -V -W -N8 -i MathewsNoise.wav -o outfile02.wav MathewsN.wav }} ; LoFi, only 8 bandpass filters ires3 system_i 1,{{ dnoise -V -W -N4096 -i MathewsNoise.wav -o outfile03.wav MathewsN.wav }} ; 4096 bandpass filters used instr 1 ; untreated signal asig diskin2 "MathewsN.wav", 1 ; sample = 17.6 secs prints "\n---***YOU NOW HEAR THE UNTREATED SOUND SAMPLE***---\n" outs asig, asig endin instr 2 prints "\n---***YOU NOW HEAR THE DENOISED FILE WITH DEFAULT SETTINGS:***---\n" adnoise diskin2 p4, 1 outs adnoise, adnoise endin instr 3 prints "\n---***YOU NOW HEAR THE LoFi FILE:***---\n" adnoise diskin2 p4, 1 outs adnoise, adnoise endin instr 4 prints "\n---***YOU NOW HEAR THE DENOISED FILE WITH MANY BANDS, CREATING SOME ECHOES:***---\n" adnoise diskin2 p4, 1 outs adnoise, adnoise endin </CsInstruments> <CsScore> i1 1 17.6 ; untreated signal i2 20 17.6 "outfile01.wav" ; default settings i3 40 17.6 "outfile02.wav" ; LoFi i4 60 17.6 "outfile03.wav" ; echo-y e </CsScore> </CsoundSynthesizer>