Aller au contenu
Se connecter

/docs · VoiceLab · Practical

Mesurer avec un seul claquement combien de temps une pièce résonne

Le profil room lit le temps de réverbération par bande d’octave à partir d’un claquement, d’un éclatement de ballon, d’une réponse impulsionnelle ou d’un balayage. Comment l’enregistrer, comment lire la réponse et jusqu’où les chiffres sont éprouvés.

Mis à jour 13 oct. 2026


Un enregistrement de quelqu’un qui parle ne dit pas combien de temps la pièce résonne : nous avions construit une estimation simple à partir de la décroissance après chaque phrase, et elle ne mesurait pas du tout la réverbération (ce qu’elle mesure à la place). Un claquement, lui, le peut. Il est bref et fort, et la façon dont il s’éteint, c’est la pièce.

Le profil room de POST /v1/analyze/profile lit cette décroissance comme le fait l’acoustique des salles : l’intégrale rétrograde de Schroeder, par bande d’octave, avec T30 quand la décroissance couvre 45 dB et T20 sinon (la méthode de l’ISO 3382). C’est un preset payant, comme tout profil sauf basic.

L’enregistrer

  1. Une pièce calme, sans ventilateur, sans musique. La mesure utilise le calme avant le claquement pour mesurer le bruit, et ignore les 0,3 premières secondes du fichier pour que le toucher du bouton d’enregistrement ne compte pas.
  2. Lancez l’enregistrement, restez silencieux environ une seconde, puis frappez une seule fois dans les mains, fermement, à environ un mètre du microphone.
  3. Restez silencieux pendant que la pièce s’éteint ; deux à trois secondes suffisent pour la plupart des pièces. Si le fichier s’arrête alors que la pièce résonne encore, la décroissance est coupée et la lecture est trop basse.
  4. Ne saturez pas. Trois échantillons à pleine échelle marquent toute la réponse en faible confiance (room.clipped).

Un éclatement de ballon fonctionne de la même façon et est lu comme un claquement ; dites-le avec roomSource: "balloon". Si vous avez déjà une réponse impulsionnelle, envoyez-la avec roomSource: "impulse" : elle donne chaque bande à partir de 125 Hz, là où un claquement donne 500 Hz et au-dessus. roomSource: "sweep" sert pour l’enregistrement du balayage que joue l’application RoomLab ; le moteur lit exactement ce signal.

La demander

curl https://audiolab.tools/v1/analyze/profile \
  -H "Authorization: Bearer $AUDIOLAB_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/clap.wav", "profile": "room", "series": true}'

Sans series: true, vous obtenez les valeurs simples. Avec, vous obtenez aussi room.rt60Bands, le tableau par bande d’octave avec la courbe de décroissance. Un enregistrement qui ne contient ni claquement, ni éclatement, ni réponse impulsionnelle, ni balayage est un 422 avec le code room_not_measurable et la raison.

Ce qui revient

LensCe que c’est
room.rt60MidSecondes pour que le son baisse de 60 dB, la médiane des bandes 500 Hz, 1 kHz et 2 kHz. Une salle de parole se situe vers 0,4 à 0,8 s, un salon vers 0,3 à 0,6 s.
room.rt60BandsPar bande : le temps, le bruit dans cette bande, T20 ou T30, la plage de décroissance, un confidence (high à partir de 35 dB de plage) et la courbe. Un claquement donne 500 Hz à 4 kHz ; les bandes plus basses le disent au lieu de deviner.
room.flutterStrength, room.flutterPeriodMsUn écho qui se répète vite entre des murs parallèles. Lisez 0,4 et plus comme un écho flottant, sous 0,3 comme aucun ; la période est fiable à partir de 0,3.
room.noiseFloorLe calme avant le claquement, en dBFS (relatif à la pleine échelle, pas un niveau sonore étalonné). Au-dessus d’environ -50 dBFS, le fond décide de la mesure.
room.clapAt, room.clapProminence, room.clipped, room.methodOù le claquement a été trouvé, de combien il dépassait le reste (20 dB est le minimum), si le microphone a saturé et comment la réponse a été obtenue.

Un enregistrement de balayage ajoute room.sweepRange, room.directToReverb et room.tooCloseToSpeaker.

Jusqu’où lui faire confiance

Nous avons éprouvé la méthode sur de vraies pièces, et nous disons ce qu’était l’épreuve.

  • La mesure est celle de l’application RoomLab, exactement. Sur 385 réponses impulsionnelles mesurées, l’écart entre l’application et le moteur est de 0,0 s dans chaque bande.
  • Face à la même méthode sur la réponse impulsionnelle brute (chaque réponse excitée avec un spectre de claquement et un bruit de pièce, puis mesurée comme un enregistrement) : la valeur médiane s’écartait de 3,9 pour cent en médiane sur 155 pièces, 86 pour cent à moins de 10 pour cent et 98 pour cent à moins de 20 pour cent. Les bandes qui se donnaient la confiance high (au moins 35 dB de décroissance) s’écartaient de 1,5 pour cent en médiane ; avec low, de 5,7 pour cent en médiane : lisez-les comme une indication.
  • Face à une implémentation indépendante (numpy, un autre auteur), la courbe de Schroeder concordait à moins de 5 pour cent dans les 112 pièces ayant au moins 35 dB de décroissance, 0,3 pour cent en médiane.

Ce qui n’a pas été éprouvé : un vrai claquement sur un vrai téléphone (le claquement a été simulé avec un spectre de claquement et un bruit de pièce), un vrai haut-parleur et un vrai microphone pour le balayage, et l’écho flottant dans de vraies pièces (il n’existe pas de vérité sur les pièces qui en ont). Les chiffres sont une mesure, pas un verdict : le moteur ne vous dit pas quoi traiter.

L’épreuve complète, avec les tableaux, se trouve dans le dépôt du moteur (scripts/validatie/room-ir/RESULT.md), et le statut de chaque mesure room.* est sur la page des lenses.

À lire aussi

Ensuite dans VoiceLab docs

Hauteur et qualité de la voix : ce que le profil donne et ce qu’il retient →

Le profil pitch lit où se situe une voix, de combien elle bouge, à quel point l’enregistrement est voisé et à quel point la voix est propre. Les chiffres du test, les limites et pourquoi la gigue et le scintillement ne sont pas encore proposés.

More in VoiceLab docs