2016-11-23 1 views
1

Je dois créer un service d'identification musicale coopérative. Chaque utilisateur aura une option pour prendre une empreinte digitale d'une chanson et l'envoyer au serveur avec ses méta-informations. Au début, la base de données de service sera vide et chaque fois qu'une empreinte musicale sera reçue, les méta-données de la chanson seront mises à jour (le serveur attribuera des méta-données à une empreinte digitale sur la base d'un choix majoritaire). même empreinte digitale).Comment choisir l'algorithme d'empreinte digitale audio pour créer une base de données de musique coopérative?

J'ai besoin de calculer une empreinte pour la chanson entière, je n'ai pas besoin d'identifier une chanson d'une fraction.

L'empreinte digitale ne doit pas être précise à 100%. Je serai heureux si deux fichiers de chanson recevront la même empreinte juste si le même fichier est encodé avec un taux de compression différent. Un faible niveau d'indépendance sonore sera un plus.

Silence au début ou à la fin de la chanson ne sera pas un problème, je devrais les supprimer en utilisant l'algorithme de suppression de silence standard (et aussi dans ce cas un résultat pas très précis). Je connais des librairies opensource comme: http://echoprint.me/ et https://acoustid.org/ mais la librairie thees est excesive pour mes besoins, car si j'ai bien compris, elle peut identifier une chanson d'une partie, ce qui va créer une base de données lourde. J'ai besoin d'un algorithme qui me donnera une empreinte digitale pas trop lourde (un peu de kb) pour toute la chanson.

La sorcière est l'algorithme le plus simple et le plus rapide que je puisse utiliser?

Merci à tous

+0

Ce problème est en réalité beaucoup plus complexe qu'il n'y paraît. Google a investi beaucoup dans son algorithme d'identification de contenu qui fait cela pour la musique utilisée dans les vidéos. Il est encore connu pour être assez inexact de temps en temps. – Philipp

+0

Peut-être que ce [logiciel d'empreintes digitales audio écrit en C#/NET (https://github.com/nelemans1971/AudioFingerprinting) aide. – wp78de

Répondre

2

Je vous suggère d'utiliser le projet AcoustID. Votre description correspond à ce projet sur beaucoup de points. Seules certaines de leurs approches sont différentes de ce que vous suggérez.

Le service peut-il identifier de courts extraits audio?

Non, ça ne peut pas. Ce service a été conçu pour identifier les fichiers audio complets . Nous aimerions éventuellement soutenir également ce cas d'utilisation, mais ce n'est pas une priorité pour le moment. Notez que même lorsque cela sera mis en œuvre, il sera toujours destiné à correspondre à l'audio original (par exemple dans le but de tracklisting un long flux audio), pas audio avec bruit de fond enregistré sur un téléphone.

Jetez un oeil à leur liste de diffusion pour des meilleures explications: https://groups.google.com/forum/#!forum/acoustid