Question

En tant que suite à ma précédente question , si je veux que mon application smartphone pour détecter une certaine note musicale, et Je ne ai besoin de savoir si le son entrant est cette note musicale ou non, avec une certaine quantité de flou, pour permettre la note d'être hors clé en cents x.

Étant donné que, est-il une méthode supérieure par rapport aux autres pour la vitesse et la précision? C'est, en sachant que la note que vous recherchez est, disons, un # C3, la meilleure façon de savoir si cette note est présent ou non? Je suppose que la recherche d'une note unique serait plus facile que de séparer toutes les formes d'onde, et puis en regardant les résultats de la fréquence fondamentale.

Dans les réponses à ma question initiale, un répondant autocorrelation pourrait bien fonctionner si vous savez que les notes sont dans une certaine plage. Je me demande si autocorrelation alors encore mieux travailler, si vous suffit de vérifier la présence ou l'absence d'une certaine note (+/- x cents).

Ces méthodes étant:

  • FFT Kiss
  • FFTW
  • Discrete Wavelet Transform
  • autocorrelation
  • zéro analyse de croisement
  • filtres d'octave espacées
  • DWT

Toutes les pensées seraient appréciés.

Était-ce utile?

La solution

Comme vous le décrivez, il vous suffit de déterminer si un terrain particulier est présent. Un détecteur très simple (rapide) serait tout simplement enregistrer l'équivalent d'une période de la forme d'onde, puis enregistrer une autre période et établir une corrélation entre eux, comme une auto-corrélation trop simpliste (un seul décalage). S'il y a un match de haut, vous connaissez la forme d'onde en cours d'enregistrement se répète à la même période, ou une harmonique de celui-ci.

Par exemple, pour détecter 1 kHz, fiche 1 ms de données audio (48 échantillons à 48 kHz), puis enregistrer une autre 1 ms, et de les comparer (en corrélation = multiplier tous les échantillons et sum). Si elles alignent (corrélation au-dessus d'un certain seuil), alors que vous écoutez 1 kHz, 2 kHz, 3 kHz ou un autre multiple. Faire plusieurs périodes vous donnera plus de confiance sur le match.

A vrai dire autocorrelation te qui harmonique, en particulier, si c'est important pour vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top