Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 09 Septembre 2006 à 12:37:40 Bon alors voilà. J'ai eu une idée complètement débile (comme toutes les autres par ailleurs..) qui serait de coder un petit truc pour convertir (de préférence assez rapidement) des MP3s vers un format d'image (BMP, JPG ?).
Je ne veux pas simplement renommer l'extention.. J'aimerai que le son "conditionne" les couleurs des pixels.. de mamière à recréer l'image.. Je sais pas si vous avez tout suivi ou pas. Quoi qu'il en soit, j'aurais voulu savoir si vous aviez de bons articles sur ces formats ou même une idée qui pourrait m'avancer dans l'histoire. :wink: Titre: [général] MP3 < - > BMP Posté par: pied de mamouth le 09 Septembre 2006 à 12:46:42 Salut,
J'ai déjà vu un truc proche de ce que tu veux faire. En gros le prog regardait le tempo et d'autre truc dans le genre et en déduisait une "couleur" pour le morceau. Donc après plutot que de repérer les morceaux par genre tu peut les repérer par couleurs. Après tu peux avoir une couleur identique pour deux morceaux différents. Donc si tu veux une image bien différente pour tout les morceaux possibles ca le fait pas. Mais je dirais que pour créer ton image tu devrais te baser sur les caractéristiques " mesurables" du morceau ( je sais pas trop les quelles, je suis pas musicien ). Euh pour le programme c'est un étudiant d'une école d'ingé ( l'ECE à paris ) qui l'a fait mais j'ai ni son nom ni son mail ni ..... . Donc bonne chance =D Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 09 Septembre 2006 à 12:49:10 Merci quand meme pied de mamouth. Si il l'a fait, c'est déjà bon signe !
S0410N3 m'a conceillé de prendre une lib pour convertir MP3 en WAV. C'est pas bête. :wink: Titre: [général] MP3 < - > BMP Posté par: Ge0 le 09 Septembre 2006 à 15:29:16 whaouuu... c'est casse cou
Moi justement je cherche sur google la spécification du MP3, sans résultats... :/ Titre: [général] MP3 < - > BMP Posté par: Kowasu le 09 Septembre 2006 à 15:33:31 Citation de: VeNoM630 whaouuu... c'est casse cou hXXp://www.mp3-tech.org/programmer/programmers.htmlMoi justement je cherche sur google la spécification du MP3, sans résultats... :/ ;) J'ai déjà commencé l'étude depuis un bout de temps. Titre: [général] MP3 < - > BMP Posté par: TheWeasel47 le 09 Septembre 2006 à 20:06:49 Salut Perfect slayer,
Alors je te dit Moi je suis partant! ENvoie un MP pour mon msn si tu veux qu'on bosse ensemble! Cet experience peu etre tres enrichissante par cotnre tout d'abord j'aimeria voir pour un truc du genre wav=>bmp deux formats non compresse donc plus imple tu en penses quoi ?:cool: @++ TheWeasel Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 10 Septembre 2006 à 07:12:19 Ouais c'est ce que j'ai commencé. Pour l'instant j'ai réussit à extraire les données du WAV. Maintenant faut que je vois à quoi elles correspondent (donc là, c'est plus tellement le format WAV qui rentre en jeu mais l'encodage.. Apres je vais voir le format du BMP pour essayer un envoit direct..
C'est seulement apres que je vais tenter de modifier les données pour former des formes plus concretes en fonction du son etc.. Sinon pour ce qui est de bosser ensemble pourquoi pas mais je n'ai pas beaucoup de temps à moi pour l'instant (étant en prépa). J'ai commencé le tout en PHP (c'est ce que je maitrise le mieu) et je pense que si les résultats sont convainquant, je passerais ça en C. Voilà, c'est à toi de voir si tu veux un mou comme moi pour bosser avec toi :P Mais sinon ouais pourquoi pas tous les 2 ! :wink: Titre: [général] MP3 < - > BMP Posté par: UnKn0wM1nd le 10 Septembre 2006 à 07:23:48 Bonne chance :wink:
Ca serait bien si des volontaires mettrait des "bons" programmes de leur confection sur NC... :/ À profit de la communauté de NC si bien apprécié ^^' Ok... J'arrete de divaguer et je vais me coucher :cool: Et encore : « Bonne Chance ! » pour la chance :shock: [[ Et merde ... C'est presque (Presque? :evil: ) du Flood :cry: ]] 3D1t : Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 10 Septembre 2006 à 08:34:09 Bon bah voilà ou j'en suis pour l'instant :
(http://www.hiboox.com/images/3606/b7522cc6.jpg) J'ai les données quoi.. J'essaie de voir à quoi correspond précisément les points suivants : # fréquence d'échantillonnage # nombre de bytes par seconde # nombre de bytes par échantillon # nombre de bits par échantillon Sachant qu'en plus il a plusieurs types de compression.. Ca va etre ennuyant si c'est compressé. J'ai trouvé quelques algorithme de décompression, il faudra les refaire en PHP. Wait & See donc.. Titre: [général] MP3 < - > BMP Posté par: Nebelmann le 10 Septembre 2006 à 09:15:04 Citation J'essaie de voir à quoi correspond précisément les points suivants : là il me semble que tu rentres dans le domaine du traitement de signaux... en fait, partant de ta source sonore, le dispositif de capture/compression va effectuer un échantillonnage tous les t temps (d'où fréquence d'échantillonnage), c-à-d qu'il va transformer le signal sonore en données numériques (du wav dans un premier temps je pense), et en fonction de la compression voulue (ou non), ce "paquet" de données va être représenté sur un certain nombre d'octets (bytes :D). De là tu peux trouver le nombre d'octets par secondes, en fonction de la fréquence d'échantillonnage et de la taille d'un échantillon...# fréquence d'échantillonnage # nombre de bytes par seconde # nombre de bytes par échantillon # nombre de bits par échantillon Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 10 Septembre 2006 à 10:29:26 Ouais je vois un peu ce que tu veux dire. J'suis tombé sur quelques liens intéressants dont un d'un membre de developpez.com (http://sub0.developpez.com/FormatWAV/FormatWAV.htm). J'avance pas plus ce matin parce que je taffe depuis 10H. J'me fesais juste une petite pause : je retourne à mes maths :wink:
Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 10 Septembre 2006 à 18:21:20 Re tout le monde. Je réfléchis à tout ca mais je bloque un peu sur la théorie là.. J'arrive parfaitement à récuperer les données, les couper selon l'amplitude, le nombre de voies etc..
Mais à quoi correspond réellement c'est valeur.. c'est là ou je lutte un peu. Je vois pas à quoi ca correspond vraiment ces données.. Les valeurs que je prends : c'est la valeur actuelle de l'amplitude.. le tout en dB ? Ce que j'aimerai savoir c'est comment apres, récuperer le pourcentage de chaque fréquence du son (comme les équaliseurs le font pour retrouver les aigue, les basses.. Je continue les recherches donc.. Titre: [général] MP3 < - > BMP Posté par: pied de mamouth le 10 Septembre 2006 à 18:39:06 Arretez moi si je me trompe mais pour trouver l'amplitude moyenne associée à chaque fréquence il faut faire une analyse fréquentielle ( comme l'a dit Nebelmann ). Si tu te content de lire les octets de ton fichier tu vas trouver que des notes à la suite et pas des valeurs en DB pour certaines fréquences. En gros je dirais qu'il faut un autre programme pour réaliser l'analyse fréquentielle, ce programme devrait te retourner toutes les valeurs qui t'intéressent. Après pour trouver le programme qui va bien ... ou alors tu le fais à la main ;-)
PS : pour l'analyse fréquentielle je crois que c'est avec M. Fourrier qu'il faut voir ça Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 10 Septembre 2006 à 19:31:22 Ah zut.. C'est ennuyeux ca.. En plus les décompositions en suites de Fourrier sont au programme cette année. C'est dommage que je l'ai pas vu avant. Sinon il faut que je prenne des sources qui font déjà ca.. M'enfin au moins je comprends pourquoi je n'avançais plus. Je regarderai dans la semaine si je peux trouver ce genre de code ou même les algorythmes.
Titre: [général] MP3 < - > BMP Posté par: neoflo le 10 Septembre 2006 à 19:51:08 Ce n'est pas les suites de Fourier. C'est un passage dans l'espace des fonctions de Fourier avec utilisation des transformées de Fourier discrète (qui est différent des séries de Fourier).
Il y a des algorithmes de base très simple d'implémentation mais peu rapide (O(n²)). Il vaut mieux utiliser les algorithmes du type FFT = Fast Fourier Transform (O(n ln n)) En langage C, je sais qu'il y a la bibliothèque FFTW pour calculer des transformées de fourier discrète à 1 (par exemple pr de la musique) ou plusieurs dimensions (par exemple 2 pour des images). Lorsque tu as passé ton signal dans l'espace de Fourier. Tu peux voir tout de suite les fréquences utilisées et facilement calculer les pourcentages. Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 12 Septembre 2006 à 18:25:59 On a tout juste commencé les grandes explication en cours.. mais malheuresmeent on a pas encore vu comment décomposer le tout.. Si tu dis qu'il existe des algorithmes FFT, alors je regarderais ça se week-end pour l'implémenter dans ma source. Mais déjà, rien que le fait d'avoir eu un cours dessus m'a aidé à bien comprendre comment était organisé le tout (je n'avais aucune notion au paravant).
Merci pour tes infos Neoflo (si jamais t'as déjà les liens des algorithmes, fait-les moi parvenir sinon je chercherai par moi-même). Je n'ai pas trop le temps d'avancer dessus pour l'instant.. Peut-être en mercredi ou jeudi soir.. :wink: Titre: [général] MP3 < - > BMP Posté par: neoflo le 12 Septembre 2006 à 20:25:24 Tiens, un cours que j'ai fait sur le traiteement d'image, ça pourra peut être t'aider.
Le cours est encore en cours de correction : http://humbert-florent.ftp-developpez.com/algorithmique/traitement/traitement.pdf Titre: [général] MP3 < - > BMP Posté par: neoflo le 13 Septembre 2006 à 16:33:23 J'ajoute que je n'ai pas développé la FFT dans mon cours.
En général, dans les cours de traitement du signal, les algorithmes que l'on voit fonctionne en une dimension. Pour deux dimensions, je pense que c'est à peu près pareil, mais je n'ai jamais vu. Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 13 Septembre 2006 à 18:38:00 Je viens de jetter un coup d'oeil rapide à ton document et en un mot : bravo :wink:
Très complet (ca va m'en faire de la lecture !) et ca me donne une utilisation des maths et de l'algorithmique que je ne connaissais pas au paravent (bon ok, je n'ai pas tellement d'expérience que ca (MP + option info)). Je vois que tu es sur le FTP de developpez.com, serais-tu un de leurs rédacteurs ? Titre: [général] MP3 < - > BMP Posté par: neoflo le 13 Septembre 2006 à 18:49:05 J'ai effectivement un espace :
http://humbert-florent.developpez.com Je n'ai pas encore le statut de rédacteur à cause de léger problème que j'ai eu avec le responsable. Mais ce n'est qu'une question de temps. Le cours sur le débruitage qu'il y a sur le lien devrait te donner pas mal de raison d'utiliser des mathématiques avançés. Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 13 Septembre 2006 à 20:23:54 Bon alors apres avoir lu plusieurs site web, j'en suis arrivé à peu pres là :
Pour avoir mes pourcentages en fonction des fréquences : - il faut que je prenne un passage du son (par exemple 0.01 sec) - j'imagine qu'il tourne en boucle, il est donc périodique de fréquence 1/0.01 = 10Hz - A partir de se signal, j'utilies les algo de FFT, je récupère donc les an (a indice n) et le bn (b indice n) de la décomposition en série de fourrier. Ces derniers correspond alors à l'amplitudes des signaux sinusoidaux de 10Hz, 20Hz, 30Hz.. Donc normalement en comparant ces an et bn, je peux connaitre le pourcentage des frequences ? (d'ailleurs je les compare à quoi ? a0 ?) Voilà, j'ai compris ca : corrigez-moi si ce n'est pas ca.. Sinon j'ai une question aussi, apparement les algorithmes prennent des fonctions.. Or moi j'ai un ensemble de points de la courbe représentatrice de la fonction.. J'ai pas encore très bien lu les algorithmes pour savoir si c'était génant ou pas.. Titre: [général] MP3 < - > BMP Posté par: neoflo le 13 Septembre 2006 à 20:38:10 Citation , j'utilies les algo de FFT, je récupère donc les an (a indice n) et le bn (b indice n) de la décomposition en série de fourrier Normalement, dans les transformées de Fourier discrète, il n'y a pas de série de Fourier (comme je l'ai déjà dit), tu es sûr de l'algorithme ? Normalement, il prend en entrée une suite à support bornée.Mais ce qui est bizarre, c'est que tu parles de a_n et b_n qui n'est définie que pour les séries de Fourier. Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 14 Septembre 2006 à 19:08:23 Rectification.. Ca me fait tout aussi chier de reprendre le code en C.. Je suis HS là.. Titre: [général] MP3 < - > BMP Posté par: neoflo le 14 Septembre 2006 à 19:32:17 Il y a peut-être des bibliothques en php permettant de faire cela.
Mais un gros problème étant que le php est interpreté. Alors si un programme mets 10 20 sec en C à faire les calculs, en php, je ne sais pas ça va prendre combien de temps. Et encore, pour certains algorithmes de débruitage, il faut 15 20min sur une petite image (genre 512 * 512) noir et blanc pour la restaurer. J'ose pas imaginer en php. Programmer la FFT, je l'ai déjà fait pour une dimension, j'ai déjà trouvé sur un site une astuce pour passer facilement à la 2D, mais c'est assez casse gueule. Titre: [général] MP3 < - > BMP Posté par: kad le 14 Septembre 2006 à 19:50:20 Hello
Ce que tu veux veux faire relève en effet du traitement de signal sonore. Je ne suis pas très calée sur ce sujet, sauf du point de vue astronomique: en effet, les images satellites météorologies (NOAA ou METEOSAT) ne sont qu'une succession de sons transmis par onde radio, et décodés pour être réinterprétés en image. Il existe plusieurs logiciels en radio-astronomie qui existent pour interpréter ses signaux, notamment WXtoImg. J'espère que ça pourra t'aider :) nb: Ceci fut mon premier post. Cette journée restera à jamais gravée dans ma mémoire... Quoi? J'en fais trop? naaaaaan...... lol Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 14 Septembre 2006 à 19:57:04 Bah ce qui serait pas mal c'est si je pouvais trouver les algorithmes de FFT en langage algorithmique... (et non en maths..). A ce moment là je pourrais les transcrire.. Parce que j'ai regarder mais la librairie de C, j'en ai pour 15 ans à la refaire.. Sinon j'ai posté sur developpez.com.. Ils auront peut-être quelque chose pour moi.
Titre: [général] MP3 < - > BMP Posté par: neoflo le 14 Septembre 2006 à 20:08:04 Je vais te donner gentiment le code source que j'avasi fait en scilab qui permettait de calculer une TFD en une dimension.
Il faudrait ensuite utiliser la page : http://www.essi.fr/~leroux/crim2/node50.html pour le faire convertir en deux dimensions. Code: //////////////////////////// Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 15 Septembre 2006 à 12:31:03 Oki merci, c'est gentil à toi. Je voyais ca plus compliqué en fait.. La fonction est récursive mais si je me souviens bien, ca ne doit pas poser de probleme à PHP..
Sinon, dans le pire des cas : j'ai en TD info de physique ou justement on allait construire ca.. (en Mapple :cry: quel merde ce langage..). Si j'ai le temps je retranscris ca en PHP et le test ce soir. Encore merci :wink: Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 16 Septembre 2006 à 19:07:52 Arf fait ###, j'ai jamais vu de calculs de complexe avec PHP.. ! :lol: Va falloir que je vois ca..
Titre: [général] MP3 < - > BMP Posté par: neoflo le 16 Septembre 2006 à 21:10:08 Suffit de faire soit :
- Un type abstrait de donnée Tableau complexe qui contient un tableau de réel et un tableau de imaginaire - Un type abstrait Complexe (mais peut-être moins rapide mais à l'avantage de ne pas nécessiter deux fois plus d'appel de fonctions) Pis utiliser des cos et des sin au lieu de l'exp. Titre: [général] MP3 < - > BMP Posté par: Perfect Slayer le 19 Septembre 2006 à 16:38:17 Finalement, pour le challenge, je décide de tout faire moi meme. Je passe donc par la définition de la décomposition en série de fourier. Soit an = 2/T intégrale(f(t)*cos(n #omega# t) dt, t', t'+T). En gros l'intégrale sur une période de la fonction * cos (n * oméga * t). Et pour les bn, c'est sinus.
J'ai fait une fonction d'intégration qui utilise l'approximation de l'aire (par des rectangles, pas la méthode des tangentes). Elle prend pour argument un tableau de valeur de la fonction et les bornes d'intégration. Ca ressemble à ca : Code: function integrale($val, $a=0, $b=NULL) { Titre: [général] MP3 < - > BMP Posté par: neoflo le 20 Septembre 2006 à 21:05:00 J'ai dû dégagé la partie sur la TFD sur mon cours à cause d'imprécision apparement. Donc, cette partie ne sera plus disponible.
|