Une applet de sonogramme

Un sonogramme est une représentation temps-fréquence d'un signal sonore, calculée en général grâce à une transformée de Fourier, avec le temps en abscisse et la fréquence en ordonnée. L'objet de cette page est de proposer un sonogramme interactif, où l'utilisateur voit défiler à l'écran la représentation du son. Le signal utilisé est celui de l'entrée microphone de la carte son.

L'enregistrement de son par une applet est interdit par défaut. Pour l'autoriser, il faut copier le fichier java.policy sous C:\WINNT\Profiles\username\.java.policy sous Windows et ~username/.java.policy sous Unix, et recharger la configuration des politiques de la machine virtuelle du navigateur (relancer simplement ce dernier).

Ici se trouve une version lourde du sonogramme, qui requiert au minimum un Pentium à 1GHz. Sur un processeur moins rapide, utiliser plutôt la version légère en dessous. Il ne faut pas lancer les deux applets en même temps, et il convient d'arrêter les traitements avant de quitter la page web ; le mieux est de surveiller la charge du processeur avec l'utilitaire ad hoc.

Pour lancer le traitement, appuyer sur le bouton "Microphone".

Trouble instantiating applet Sonogram!!

Ici se trouve la version légère du sonogramme, qui devrait tourner sur un processeur à 200MHz.

Pour lancer le traitement, appuyer sur le bouton "Microphone".

Trouble instantiating applet TinySonogram!!

Les traitements utilisés par la version lourde (resp. légère) sont les suivants:

Voici quelques considérations sur les performances : le défi était d'obtenir un affichage en temps réel avec un programme en java ; les applets ci-dessus ont été conçues avec spoke, une librairie de composants javabeans pour le traitement du signal. Peut-être qu'un langage de plus bas niveau pourrait permettre le traitement à la pleine capacité de la carte son (qualité CD) mais pour le moment c'est inaccessible avec java, et les fréquences ne sont affichées que jusqu'à 4KHz sur les sonogrammes.

Quelle est l'utilité d'un tel sonogramme interactif ? Outre un intérêt purement ludique, il y a un aspect didactique : cette applet permet d'analyser par exemple des chants d'animaux, sans prétendre à un niveau scientifique trop élevé, qui demanderait des possibilités plus étendues (notamment en fréquence : voir paragraphe ci-dessus) et plus quantitatives : graduations, paramètres numériques réglables, etc. Ces possibilités, indépendantes du temps réel, existent déjà dans d'autres logiciels.

Mais l'application la plus intéressante est l'aide aux malentendants. Sans qu'il soit aujourd'hui envisageable de reconnaître le langage grâce à un sonogramme, une telle représentation pourrait permettre de savoir simplement s'il y a du bruit ou pas, et de distinguer différents bruits. Le développement des assistants personnels de type PocketPC assez puissants pour exécuter le logiciel peut en multiplier les applications : par exemple, connecter l'appareil à un téléphone portable dans le cas de personnes avec un handicap partiel, etc. La reconnaissance réelle du langage demanderait au moins d'analyser les fréquences supérieures, pour distinguer certaines consonnes comme le 's' et le 'f', et de trouver une représentation mieux adaptée à l'analyse du langage que la transformée de Fourier, éventuellement basée sur des ondelettes ou d'autres techniques. Offrir une représentation graphique est une alternative aux possibilités des produits modernes de reconnaissance vocale (eux-mêmes s'appuyant sur des analyses temps-fréquence) qui sont uniquement monolocuteurs et qui, par conséquent, sont de peu d'utilité aux personnes malentendantes. Le problème est de trouver une représentation dans laquelle il soit facile de reconnaître le langage.

Voici le code source des applets.


created on Thu Aug  1 2002