Comment avoir le son d'entrée de microphone en python, et le traiter à la volée?
Salutations,
Je suis en train d'écrire un programme en Python qui imprime une chaîne de caractères à chaque fois qu'il obtient un robinet dans le microphone. Quand je dis "tap", j'entends un grand bruit soudain ou quelque chose de similaire.
J'ai cherché dans la et trouvé ce post: Reconnaissant le ton de l'audio
Je pense que PyAudio bibliothèque de l'adapter à mes besoins, mais je ne suis pas tout à fait sûr de savoir comment faire mon programme d'attendre un signal audio (microphone en temps réel de surveillance), et quand j'en ai eu un de comment la traiter (ai-je besoin pour utiliser la transformée de Fourier comme il a été indiqué dans le post ci-dessus)?
Merci d'avance pour toute aide que vous pourriez me donner.
- Également discuté ici: stackoverflow.com/questions/193789/microphone-access-in-python
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez LINUX, vous pouvez utiliser pyALSAAUDIO.
Pour windows, nous avons PyAudio et il y a aussi une bibliothèque appelée SoundAnalyse.
J'ai trouvé un exemple pour Linux ici:
Si vous voulez un "tap" alors je pense que vous êtes intéressé à l'amplitude de la fréquence. Donc, les transformées de Fourier ne sont probablement pas utiles à votre objectif. Vous voudrez probablement faire une mesure en cours de court-terme (disons 10 ms) de l'amplitude de l'entrée, et de détecter quand soudain, elle augmente d'un certain delta. Vous devez régler les paramètres de:
Bien que j'ai dit que vous n'êtes pas intéressé par la fréquence, vous pouvez faire un filtrage d'abord, pour le filtre, en particulier, de basse et de haute fréquence composants. Qui pourrait vous aider à éviter certains "faux positifs". Vous pouvez le faire avec un FIR ou IIR filtres numériques; de Fourier n'est pas nécessaire.