Analyse audio Android en temps réel
J'ai cherché cette ligne, mais je suis encore un peu confus (je suis sûr que d'autres seront si ils pensent à quelque chose comme cela). Je voudrais commencer en disant que c'est pas pour les devoirs et/ou de profit.
J'ai voulu créer une application qui pourrait écouter votre four à micro-ondes que vous préparez les pop-corn. Il fonctionne par l'émission d'une alarme quand il y a un certain intervalle de temps entre les pop (disons 5 à 6 secondes). Encore une fois, c'est tout simplement un projet à me tenir occupé, - pas de classe.
De toute façon, je vais avoir du mal à essayer de comprendre comment analyser l'audio de l'apport en temps réel. C'est, j'ai besoin d'un moyen de connecter le moment où un "pop" se produit. De sorte que vous les gars ne pense pas que je ne fais pas de recherche sur la question, j'ai vérifié cette DONC, la question et ont longuement cherché sur le AudioRecord liste des fonctions.
Je pense que je vais probablement avoir à faire quelque chose avec l'une des versions de lire() et de comparer les données audio enregistrées toutes les 2 secondes, pour l'enregistrement audio d'un "pop" (c'est à dire si 70% ou plus de l'byte[] audioData tableau est le même que celui d'un bruit de claquement, puis connectez-vous à l'heure). Quelqu'un peut-il avec Android d'entrée audio de l'expérience, laissez-moi savoir si je suis au moins sur la bonne voie? Ce n'est pas une question de moi de vouloir vous code rien pour moi, mais une question de savoir si je suis sur la bonne piste, et, sinon, quelle est la direction que je dois la tête à la place.
source d'informationauteur Vinay
Vous devez vous connecter pour publier un commentaire.
Découvrez ce code (ignorer la lecture de la partie): La lecture de son provenant du microphone en temps réel
L'idée de base est que vous aurez à prendre la valeur de chaque échantillon de 16 bits (ce qui correspond à la valeur de la vague à l'époque). À l'aide de la fréquence d'échantillonnage, vous pouvez calculer le temps entre les pics de volume. Je pense que cela pourrait accomplir ce que vous voulez.
Je pense que j'ai un moyen plus facile.
Vous pouvez utiliser le MediaRecorder 's getMaxAmplitude méthode.
À tout moment votre enregistreur détecte un grand saut dans l'amplitude, vous avez détecté un maïs pop!
cela peut être un peu exagéré, mais il y a un cadre de MIT media labs appelé funf: http://code.google.com/p/funf-open-sensing-framework/
Ils ont déjà créé des classes pour l'entrée audio et l'analyse (FFT), également l'enregistrement de fichiers ou d'un téléchargement de la mise en œuvre autant que je l'ai vu, et ils traitent de la plupart des capteurs disponibles sur le téléphone.
Vous pouvez aussi vous inspirer du code écrit, ce qui je pense est assez bonne.
Nous avons publié une open source Android de l'analyseur de spectre sur Github ici les ordinateurs FFT sur l'audio à partir du microphone et affiche un 2D spectrogramme.
Vous pouvez voir une vidéo de lui en action à https://youtu.be/yU05fsgOYO4
Critique de code pour la lecture de la micro & le calcul de l'audio spectres est trouvé à la v2.x /... sciShowcase /Viewmodel /AudioAnalyzer