Bonsoir à tous.
Je suis en train d'essayer de faire une application Android qui écouterait le son ambiant, l'analyserait et effectuerait des actions en fonction du son entendu. J'ai pensé faire la FFT du son pour pouvoir l'analyser finement.
J'avais commencé au début avec la classe MediaRecorder, mais ça m'enregistre le bazar dans un fichier et (surtout) ça encode l'audio. Sauf que pour faire une FFT dessus, il faut que le son soit "pur". Du coup, je me suis penché sur AudioRecord qui me permet d'enregistrer le son dans un buffer.
J'ai également trouvé des sources pour travailler avec des complexes (http://introcs.cs.princeton.edu/java...plex.java.html) et pour faire la FFT d'un nombre complexe (http://introcs.cs.princeton.edu/java.../FFT.java.html).
Tout ça c'est bien beau, mais la méthode fft() de la classe FFT me fait la FFT d'un complexe. Sauf que dans mon buffer, j'ai des short (ou des bytes, moi j'ai choisi des short).
Pour faire bref : je crois que je n'ai rien pigé à tout ce que j'ai lu
Qu'est-ce que mon buffer stocke ? L'amplitude du son à un instant donné ? Autre chose ?
Et pourquoi prendre un short ou un byte (pour le buffer) ?
Si vous pouviez m'éclairer de vos lumières, ça m'aiderait pas mal
Partager