2010-09-21 16 views
2

pour un projet d'école J'essaie de faire une application android qui, une fois démarrée, effectuera une analyse de spectre de l'audio en direct reçu du microphone ou d'un casque bluetooth. Je sais que je devrais utiliser FFT, et j'ai regardé l'analyseur audio open source de moonblink (http://code.google.com/p/moonblink/wiki/Audalyzer) mais je ne suis pas familier avec le développement Android, et son code s'avère être trop difficile pour moi de travailler avec.analyse du spectre android de l'entrée de streaming

Donc, je suppose que mes questions sont les suivantes: existe-t-il des applications Android plus faciles à utiliser basées sur Java ou Open Source? Ou y a-t-il des informations utiles qui peuvent être données, telles que; étapes qui doivent être prises pour obtenir l'entrée du microphone, le mettre dans un algorithme fft, puis afficher un graphique de la fréquence et la hauteur dans le temps de sa sortie?

Toute aide serait appréciée, merci.

+0

Salut, j'ai un besoin similaire, cela vous dérange-t-il de partager un peu comment vous l'avez implémenté? – biquillo

+0

J'ai fini par utiliser l'analyseur de moonblink comme application de base. Pour ce faire a fait un nouveau projet et a pris le paquet audalyzer et toutes les classes dont il dépend de la bibliothèque hermitLibrary. De là, j'ai fait un pas à pas dans le code pour trouver toutes les parties que je devais modifier. – TheBeeKeeper

+0

Nevermind. J'ai été capable de déchirer l'application audalyzer de moonblink pour obtenir ce dont j'avais besoin. – TheBeeKeeper

Répondre

3

Suggestion ....

  1. Cela dépend ce que vous voulez l'utiliser pour. Si vous n'avez pas besoin de tout le spectre, alors vous pourriez avoir besoin seulement d'un filtre, facilement réalisé en utilisant un filtre FIR. Notez que vous pouvez obtenir très rapidement 3 bandes (LP, BP et HP) en réalisant que le HP utilise les mêmes multiplicateurs que le LP, seulement certaines des valeurs sont des soustractions au lieu d'additions. De même, le BP est obtenu en soustrayant le LP et le HP des données d'origine (tout passe). Donc, si vous le codez correctement, vous pouvez obtenir un analyseur 3 bandes très rapide .... si c'est tout ce dont vous avez besoin. Si vous souhaitez utiliser une FFT, vous pouvez vérifier s'il n'y a pas déjà une FFT disponible dans les bibliothèques Java, écrite en C à l'aide de l'interface JNI (NDK). Ce sera beaucoup plus rapide que d'écrire le vôtre dans Java.

Espérons que ça aide.