Calculer la moyenne des fréquences d'un extrait audio
- 50 réponses
- 11 participants
- 7 444 vues
- 11 followers
Yoann13
Je m'adresse à vous car, en tant que débutant, je bute sur un problème qui n'a peut-être pas de solution. Je travaille actuellement sur un projet personnel qui consiste à scinder en six morceaux un extrait audio d'un cri de bébé qui dure 1 seconde. Après ce découpage, je souhaiterais obtenir une moyenne de la totalité des fréquences de chacun des 6 morceaux. Je ne sais pas si cela est possible et mes recherches sur internet n'aboutissent pas. Je sollicite alors votre aide pour m'aider à avancer dans mon projet. J'espère que j'ai été suffisamment clair. N'hésitez pas à me demander davantage d'infos si besoin.
Merci d'avance.
PS : j'utilise, comme beaucoup de débutants, le logiciel Audacity.
Gros Corps Maladroit
qu'entends tu par
obtenir une moyenne de la totalité des fréquences
cela me fait a priori penser à une interpretation style analyse de fourrier (pas sur du terme ??) ou il est considéré qu'un son a un instant t1 peut etre considéré comme la somme (mais infinie il me semble) de sinusoide de frequence et d'amplitude différénte.......confus peut etre je suis....un exemple de ce que j'ai compris : 100hz/70db; 200hz/12db ...........1600hz/40db...etc
pas forcement multiple entier je crois d'ailleus...
bon bref , du coup tu voudrais une moyenne de quoi?? en plus au temps t2 ca change, t3 aussi....etc..... en fait je ne vois pas ce que tu voudrais calculer
tu connais les représentations d'un son sur 3 axes?? frequence/temps/amplitude ?? style soundforge etc...?
Anonyme
Nuendo sait faire ça, mais je me suis toujours demandé à quoi ça pouvait bien servir. La réponse est évidente : à rien ! Du coup, si tu y trouves un intérêt quelconque, ça m'intéresse de le savoir.
laurend
Connaitre la fréquence fondamentale permet de déterminer une note. Mais une moyenne ? En log, en linéaire ? Une moyenne géométrique, algébrique, harmonique ? Pourquoi faire ???
MaximalSound.com
Le mastering algorithmique en ligne depuis 2010
Démo SoundCloud
Sound On Sound Shootout
Crédits YouTube
EraTom
Est-ce que tu peux donner une définition de ce que tu entends par moyenne ?
Est-ce que tu peux aussi nous expliquer le but de ton application ?
En théorie du signal, le "spectre d'un son" ou "densité spectrale de puissance" est déjà l'espérance mathématique de sa transformée de Fourier.
Elle représente "la moyenne d'ensemble" des réalisation du son...
... Et comme il n'est pas souvent possible (euphémisme) d'obtenir un ensemble de réalisations d'un signal, on croise les doigts pour ce que celui-ci soit "ergodique stationnaire au sens large", ce qui permet d'estimer la moyenne d'ensemble à partir d'une moyenne temporelle.
On entend clairement (des fois un peu trop) que le cri d'un bébé change en permanence (fréquences, amplitude...) : Il n'est pas ergodique stationnaire au sens large (zut !) mais il y a moyen de s'en sortir tout de même (ouf !) en découpant celui-ci en petites trames successives (ou recouvrantes) de quelques dizaines de millisecondes.
On considère que le son n'évolue ou ne change pas trop à l'intérieur de chaque trame, et donc qu'il est "localement ergodique stationnaire au sens large" ("localement ergodique" ferait bondir un puriste, pourtant c'est l'approximation qui permet les bricolages... et les estimations sur des signaux réels).
Mais vient alors le problème du fenêtrage et de la limite de résolution de la transformée de Fourier :
https://fr.wikipedia.org/wiki/Fen%C3%AAtrage
Il faut donc trouver un compromis :
- Des trames assez courtes dans lesquelles le signal ne varie pas trop, sinon l'estimation du spectre ne rime à rien.
- Des trames assez longues pour que l'étalement ne nous donne pas une estimation où toutes les fréquences sont... confondues.
Tu obtiens ainsi une succession de spectres estimés sur chaque trame. Tu peux les représenter ensuite pour tracer un spectrogramme.
https://fr.wikipedia.org/wiki/Spectrogramme
Je sais qu'Audacity permet de calculer et de tracer un spectrogramme... mais je ne connais ce logiciel sur le bout des doigts ; il va falloir que tu regardes dans son manuel.
Ici tu as les paramètres accessibles : https://manual.audacityteam.org/man/Spectrograms_Preferences/fr
"Window Size" et la longueur des trames dont je te parlais est donnée en nombre d'échantillons.
Faire la moyenne temporelle du spectrogramme fait perdre une partie de l'information disponible... Je n'en vois pas trop l'intérêt (mais je ne connais pas le but de ta manip).
Si le signal varie beaucoup trop rapidement et rend impossible le bon compromis il faut utiliser d'autres techniques que l'estimation du périodogramme (en clair, la FFT) ; les méthodes dites à "hautes résolutions", ou HR.
Je ne crois pas qu'Audacity permet de telles analyses (mais encore une fois, je ne connais pas vraiment ce logiciel).
Ces techniques consistent généralement à utiliser un modèle paramétrique dont les paramètres optimaux sont recherchés pour coller au mieux à la trame enregistrée. Le fait d'utiliser un modèle paramétrique est un moyen d'introduire une connaissance a priori sur le signal et sa forme ; et cette connaissance permet d'estimer des fréquences sur des trames très courtes, là où une FFT ne donnerait rien de probant.
Le truc c'est qu'il ne faut pas utiliser les méthodes HR n'importe comment : Il faut que le modèle colle au signal réel. S'il s'en écarte trop le modèle converge vers... n'importe quoi, et ce qu'il retourne ne rime à rien.
C'est pour ça que l'on peut trouver des avis très mitigés sur les techniques HR du genre "-Les méthodes HR on n'y voit rien, c'est nul". Ben ouais, il ne faut pas la choisir au hasard et s'assurer qu'elle colle bien au type de signal que l'on veut analyser.
Pour la voix et la parole, le modèle qui a fait ses preuves et le modèle "autorégressif"
https://fr.wikipedia.org/wiki/Processus_autor%C3%A9gressif
C'est lui qui est au fondement du codage linéaire prédictif (son acronyme anglais : LPC)
https://en.wikipedia.org/wiki/Linear_predictive_coding
Ici c'est expliqué en détails : http://julien.pinquier.free.fr/These/these/node120.html
Mais je ne connais pas d'outil clef en main pour le faire (je suis un geek / nerd qui travaille sous MatLab). Peut-être quelqu'un d'autre ?
Yoann13
En fait, je suis un jeune artiste plasticien. J'étudie en ce moment les figures de Chladni et je compte créer une oeuvre avec ces "motifs" générés par le son. Mon ambition est d'extraire une sorte de moyenne des fréquences d'un très court extrait du cris en question. Ainsi, je pourrai obtenir une fréquence précise qui serait en quelques sorte une réduction symbolique d'un morceau du cri. Je pourrais finalement utiliser ce son pur afin de générer une figure de Chladni. En effet pour générer de tels motifs j'ai besoin de sons purs, voila pourquoi je tente d'obtenir un son pur qui serait un condensé de toutes les fréquences présentes dans les infimes parties du cri. Ainsi, grâce aux figures de Chladni, j'obtiendrai un visuel d'un fragment du cri. L'oeuvre finale refléterai divers fragments de l'évolution de ce cri. Sachez, en tout cas, qu'en aucun cas il ne s'agira d'utiliser les sons que j'obtiendrai pour qu'ils soient écoutés, mais simplement observés.
J'espère avoir été assez clair dans mes explications et que je parviendrai à réaliser ce que j'attend. Quoiqu'il en soit vous m'avez déjà fourni une multitude d'infos que je dois digérer, eh oui je suis vraiment novice en la matière, mais tout ça est passionnant.
Il me semble que je peux déja trouver quelques éléments de réponse dans vos indications. Mais avec les nouveaux éléments que je viens de vous fournir pourriez vous, s'il vous plait, me dire si cela est réalisable, et m'indiquer la procédure à suivre.
Merci encore
Gros Corps Maladroit
les figures dependent-elle de l'emplacement des fils?? je présume que oui ?
les figures sont elles constantes, experience repeté sur une meme fréquence?
Que se passe t il si on envoi autre chose qu'une sunusoide?? triangle, square...
laurend
MaximalSound.com
Le mastering algorithmique en ligne depuis 2010
Démo SoundCloud
Sound On Sound Shootout
Crédits YouTube
Gros Corps Maladroit
Yoann13
Gros Corps Maladroit
par contre...idée... une boucle (peut etre fortement detunée vers le grave??) d'une partie de ce cri, jouée en continue devrait amener à une repetition des dessins dans le temps non ?? ce ne serait plus une forme géométrique fixe, mais une evolution de forme répétée en boucle ?? non?? faudrait peut etre ajouter en permanence du sel...il doit bien en tomber continuellement de la plaque
Yoann13
Yoann13
Nuendo sait faire ça, mais je me suis toujours demandé à quoi ça pouvait bien servir.
Salut Jan, sais-tu comment faire avec Nuendo, ou encore mieux avec un logiciel libre ?
Merci d'avance
Yoann13
Nuendo sait faire ça, mais je me suis toujours demandé à quoi ça pouvait bien servir. La réponse est évidente : à rien ! Du coup, si tu y trouves un intérêt quelconque, ça m'intéresse de le savoir.
Salut Jan. Sais-tu comment faire avec Nuendo, ou mieux encore avec un logiciel libre ?
Yoann13
Alors, selon Jan, la manipulation que j'essaie de faire et possible sur Nuedo. Quelqu'un connait-il la procédure à suivre sur ce logiciel, ou mieux encore sur un logiciel libre ?
obe
Pour répondre à la question de Gros Corps Maladroit, une figure de de Chladni d'un signal carré est assez complexe.
Comme tu le sais peut-être déjà, un signal périodique carré peut être décomposé en somme d'onde sinusoïdales. On parle de serie de Fourier.
Toutes ces sinusoïdes ont un point en commun, leur fréquence est un multiple d'une fréquence de base que l'on appelle le fondamental.
La fréquence fondamental est celle qui donne la hauteur de la note.
Par exemple, une onde périodique avec une fréquence fondamentale à 440Hz donne une note : le La4.
Cette onde peut être décomposée en somme de sinusoïdes dont les fréquences sont les multiples du fondamentale (ici 440x2 = 880 Hz, 440x3 = 1320, 440x=1760Hz etc).
Pour un signal carré, la suite de ces harmoniques est bien connue : il n'y a que les harmoniques impaires et leur amplitude décroit comme 1/n où n est le numéro de l'hamonique.
Voici un spectre tiré de wikipédia d'une onde carré de fréquence fondamentale de 1000Hz.
On voit bien le fondamentale à 1000Hz, l'harmonique n=3 à 3*1000=3000Hz, l'harmonique 5 à n=5*1000=5000Hz etc...
Maintenant comment est-ce que cela se transpose au figure de Chladni ?
Dans la jolie vidéo, les figures de Chladni sont excitées avec une onde sinusoïdale. Il n'y a donc que la fréquence fondamentale etpas d'hamoniques. (Frequence pure).
Pour certaines fréquences pures la plaque rentre en résonance. A chaque fréquence de résonance est associée une figure de Chladni (on parle de mode propre de résonance). Au vu de la vidéo, on a pour cette plaque les fréquence de résonance suivantes : 345Hz, 1033Hz, etc. Ces fréquences dépendent de la géometrie de la surface, son épaisseur et de sa matiere (densité entre autre, vitesse du son etc).
Cela est calculable, mais relativement difficile mathématiquement parlant. L’expérience réalisée avec une corde et non une surface est beaucoup plus facile à décrire mathématiquement mais visuellement moins spectaculaire.
Avec une onde carré, chaque harmonique du signal est susceptible de former une figure de Chladni. Cela sera le cas si la fréquence de l'harmonique n tombe sur une des fréquences de résonance de la plaque (avec une certaine marge d'erreur que l'on appelle le facteur de qualité de la résonance).
La figure de Chladni totale est la somme des figures crées par chacune des harmoniques. (Plus exactement, la somme des figures crées par chacun des harmoniques pondérées par l'intensité relative de chaque harmonique)
Maintenant pour la question initiale, je comprend l’intérêt artistique, mais la réalisation risque d'être compliquée.
En effet, deux effets vont s'opposer.
D'une part pour que l'oreille humaine reconnaisse un son de cri de bébé, le son doit avoir des fréquences qui évoluent assez vite dans le temps.
Si on modélise un cri de bébé par une sirène de police (pourquoi pas ? dans une première approche), on a une rampe de fréquence qui passe de grave à aiguë disons de 500Hz à 5000Hz en environ une seconde.
Cependant, le temps de réponse des figures Chladni est beaucoup plus lent que ça. Elle ne vont pas arriver à suivre le signal.
Si un système oscillatoire est excité plus vite qu'il ne peut répondre -> il ne bouge pas.
(Digression et exemple : c'est à cause de cet effet qu'il n'y a quasiment pas de marèe en Mediterannée.
En effet, l'eau de la Mediterannée ne peut sortir que par Gibraltar, il faudrait des jours entiers pour que la marée commence à faire effet et que le niveau baisse significativement. Donc le temps de réponse du système est de plusieurs jours. Mais la période des marées est de 6 heures. Donc à peine la Mediterannée commence à se vider à marée basse que 6 heures sont passées et qu'il est temps de passer à la marée haute. Au final la Mediterannée, n'a quasiment pas de marée).
Le problème ici va être similaire. Le temps de réponse des figures de Chladni est de l'odre de la seconde et les modulations en fréquence nécessaire pour reconnaître un cri de bébé vont être de l'ordre de 50ms (je pense). Au final, les figures de Chladni, tout comme la Mediterannée ne vont pas bougés.
Néanmoins Gros Corps Maladroit a peut-être une très bonne idée en disant de ralentir le son. Certes le son sera plus grave, mais cela pourrait laisser le temps aux figures de Chladni de se mettre en place.
Un cri de bébé même très ralenti reste un cri de bébé tout à fait reconnaissable.
Dans le cadre d'un geste artistique cela me semble une approche tout à fait concevable.
[ Dernière édition du message le 24/01/2014 à 10:20:25 ]
Danguit
Il y a peut-être des idées à prendre dans ces docs : http://mtg.upf.edu/files/publications/Sandvold-ICMC-2005.pdf
http://recherche.ircam.fr/anasyn/peeters/ARTICLES/Peeters_2003_cuidadoaudiofeatures.pdf
Il me semble qu'une question un peu similaire avait été posée ici : https://fr.audiofanzine.com/techniques-du-son/forums/t.389640,existe-t-il-un-indicateur-synthetique-de-l-equilibre-frequentiel-d-un-fichier-audio,post.5608790.html
[ Dernière édition du message le 24/01/2014 à 11:28:01 ]
Gros Corps Maladroit
@OBE ,merci pour tes explications: claires, fluides et compréhensibles!
[ Dernière édition du message le 24/01/2014 à 11:22:33 ]
Yoann13
Merci pour tout
obe
Par contre, tu fais de l'art et non de la science, et tu pourrais donc bluffer.
Rien ne t’empêche de diffuser à l'auditoire le son de bébé, mais d'envoyer un son simplifié sur les plaques pour faire les figures de CHaldni
( c'est peut-être ce que tu avais prévu dès le début...)
Reste la question : comment créer ce signal simplifié.
La réponse n'est pas simple comme l'a mentionnée Eratom.
L'idée est de décomposer le cri de bébé en fenêtre temporelle avec deux conditions contradictoires.
- Une fenêtre de temps assez courte pour que le signal audio ne change pas trop.
- Une fenêtre de temps assez longue pour que l'analyse en fréquence puisse être pertinente.
J'ai un peu de temps ce matin et j'ai rapidement fait un test avec ce fichier son de sirène (c'est plus simple qu'un cri de bébé)
Avec wawosaur (plus simple qu'audacity à mon gout, mais que sur windows),
je selectionne une partie du fichier et je fais outils-> analyse de spectre (ou F)
J'obtiens le spectre de ce bout du fichier.
Dans l'exemple 1 je prends toute la montée en fréquence de la siréne :
On voit bien une fréquence qui passe de 500Hz à 1500Hz pour la fréquence fondamentale. Les harmoniques ont le même comportement. En combien de temps ? Ce graphe ne pourra pas me le dire.
Dans l'exemple 2, je ne sélectionne qu'une partie du fichier vers le début qui à mes oreilles ne correspond environ que à une seule note :
j'obtiens une fréquence principale de 1150Hz mais c'est très imprécis !
Dans l'exemple 3 je prend la derniere note :
et j'obtiens 1400Hz
D'où une décomposition en fonction du temps du contenu frequentiel. C'est très très grossier, mais cela pourrait suffire pour ce que tu comptes faire.
Autre solution réaliser un sonogramme qui est une version automatisée de ce que l'on vient de faire :
wavosaur->Outils->Sonogramme
Peut-être un peu plus dur à lire, mais toute l'information y est. On voit la fréquence du fondamental augmenter ainsi que les harmoniques qui suivent le même comportement
Avec les figures de Chaldni il faudra surement en plus arrondir les fréquences obtenues pour qu'elles tombent sur un mode propre de la plaque.
S'il s'agit de ne faire qu'un seul fichier sonore, tu peux le faire à la main. Si tu dois en faire plusieurs, il peut être intéressant de coder une procédure. En plus, tu gagneras grandement en précision.
Un dernier mot concernant les figures de Chaldni,
En tant qu'artiste tu connais surement processing, voici un exemple trouvé très rapidement de simulation de telles figures
https://www.openprocessing.org/sketch/59515
Je n'ai pas regardé le code, ni les équations physiques misent en jeu, donc je n'ai pas d'avis sur la qualité de la simulation. Néanmoins cela pourrait t'aider à voir et prévoir quelle figure tu vas obtenir.
En version plus scientifique, une simulation mathematica :
http://demonstrations.wolfram.com/ChladniFigures/
[ Dernière édition du message le 24/01/2014 à 12:40:52 ]
Anonyme
1: tu met ta loop dans Ableton, et tu accélére le tempo (en mode beat pour garder la tonalité) jusqu'à ce que tu est l'impression d'entendre un son continu, là tu prend un analyser de spectre et tu regarde quelle fréquence lead le son.
2: tu met ta boucle dans un séquenceur linéaire, tu la duplique un paquet de fois, et tu décale a chaque fois ta loop, pour que toutes les portion de la loop soit lue at the same time, et pareil, tu prend un analyser de spectre et tu regarde quelle fréquence sort du lot.
Danguit
A l'oreille le son devient plus grave en fonction du temps. En découpant en 2 parties (< 1s) on trouve d'abord 3638 puis 2976Hz (spectre en log). Donc c'est une méthode, et d'ailleurs Scilab par exemple (gratuit) permettrait d'automatiser le tout (découpage, FFT et calcul).
[ Dernière édition du message le 24/01/2014 à 14:58:54 ]
Yoann13
Yoann13
Danguit
- < Liste des sujets
- Charte

