Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Synthese par apprentissage

  • 56 réponses
  • 6 participants
  • 3 076 vues
  • 2 followers
1 Synthese par apprentissage
SAlut,

Je trippe actuellement sur la recherche de nouveau moyen de synthese du son (du moins j'essaye...) et je reste skocthé par l'algorithme de descente du gradient dans sa version stochastique....(deja utilisé en audio pour faire de la reduction de bruit par exemple)

Principe:

un signal de reference x(t) qui passe dans un modele inconnu (de nous) et qui sonne d(t)...
en parallele on construit un modele type filtre FIR initialisé aleatoirement et on lui met en entree x(t).....on obtient un signal en sortie de ce modele que l'on appele e(t) de t (e pour estimation)...

ensuite on compare d(t) et e(t) puis on recalibre les coefficient du filtre de facon a minimiser cette erreur....ce travail est fait recursivement...(d'ou le terme apprentissage le modele apprend)

Ca m'a donné plein d'idee....que j'ai commencé a exploité au niveau musicale...il y a encore plein de taf...

Imaginez ...x(t) un bruit....et d(t) un son type piano....bon l'algo c'est pas non plus un outil magique il va pas nous sortie e(t) un son de piano....mais par contre on entend une sorte de bruit filtré interessant...lorsque on superpose e(t) et d(t) c'est meme agreable

Il faut que j'etudie ca plus en profondeur mais je pense que ca peut etre un outil interessant pour les sound designer orientés "noise"...synthese par apprentissage, synthese adaptative, je lui ai toujours pas donné son petit nom :clin:

Voila des commentaires ? des suggestions ? des idée ? des connaissances ? je suis souvert a toutes critiques :8)
2
:bravo: super bien l'idee ! tu penses pouvoir pondre un VST ???
3
Je pense qu'il faut que je me prenne plus la tete sur ce que je peux tirer de l'algo en changeant par exemple l'architecture (genre faire un apprentissage par bande de frequence etc)...

DOnc Matlab pour l'instant et apres un VST pourquoi pas ?....
4
Salut Choc,
Je vois que tu es bien motivé :lol: c cool ...

Citation : Je trippe actuellement sur la recherche de nouveau moyen de synthese du son (du moins j'essaye...) et je reste skocthé par l'algorithme de descente du gradient dans sa version stochastique....(deja utilisé en audio pour faire de la reduction de bruit par exemple)


--> je n'ai jamais joué avec ca pour faire du son, par contre j'ai joué avec des reseaux de neurones et des algos genetiques (pour faire vivre des petits robots virtuels :clin: ) ...
L'interet par rapport a des systemes comme la descente du gradient est que l'apprentissage est automatique... Tu definis des regles de selections et seuls les individus correspondant au mieux a tes regles survivent (a la Darwin quoi :clin: ).
C'est peut etre une autre piste a creuser ?

@+
o-X-o
5
O-X-o> J'ai egalement fait pas mal de reseaux de neurones...

Toi tu parles des reseaux de neurones dans leur application puremement "classification"...

ET bingo, c'est un truc qui marche bien par exemple pour les problemes de reconnaissance de hauteur de son polyphoniques....(la ou la recherche butte depuis des annees)

Transcription of polyphonic piano music with neural networks,Marolt, M. 2000 10th Mediterranean Electrotechnical Conference. Information Technology and Electrotechnology for the Mediterranean Countries. Proceedings. MeleCon 2000

Automatic Transcription of Music.Phd Thesis.Anssi Klapuri 1999
https://www.cs.tut.fi/~klap/iiro/


Moi ce qui m'interesse c'est plus la regression et la prediction..
6

Citation : Toi tu parles des reseaux de neurones dans leur application puremement "classification"...


Ouais, peut etre ! je n'ai pas forcement le vocabulaire qui va bien...
C'etait juste une remarque sur le fait de coupler le principe des reseaux de neurone a des algo genetiques pour eviter d'avoir a faire un apprentissage dit "manuel" ... dans le sens, je fournis des entrées, j'obtiens une reponse, j'utilise la descente du gradient, pour approcher le resultat, ...., je recommence, ...

Mais tu me parais assez calé, pour avoir deja joué avec tout ca... :clin:
7

Citation : je fournis des entrées, j'obtiens une reponse, j'utilise la descente du gradient, pour approcher le resultat, ...., je recommence, ...



Avec les algo adaptatif c'est la meme chose, sauf que l'architecture et beaucoup plus simple (la je cherche un simple modele lineaire du type filtre FIR alors qu'un reseaux MLP va me sortir des choses tres complexes -approxmimation de n'importe quel fonction de Rn - causé notamment par l'utilisation des fonctions d'activation non lineaires et lesenurones des differentes couches)

EN tout cas, je suis sur qu'on peut faire plein de chose avec ces outils en nottament en synthese de son...(je sais pas comment marche reelement le Hartman neuron...utilisant une synthese neuronale...il faut que je m'y mette plus serieusement :8) )
8
Ca a l'air super interessant matlab :8) je vais ptete me remetre a la prog !
je crois que je vais faire une tite recherche sur les progs de ce type!
9
Ca a l'air super interessant matlab :8) je vais ptete me remetre a la prog !
je crois que je vais faire une tite recherche sur les progs de ce type! :bravo:
10

Citation : Toi tu parles des reseaux de neurones dans leur application puremement "classification".



Il faut peut être démystifier ce qu'est un réseau de neurones :

Ce n'est qu'un réseau de cellules multiplicatives que l'on additionne ...
Une somme de produits, donc ...

Il se comporte d'une certaine manière pour un problème donné en fonction de son architecture, entrées/sorties, couches cachées etc ...
ET
de l'apprentissage que l'on a effectué qui à détrerminé la valeur des coeficients (poids) multiplicatifs de chaque branche (descente de gradient pour faire converger les coefficients et réduire l'erreur de sortie désirée)


Ensuite, tout dépend ce qu'on veut faire avec :

En classifieur, on dispose d'un ensemble de vecteurs d'entrée représentatifs d'une "classe" de données, chacun associés à une "sortie" désirée
C'est le mode "Supervisé".
Une fois "appris", un nouveau vecteur est présenté, et la sortie calculée dira s'il fait partie de la même classe ou non.

Mais dans ce mode on peut aussi faire autre chose que de la classification :

C'est alors un polynôme interpolateur :
Pendant l'apprentissage, la sortie demandée pour chaque vecteur d'entrée de l'ensemble d'apprentissage correspond à la valeur de sortie d'une "Fonction" qui est celle à "Modéliser" ...

Une fois appris, le réseau saura calculer une nouvelle sortie pour un nouveau vecteur d'entrée inconnu, et cette valeur de sortie sera une sorte d'interpolation de la fonction modélisée...

Là ça devient intéressant parceque le réseau commence à générer des valeurs de sorties "inconnues" mais corrélées avec les vecteurs d'apprentissage...
Ca peut être intéressant pour de la synthèse, mais il n'y a pas de paramètre à faire varier , bof bof ...

Autre mode possible : Mode NON-Supervisé :

On a toujours un ensemble de vecteurs d'entrée constituant l'ensemble d'apprentissage, correspondant généralement à une même classe, mais cette fois la structure du réseau n'est pas de N entrées vers m cellules cachées vers 1 ou plusieurs sorties, mais N entrées vers m cellules cachées (m<n) et encore N sorties.

L'apprentissage (dans tout les cas c'est une descente de gradient classique) consiste alors à faire converger les poids du réseau de telle sorte que pour chaque vecteur d'entrée, le réseau apprenne à reconstruire le MEME vecteur en sortie !!!!
C'est là le coté génial, parceque comme il passe par une couche interne comprenant beaucoup moins de cellules, en fait le réseau agit comme une sorte en compression, c.a.d. qu'il a trouvé une représentation plus petite pour les même vecteurs d'entrée.

Coté synthèse, ce qui pourrait être intéressant, c'est qu'un fois appris un modèle (de forme d'onde par exemple), alors en faisant varier les coefficients de cette couche cachée on modifie le type de compression/decompression que le réseau réalise, et on a qqchose proche du morphing, où les paramètres que l'on touche ne sont ni l'amplitude du signal, ni sa forme d'onde, mais plutôt les coefficients d'une sorte de filtre (de type incinnu), comme si dans un FIR on allait modifier certains coefficients sans se soucier de la fonction de transfert ...

Ce type de réseau "auto-supervisé" s'appelle aussi le "Diabolo".

C'est en gros le principe du Neuron, qui modélise un son à travers un filtre neuronal mais dont on ne connait pas précisemment la signification de chacun des paramètres, que l'on fait ensuite varier pour obtenir de nouveau sons, ou autre appli possible, avec 2 jeux de coefficients correspondants chacun à un type de son, on peut "interpoler" tout simplement les coefficients progrssivement pour obtenir un morphing d'un type nouveau, puisque le chemin parcouru par le signal pendant le morphing entre le son A vers le son B n'est pas le chemin le plus court (morphing classique) mais UN chemin dans l'espace de représentation du réseau de neurones ...

Je pense aussi comme vous qu'il y a surement des méthodes de synthèse à tirer de tout ça, il faut s'y mettre et chercher un mode de fonctionnement original !!!
(ça pourrait faire un bon sujet de stage de DEA en traitement du signal, ou même de thèse ...)

Personellement je suis en traitement d'images et je n'ai malheureusement pas trop de temps pour ça, mais je veux bien participer si nécessaire à un projet en groupe.

Remarque: J'ai déja fait pas mal de choses avec des réseaux de neurones, mais la constante est qu'il faut beaucoup de données d'apprentissage, et passer du temps à "étiqueter les donnés" et faire beaucoup de tests ...
Mon dernier réseau mettait à peu près 10 heures pour converger vers une solution acceptable avec des vecteurs d'entrée de seulement 500 valeurs, et environ 1000 vecteurs d'apprentissage, en fait le temps de convergence dépend du problème posé ...
en Audio, Si la représentation des données est en échantillons audio, ça risque d'être mortel ... Il faufrait vectoriser, par FFT DCT ondelettes ou autres pour réduire l'espace de représentation à qqchose d'humain ...)
Willy, zicos electronicien et algorithmes mathématiques