Feature - Fonctionnalité #1966
Module d'enregistrement du son qui saurait nettoyer le bruit ambiant
0%
Description
- dans raconte-moi on enregistre le son du micro
- il y a souvent un bruit de fond
- on propose de retravailler le son avec audacity, mais c'est long et fastidieux comme expliqué ici:
- On demande à l'utilisateur de ne pas faire de bruit pendant 3 secondes et on "capture" le bruit ambiant (en enregistrant le micro)
- Ensuite lorsque l'utilisateur fera son enregistrement on appliquera ce "sample" comme filtre anti-bruit
Je pensais "piquer" le code d'audacity qui est ... du C++ mais je n'ai pas le temps de m'occuper de ça. Pour simplifier la mission vous trouverez ci-joint un fichier Qt/C++ bien plus léger que raconte-moi et vous permettra de travailler sans subir les modifications du code de raconte-moi.
Historique
#1 Mis à jour par Eric Seigne il y a presque 13 ans
- Version cible mis à MissionPonctuelleDev
#2 Mis à jour par Eric Seigne il y a presque 13 ans
- Fichier ryxeo-sound-record-noise-remove.tar.bz2 ajouté
- Description mis à jour (diff)
#3 Mis à jour par Jean-Louis Frucot il y a plus de 12 ans
A>près quelques recherche dans le code source de Audacity, et quelques recherches sur le Net, je suis tombé sur ça : soX http://sox.sourceforge.net/
avec entre autre la possibilité d'accéder aux commandes en mode CLI. Je suis tombé sur ce passage : http://sox.sourceforge.net/sox.html#EFFECTS avec les filtres noiseproof et noisered
noiseprof [profile-file] Calculate a profile of the audio for use in noise reduction. See the description of the noisered effect for details. noisered [profile-file [amount]] Reduce noise in the audio signal by profiling and filtering. This effect is moderately effective at removing consistent background noise such as hiss or hum. To use it, first run SoX with the noiseprof effect on a section of audio that ideally would contain silence but in fact contains noise - such sections are typically found at the beginning or the end of a recording. noiseprof will write out a noise profile to profile-file, or to stdout if no profile-file or if ‘−’ is given. E.g. sox speech.wav −n trim 0 1.5 noiseprof speech.noise-profile To actually remove the noise, run SoX again, this time with the noisered effect; noisered will reduce noise according to a noise profile (which was generated by noiseprof), from profile-file, or from stdin if no profile-file or if ‘−’ is given. E.g. sox speech.wav cleaned.wav noisered speech.noise-profile 0.3 How much noise should be removed is specified by amount-a number between 0 and 1 with a default of 0.5. Higher numbers will remove more noise but present a greater likelihood of removing wanted components of the audio signal. Before replacing an original recording with a noise-reduced version, experiment with different amount values to find the optimal one for your audio; use headphones to check that you are happy with the results, paying particular attention to quieter sections of the audio. On most systems, the two stages - profiling and reduction - can be combined using a pipe, e.g. sox noisy.wav −n trim 0 1 noiseprof | play noisy.wav noisered
#4 Mis à jour par Eric Seigne il y a plus de 12 ans
Oui mais ... non :)
j'essaye justement d'éviter à tout prix le recours à une commande externe ... c'est à cause de ça que la version 1.0 n'est pas encore sortie:- on utilise sox pour "coller" les morceaux entre eux avant de pousser sur le web
- j'utilise oggenc pour compresser les wav -> ogg, et les derniers dev permettent d'enregistrer directement en ogg (cf une lib abuleduqqchose dont j'ai oublié le nom)
- ça pose des soucis exemple #1163
- d'une manière générale, j'essaye de ne plus lancer de commandes externes
Éric