Question

Je cherchais à mettre en œuvre la détection de pas de voix dans iPhone en utilisant la méthode SPH. Mais les tons détectés ne sont pas très précises. Performous fait un travail décent de détection de pas.

J'ai regardé dans le code, mais je ne soit pas complètement la théorie derrière les calculs. Ils utilisent FFT et trouver les pics. Mais la partie où ils utilisent la phase de sortie FFT, m'a fait figure confused.I ils utilisent des heuristiques pour des fréquences vocales.

Alors, Quelqu'un pourrait-il expliquer s'il vous plaît l'algorithme utilisé dans Performous pour détecter pas?

Était-ce utile?

La solution

[Performous] extraits [1] pas du microphone. De plus, le code est open source. Voici une description de ce que l'algorithme fait, le gars qui a codé il (Tronic sur irc.freenode.net # performous).

  • entrée PCM (avec mise en mémoire tampon)
  • FFT (1024 échantillons à la fois, supprimer 200 échantillons de l'avant de la mémoire tampon après)
  • Procédé de réallocation (contre la FFT précédente qui était de 200 échantillons précédemment)
  • Filtrage des pics (cette partie pourrait se faire beaucoup mieux ou même omis)
  • La combinaison de pics en ensembles d'harmoniques (que nous appelons la combinaison d'un ton)
  • Temporal filtration de tons (mise à jour de l'ensemble de tonalités détecté plus tôt au lieu d'utiliser simplement ceux nouvellement détectés)
  • Choisissez la meilleure tonalité vocale (limites de fréquence, pondération, pourrait utiliser le tableau harmonique aussi, mais je ne pense pas que nous faisons)

J'étais toujours pas en mesure de cette information pour le comprendre et l'appliquer. Si quelqu'un gère cela, s'il vous plaît s'il vous plaît poster vos résultats ici et commenter cette réponse afin que moi donc notifie.

La tâche serait de créer une enveloppe C ++ minimale autour de ce code.

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