wav-midi de conversion
Je suis nouveau sur ce terrain, mais j'ai besoin d'effectuer un WAV en MIDI conversion en java.
Est-il un moyen de savoir quels sont exactement les étapes impliquées dans WAV-MIDI de conversion?
J'ai une idée très approximative que vous devez faire;
exemple le fichier wav, le filtre, l'utilisation de la FFT pour l'analyse spectrale, l'extraction de caractéristiques et d'écrire ensuite l'extrait de fonctionnalités sur le MIDI.
Mais je ne peux pas trouver de solides sources ou des documents comme dans la façon de faire tout ça?
Peut on me donner des indices quant à savoir où et comment commencer?
Y a-Open Source Api disponibles pour ce WAV vers MIDI processus de conversion?
Merci d'avance
double possible de wav midi de conversion
OriginalL'auteur Dolphin | 2010-01-24
Vous devez vous connecter pour publier un commentaire.
C'est plus d'implication que vous pourriez imaginer.
Ce problème de recherche est souvent désigné comme musique de transcription: la loi de la conversion d'un faible niveau de représentation de la musique (par exemple, la forme d'onde) dans un plus haut niveau de représentation tels que le MIDI ou même une feuille de musique.
La sophistication de votre solution dépend de la complexité de vos données d'entrée. Des tonnes de documents de recherche de l'adresse de la transcription de la musique uniquement sur monophonique piano ou de la batterie... parce qu'ils sont faciles à transcrire. (Relativement.) Le violon est plus difficile. La voix est encore plus difficile. Violon plus de voix, plus de piano est beaucoup plus difficile. Une symphonie est presque impossible. Vous obtenez l'image.
Les éléments de base de la musique de transcription inclure par la suite dans des zones de chevauchement:
Recherche d'articles sur "la musique de transcription" sur Google Scholar ou de la ISMIR procédure: http://www.ismir.net. Si vous êtes plus intéressé dans l'une de ces sous-thèmes, je peux vous autres. Bonne chance.
EDIT: cela dit, il existe des solutions que nous pouvons tous trouver sur le web. N'hésitez pas à essayer. Mais comme vous le faites, de les évaluer d'un œil critique et de l'oreille. Quels sont les types de signaux audio serait la cause de la transcription à l'échec?
EDIT 2: Ah, vous êtes seulement le faire pour piano. Bon d'accord, c'est faisable. La musique de la transcription a progressé au point où il peut transcrire monophonique piano très bien. Une Rachmaninov concerto va encore poser des problèmes.
Nos recommandations dépend de votre objectif final. Vous l'état "besoin à effectuer... Java." Si cela sonne comme vous voulez juste quelque chose à travailler indépendamment de la façon dont il vous arrive là. Dans ce cas, je suis d'accord à 100% avec les autres: utiliser quelque chose qui existe.
C'est effectivement une question intéressante; toutes les bibliothèques MIR-je savoir sont généralement de C/C++/Python/Matlab. Mais pas Java. Le EchoNest a une API Java, mais je ne pense pas que cela ne se remarque au niveau de la transcription. http://developer.echonest.com. (Edit: Il ne remarque au niveau de la transcription. Les données renvoyées comprend la hauteur, le timbre, le rythme, le tatum, et plus encore. Mais je trouve que la polyphonie est toujours un problème.)
Oh, Marsyas est basée sur Java. Cool. Je pensais que c'était juste C++. http://marsyas.info/ Je vous le recommande. Il est développé par George Tzanetakis, un professeur dans la station MIR. Il n'signal au niveau de l'analyse et devrait être une bonne option.
Maintenant, si c'est pour un plaisir d'apprendre de l'expérience, je pense que vous pouvez utiliser le son utilitaires de manipulation de Java à expérimenter avec le convertisseur de signal et de voir ce qui vient.
EDIT: Cette page décrit MIR logiciel mieux que je peux: Les Outils Que Nous Utilisons
Pour Matlab, vous pouvez être intéressé par la MIR boîte à outils
Voici une belle page de la commune ensembles de données: MIR ensembles de données
Dois-je utiliser Matlab pour ce processus et de les intégrer à dire que Java? Merci d'avance de Steve. Vous avez vraiment peint l'image plus grande.
Vous êtes les bienvenus. Voir ma réponse aux commentaires dans le post original.
Steve, merci beaucoup pour vos réponses. Je voudrais en savoir plus et d'explorer ce domaine. Vous avez mentionné que "toutes les bibliothèques MIR je sais ...". Je ne suis pas lié à une langue spécifique. Pouvez-vous recommander une bibliothèque (de préférence open source, mais pas nécessaire) - n'importe quelle langue? Je suis particulièrement intéressé par un instrument unique de transcription. Aussi, l'état actuel de la technologie permet de "temps réel" de la transcription? soit une moyenne de PC peut transcription de la musique car elle est en train d'être joué?
Vous êtes les bienvenus. La transcription en temps réel sur un PC moyen est de qualité assez médiocre, je suppose. Ni moi, ni beaucoup d'autres embêter avec elle parce que nous avons du mal à obtenir hors transcription perfectionné! Il est rare d'obtenir un taux de transcription de mieux que, disons, 80% (de l'annexe). Voir modifier pour plus d'outils.
OriginalL'auteur Steve Tjoa
C'est une très grosse entreprise pour être à nouveau dans le domaine, sauf si vous voulez dire que vous êtes familier avec l'analyse du signal et de la fonctionnalité de détection en général et que vous souhaitez rechercher plus précisément dans la transcription automatique.
Il n'y a pas d'API pour WAV MIDI de conversion. Vamp est un cadre pour l'extraction des caractéristiques des plugins, mais pour faire la transcription automatique, vous devez utiliser toutes les fonctionnalités des plugins existants, en plus de mettre en œuvre une fonctionnalité qui existe dans aucun d'eux encore.
Naviguer à travers les descriptions des plugins sur l'empeigne de la page de téléchargement, toutes les descriptions que vous ne comprenez pas les sujets que vous devriez commencer à rechercher si vous voulez le faire.
Vamp utilise le C, le C++. Ne sont pas là toutes les plugins Java et de telles ressources? Qui serait le plus utile. Comment pouvez-vous utiliser des plug-ins dans du code java? Merci d'avance
Java n'est pas vu si souvent en traitement du signal, analyse, parce qu'il est relativement de temps CPU, et jusqu'à assez récemment, le matériel n'était pas assez rapide pour faire ce genre de chose en Java à des vitesses acceptables. Il ressemble à Steve trouvé un bon filon. Pour une approche de plus haut niveau il y a aussi la possibilité d'utiliser un environnement de csound csounds.com, qui fournit un grand nombre d'outils pour la synthèse et l'analyse de son avec moins de soucis à propos explicite de l'allocation de mémoire et de libérer que vous obtenez avec C.
Concernant la façon d'utiliser les plugins en Java, un plugin est une bibliothèque chargée dynamiquement, vous pouvez utiliser JNI de charger et d'y accéder dans un programme Java: en.wikipedia.org/wiki/Java_Native_Interface
OriginalL'auteur Justin Smith
Si vous n'avez pas besoin d'automatiser cette tâche (c'est à dire, pour un site web où les gens peuvent télécharger des MP3 et d'obtenir des fichiers MIDI à l'arrière), alors vous devez envisager d'utiliser un outil comme Melodyne qui est déjà très bon pour aller. Comme Steve l'a noté, c'est une tâche très difficile à accomplir, et même les meilleurs algorithmes et solutions présents à l'instant ne sont pas fiables à 100%.
Donc, si vous êtes juste faire le travail en studio et le besoin de faire un peu de conversions, il faudra probablement vous faire économiser un peu de temps (et beaucoup de maux de tête) d'utiliser un outil déjà conçus pour cette tâche.
OriginalL'auteur Nik Reiman
Dauphin, désolé d'être brusque, mais vous avez complètement sous-estimé le problème. Ce que vous voulez atteindre - un son de piano transcription impliquant tous les paramètres qui ont été utilisés pendant la lecture aurait besoin d'une énorme quantité de recherche avec des personnes qui ont travaillé dans le domaine depuis de nombreuses années. Même un groupe de Doctorat en traitement du signal aurait à investir beaucoup de travail à même de se rapprocher de ce que tu veux dire. La musique de la transcription a besoin de dizaines d'années de travail à même de travailler à mi-chemin fiable. Je vous suggère de choisir un autre problème qui vous permet de gérer mieux que cela.
OriginalL'auteur Thorsten79
C'est un domaine qui est encore en cours de développement, et pourtant, il y a quelques (expérimentale) des algorithmes disponibles.
Vous pouvez installer sonic annotateur et utiliser un peu de vamp plugins.
Par exemple:
OriginalL'auteur dorien