afficher un audiogramme en ligne de commande - Linux et OS Alternatifs
Marsh Posté le 02-06-2005 à 16:30:22
c'est pour afficher en mode console ?
ou seulement un programme qui te fournie les "points"
Marsh Posté le 02-06-2005 à 16:32:19
idéalement un programme qui exporte les points, mais si ça affiche en mode console, je pourrais récupérer les caractères ascii et me demmerder.
Marsh Posté le 02-06-2005 à 16:39:25
un programme en ligne de commande qui effectuerait une FFT sur une source sonore par exemple ?
par contre je doute que ce soit du temps réel
Scilab par exemple
Marsh Posté le 02-06-2005 à 16:41:45
un programme plus simple que Scilab
http://www.captain.at/howto-fftw-spectrograph.php
Le programme en C va effectuer à partir d'un son wav sa tranformé de Fourier rapide.
Le script suivant va uniquement mettre en forme le résultat sous GNUPlot
Marsh Posté le 02-06-2005 à 16:59:23
merci pour ce lien, j'ai réussi à faire marcher fftux, mais je ne comprends pas grand chose aux listes de points générées...
J'vais m'creuser la tête...
Marsh Posté le 02-06-2005 à 17:01:09
je te conseille de regarder des cours de traitement du signal
http://perso.wanadoo.fr/xcotton/el [...] etdocs.htm
il y a un chapitre "traitement du signal"
Marsh Posté le 02-06-2005 à 17:05:28
c'est vrai que le design laisse à désirer mais son contenu est très intéressant
Marsh Posté le 03-06-2005 à 11:11:41
bon bah après avoir tester tout ça, en fait ça ne renvoir pas du tout un audiogramme mais l'analyse du signal, et c'est pas ça que je cherche.
pour faire plus clair voilà ce que je cherche à obtenir :
ça c'est la forme graphique mais si je pouvais l'avoir sous forme d'une liste de points...
NB : avec fftux, voilà ce que j'ai obtenu pour ce son :
Marsh Posté le 03-06-2005 à 11:55:56
Ah d'accord je comprend, fftux te retourne les fréquences utilisées alors que tu veux l'affichage de ton signal dans le domaine temporel
D'après le code source, il examine le fichier Wav pour créer un fichier RAW avant de faire la FFT.
Que contient ce fichier RAW ?
Marsh Posté le 03-06-2005 à 12:00:23
en fait le fichier RAW est structuré de cette manière :
<numéro de l'échantillon> <valeur non signé de l'échantillon>
ex:
1 20
2 50
3 100
4 150
donc il suffit de traiter le fichier avec GNUPlot par ex pour afficher l'amplitude de l'échantillon en fonction du numéro d'échantillon
Marsh Posté le 03-06-2005 à 12:55:46
donc en gros si au lieu d'utiliser data.dat, j'utilise data.raw, j'aurais mon audiogramme?
j'essaies ça tout de suite.
Marsh Posté le 03-06-2005 à 12:56:52
exactement il suffit de ne prendre que data.raw
d'ailleur tu peux retoucher le code source : efface tout le code alloué au calcul de la FFT
Marsh Posté le 03-06-2005 à 13:02:16
bah en fait ça marche pas vraiment mieux, j'ai utilisé data.raw à la place de data.dat dans generate-plots.pl mais j'ai un graph tout plat!
j'ai mis data.raw en ligne :
http://gregory.icilalune.fr/data.raw
d'ailleurs les valeurs de data.raw sont signées (bizarre?).
NB : en même temps c'est peut-être un problème d'échelle dans l'utilisation de GNUplot, mais comme j'y connais rien non plus à GNUplot...
Marsh Posté le 03-06-2005 à 13:12:33
oui c'est normal car le programme C "formate" le fichier de manière qu'il exploitable par GNUPlot
ce qu'il faut faire :
lance gnuplot
puis tape :
plot "data.raw"
là il va tracer les points
Marsh Posté le 03-06-2005 à 13:16:36
ouaip, j'ai réussi à le faire en changeant l'échelle, voilà le fichier pl :
Code :
|
mais malheureusement, ça me donne un truc qui ressemble plus à une sinusoïde qu'autre chose :
http://gregory.icilalune.fr/data.ps
Marsh Posté le 03-06-2005 à 13:26:16
je pense que c'est normal, seul 8192 échantillons ont été pris. Augment cette valeur à 100000 échantillons (dans le programme
Code :
|
->
Code :
|
Marsh Posté le 03-06-2005 à 13:27:21
pour simplifier il faudrait connaître la structure de l'entête d'un fichier Wav pour trouver le nombre d'échantillons utilisés
Marsh Posté le 03-06-2005 à 13:27:48
[mode question con]
ça correspond à quoi un échantillons? (en ms?)
[/mode question con]
Marsh Posté le 03-06-2005 à 13:31:34
c'est suivant la fréquence d'échantillonnage
la période d'un échantillon = 1/fréquence d'échantillonnage
donc si c'est du 44.4Khz -> 0.0225ms
donc avec 8192 ech -> 184.32ms donc c'est à fait normal que tu obtiens des sinusoïdes bien distinct !
avec 100000 ech -> 2.250s là tu devrais commencer à obtenir la même chose que la figure précédemment.
PS: par curiosité tu veux en faire quoi du diagramme temporel ?
Marsh Posté le 03-06-2005 à 13:47:05
c'est pour faire une anim flash qui réagit en fonction du son.
Marsh Posté le 02-06-2005 à 16:07:06
salut à tous,
dans la série des trucs bizarres, je cherche à récupérer l'audiogramme (le spectrogramme, enfin bref l'enveloppe du son) en ligne de commande, quelqu'un connait un soft pour faire ça? Genre un soft qui le sortirait sous la forme d'un graph ascii ou encore sous forme d'une liste de points...