Bonjour,
Le titre est assez explicite, je cherche un outil qui mesure les décibels en JAVA, et si cela n'existe pas, éventuellement le nom d'un logiciel qui fait cela pour remplacer...
Merci !
Bonjour,
Le titre est assez explicite, je cherche un outil qui mesure les décibels en JAVA, et si cela n'existe pas, éventuellement le nom d'un logiciel qui fait cela pour remplacer...
Merci !
Tu veux dire à partir d'un micro?
Je n'en sais trop rien, mais pour gérer ton micro, je pense qu'il te faudra utiliser l'api java-media/sound.
Ensuite il doit surement y avoir la posibilité de mesurer, du moins aproximativement, l'intencité de ton flux audio..
Mais j'en sais pas plus...
Salut,
je suppose que tu as un micro et les librairies indiquées par nabodix.
Tu vas obtenir la courbe de position de la membrane de ton micro. Cette membrane est sensible aux sons et est d'un modèle similaire aux membranes des hauts-parleurs. La différence entre les deux systèmes est que dans un cas on envoie le signal à la membrane (haut-parleurs) et dans l'autre, on lit ce signal.
Tu te retrouves avec une courbe de valeurs, et c'est à partir de là que mes souvenirs de physique deviennent flous. Les valeurs en décibels seront obtenue par lecture de la différence entre deux valeurs successives de la courbe.
Le minimum sera entre deux valeurs identiques, la courbe plate ne produit aucun son. C'est comme si une corde de guitare ne bouge pas. Même si tu la tends au maximum, elle ne produit aucun son. Tu dois la relâcher pour produire un son et c'est le mouvement de la corde qui va faire vibrer l'air autour, lequel va être compressé et amplifié par la caisse de résonnance.
Le maximum de décibels enregistrables pour ton micro sera l'écart entre sa valeur maximale et sa valeur minimale. Au-delà de ces seuils, il y a saturation, mais tu ne pourras pas mesurer au-delà des possibilités de ton micro.
Après tu devrais obtenir ta valeur en décibels par une règle de 3.
Soit dif ton écart de son. Soient minVal et maxVal les valeurs seuils du signal que tu lis dans ton programme. Soit maxDec le volume maximal que ton micro peut supporter. Soit res la valeur en décibels.
Tu devrais avoir :
Mais vérifie avec des cours de physique qu'il n'y a pas un logarithme qui traine autour de cette équation. Les mathématiques du son sont assez pénibles...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 res = dif * maxDec / (maxVal - minVal);
Hors Java, tu as le logiciel SoundForge qui dispose d'un mesureur décibels dans son panneau d'enregistrement.
Halte la !
Merci pour ces informations, mais je crois m'être mal exprimé =)
Je veux juste une sorte d'accusé de réception que le micro est opérationnel.
J'ai fouillé un peu JAVA sound, apparement c'est avec sampled en streaming, j'ai trouvé des exemples d'enregistreur qui marchent, mais moi j'veux pas passer par un fichier et tout le tointoin, je veux juste un petit indicateur qui dit "ok c'est bon ton micro marche".
J'ai trouvé des gens désirant la même chose, je me lance et je vous tiens au courant.
(dans mes fouilles j'ai trouvé un topic sur toi anadoncamille, mais me suis rendu compte a regret que ça concernait java.sound.midi)
Merci encore =)
Il est difficile d'avoir un signal qui dirait, "ton micro marche". Le principe d'une carte son est qu'elle fonctionne en continu. Que l'on ait un micro branché ou non dessus, elle récupèrera toujours un minimum de parasites.
Partager