2009-07-31 17 views
3

Je suis nouveau dans le monde de l'audio, et une tâche à laquelle je ne suis pas sûr me parvient. J'ai besoin d'afficher un graphique représentant la hauteur d'un fichier WAV. Le fichier WAV peut être polyphonique, puis j'ai besoin d'afficher le graphe de hauteur de l'instrument dominant (lire: avec le volume le plus fort) (ou le chant de la voix humaine). Je suis assez familier avec .NET, et je ne connais presque rien en C, C++, Java. J'ai commencé une recherche sur le Web, et d'après ce que j'ai compris, la détection de hauteur de fichiers polyphoniques WAV est un problème non résolu, mais je n'ai pas besoin de la hauteur exacte, juste pour savoir si elle est supérieure à la suivante et quelle est sa longueur.Affichage de la hauteur de fichier WAV

Mes questions sont les suivantes:

  1. Où dois-je commencer à apprendre la théorie derrière cette tâche? Y a-t-il des livres recommandés pour cela?

  2. Y at-il une API/outil qui peut faire cela?

Merci,

ML

Répondre

2

Vous pouvez utiliser l'analyse de Fourier pour extraire les fréquences constitutives de l'onde. Voici une question SO connexe: Fast Fourier Transform in C#

+1

Je suis préoccupé par la nature polyphonique du fichier WAV. Est-ce que FFT peut m'aider à isoler l'intrument/voix le plus dominant? –

+0

Eh bien FFT vous donnera la fréquence dominante dans un fragment d'onde - donc si vous avez trois instruments tous produisant C moyen (que ce soit leur fréquence fondamentale ou harmoniques) FFT ne vous dira pas quel instrument est le plus fort, mais il vous dira ce milieu C est la fréquence la plus forte de l'échantillon. –

+0

Je suppose que vous avez vu un analyseur de spectre - FFT vous le donnera. –

0

J'ai travaillé sur un projet relativement lié. Vous voudrez étudier les transformations de Fourier rapides. Je peux recommander ce project written in C# - il est écrit comme un accordeur de guitare, mais il peut être facilement modifié pour votre but.

Ceci cependant ne fera pas de multi-pitch. Il existe un produit appelé "celemony" qui prétend avoir cette capacité en utilisant "Direct Note Access (DNA)". Leur technologie est naturellement à source fermée, mais vous pourriez être en mesure de l'obtenir au bon prix.

1

J'ai commencé le traitement du signal avec Digital Signal Processing. Vous pouvez acheter le livre imprimé pour environ 30 $, ou télécharger le pdf gratuitement. Il est écrit pour les non-scientifiques, et contient beaucoup d'informations pour vous permettre de fonctionner avec différentes techniques de traitement du signal.

FFT (transformées de Fourier rapides) convertira un signal temps-amplitude en une fréquence (cases) par rapport à l'intensité (énergie). Vous pouvez passer de la fréquence à une note via standard charts trouvé sur un grand nombre de sites Web.

Questions connexes