Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2181 connectés 

 


Dernière réponse
Sujet : afficher un audiogramme en ligne de commande
duch c'est pour faire une anim flash qui réagit en fonction du son.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
duch c'est pour faire une anim flash qui réagit en fonction du son.
jlighty 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 ?
duch [mode question con]
ça correspond à quoi un échantillons? (en ms?)
[/mode question con]
jlighty pour simplifier il faudrait connaître la structure de l'entête d'un fichier Wav pour trouver le nombre d'échantillons utilisés
jlighty je pense que c'est normal, seul 8192 échantillons ont été pris. Augment cette valeur à 100000 échantillons (dans le programme

Code :
  1. int n = 8192;

->

Code :
  1. int n=100000;

duch ouaip, j'ai réussi à le faire en changeant l'échelle, voilà le fichier pl :
 

Code :
  1. #!/usr/bin/perl
  2. # Generate postscript and png plot with GNUplot
  3. # (C) 2005 www.captain.at
  4. # set custom font path
  5. $ENV{GDFONTPATH} = "/var/www/shared/private/php/";
  6. # GNUPLOT POSTSCRIPT
  7. open (GNUPLOT, "|gnuplot" );
  8. print GNUPLOT <<EOPLOT;
  9. set term post color "Arial" 12
  10. set output "data.ps"
  11. set size 1 ,1
  12. set nokey
  13. set data style line
  14. set xlabel "echantillon" font "Arial,14"
  15. set xrange [0:10000]
  16. set yrange [-2000:2000]
  17. set title "valeur" font "Arial,14"
  18. set grid xtics ytics
  19. set xtics 100
  20. plot "data.raw" using 1:2 w lines 1
  21. EOPLOT
  22. close(GNUPLOT);


 
 
mais malheureusement, ça me donne un truc qui ressemble plus à une sinusoïde qu'autre chose :
 
http://gregory.icilalune.fr/data.ps

jlighty 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
duch 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...
jlighty 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
duch donc en gros si au lieu d'utiliser data.dat, j'utilise data.raw, j'aurais mon audiogramme?
 
j'essaies ça tout de suite.
jlighty 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 :)
jlighty 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 ?
duch 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 :
 
http://gregory.icilalune.fr/audiogramme.gif  
 
ç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 :
 
http://gregory.icilalune.fr/data.png
jlighty c'est vrai que le design laisse à désirer :) mais son contenu est très intéressant ;)
duch il est trop bô ce site ;-)
jlighty 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"
duch 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...
jlighty 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
jlighty 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
duch 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.
jlighty c'est pour afficher en mode console ?
ou seulement un programme qui te fournie les "points"
 
duch 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...

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)