Reconnaissance sonore

Reconnaissance sonore - Algo - Programmation

Marsh Posté le 31-05-2004 à 15:46:21    

Bonjour,
 
est ce que quelqu'un sait comment fonctionnent les services téléphoniques qui envoient le titre de la chason qu'on leur fait écouter ?
 
En effet, si c'est de la "reconnaissance pûre", c'est à dire sans utiliser les programmations des radios, je serait très intéressé pour programmer un truc similaire pour K-MP3, quitte à rendre publique la Db ainsi constituée.

Reply

Marsh Posté le 31-05-2004 à 15:46:21   

Reply

Marsh Posté le 31-05-2004 à 17:50:06    

drapal

Reply

Marsh Posté le 31-05-2004 à 17:52:06    

heureux de voir que je suis pas le seul que ça intéresse ... ;-)

Reply

Marsh Posté le 31-05-2004 à 18:08:29    

y'a-t'il un rapport avec soundex ?

Reply

Marsh Posté le 31-05-2004 à 18:14:20    

C'est à dire ?

Reply

Marsh Posté le 31-05-2004 à 19:31:17    

ché pas, mais je commençerais par une analyse fréquentielle (FFT), pour obtenir le bpm de la musique, afin de faire une présélection des musiques possible....
 
déjà si c'est par téléphone, ça s'arrête à 4Khz.

Reply

Marsh Posté le 31-05-2004 à 20:06:26    

yep mais c'est la procédure complète que j'aimerai voir ...

Reply

Marsh Posté le 31-05-2004 à 20:52:05    

Kyle_Katarn a écrit :

Bonjour,
 
est ce que quelqu'un sait comment fonctionnent les services téléphoniques qui envoient le titre de la chason qu'on leur fait écouter ?
 
En effet, si c'est de la "reconnaissance pûre", c'est à dire sans utiliser les programmations des radios, je serait très intéressé pour programmer un truc similaire pour K-MP3, quitte à rendre publique la Db ainsi constituée.


 
ya un monsieur qui ecoute et qui appuie sur la bonne touche http://users.skynet.be/polo021/tinostar.gif

Reply

Marsh Posté le 31-05-2004 à 20:57:45    

J'y ai pensé aussi et ça m'embêtterai un peu de faire pareil dans mon soft .... ;)

Reply

Marsh Posté le 31-05-2004 à 20:59:39    

ché pas heuristiques, reconnaissance bpm, analyse de critères entre deux beats, ché po...

Reply

Marsh Posté le 31-05-2004 à 20:59:39   

Reply

Marsh Posté le 31-05-2004 à 21:02:33    

argh... personne n'a d'info précises à ce sujet ?

Reply

Marsh Posté le 31-05-2004 à 21:06:23    

J'avais parcouru un bouquin sur le DSP (digital signal processing) ou ils expliquaient qu'on pouvait mesurer le degré de ressemblance entre deux signaux en les multipliant entre eux et en calculant la valeur moyenne, ou un truc du genre ...
Le livre online
C'est dans "Fundamentals"


Message édité par Ace17 le 31-05-2004 à 21:07:21
Reply

Marsh Posté le 31-05-2004 à 22:06:27    

[:abnocte invictus]

Reply

Marsh Posté le 01-06-2004 à 00:21:23    

Le problème est qu'on peut pas comparer un signal donné à tous les signaux de la base de donnée en un temps décent... d'autant plus quand on n'a accès (cf telephone) qu'à une fraction du morceau !

Reply

Marsh Posté le 01-06-2004 à 11:57:01    

il faut que tu regarde du coté des signatures sonores.
 
En gros plutot que de comparer chaque morceau avec tous les autres (donc en O(n2)) tu tire une signature representative pour chaque morceau de ta base, tu fais la meme chose pour le morceau passé en test, et tu cherche la signature la plus proche...
C'est forcement une recherche approchée, dans plusieurs dimension (les dimensions c'est par exemple BMP, energie dans telle ou telle bande de frequence, ecarts dynamiques, etc...), et c'est pas tout gateau...

Reply

Marsh Posté le 01-06-2004 à 12:01:39    

je suis d'accord avec toi mais comment calcule tu la signature sonore ? Grosso modo comment pourrait on définir un "hash" sur un signal sonore sachant qu'on veut quand même un truc "permittif" ?

Reply

Marsh Posté le 01-06-2004 à 12:18:40    

ben justement comme tu veux faire une recherche apporchée, et en plus dans plusieurs dimensions, c'est galere...
 
tu pourrais faire un truc de ce genre:
tu maintient une liste triée pour chaqune des dimensions (donc faut retrier à chaque nouveau morceau inseré dans ta base), avec à chaque ligne (on va dire que ta liste est un fichier) la valeur et un ID du morceau dans la base
 
Par exemple ca donnerais ca pour la dimension "BPM":
 
90 0001
140 0042
150 0012
...
 
ensuite tu fait une recherche par dichotomie dans chaque dimension, en prenant les n id de morceaux les plus proches, tu recoupe le tout entre tes differentes dimensions, et si tout va bien le morceau sera pile à l'intersection de toutes les dimensions (enfin ca va rarement bien....)
 
le truc qui serait chiant c'est retrier tes liste à chaque nouveau morceau, mais tu peu par exemple mettre tout ca à jour uniquement apres que 10 morceau ai été inserés par exemple. Et puis de toutes facon tu peu faire ca en batch la nuit ou autre, c'est pas vraiment trop chiant. Le tout c'est que le systeme repone rapidement au requetes (et qq dichotomies ca va vite)
 
apres il te faut les algos qui te permettent de remplir ces dimensions (et bien choisir ces dimensions et calibrer tes algos)
 
a mon avis un bon choix de dimensions ca serait:
-BPM
- energie dans les extremes basses (par exemple en dessous de 120hz)
- energie dans les basses (120-400 par exemple)
- energie dans les medium (on va dire 400-2000)
- energie dans les aigues (enfin ce qui en reste dans le telephone, donc jusque 4 ou 5khz)
- ecarts dynamiques (un genre d'ecart type sur la dynamqiue)
 
mais il doit y en avoir beaucoup d'autres!

Reply

Marsh Posté le 07-06-2004 à 18:59:24    

alors, t'en es ou de ton projet?

Reply

Marsh Posté le 07-06-2004 à 19:25:00    

Pour cette idée là, c'est encore au stade de réflexion / documentation...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed