Détecter et enregistrer un son avec python
Je suis en utilisant ce programme pour enregistrer un son en python:
Détecter & Enregistrer de l'Audio en Python
Je veux changer le programme pour démarrer l'enregistrement lorsqu'un son est détecté par la carte son d'entrée. Sans doute doit comparer le son d'entrée au niveau du morceau, mais comment faire?
source d'informationauteur Jean-Pierre
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer quelque chose comme ceci:
basé sur cette question/réponse
Vous aurez probablement envie de jouer avec votre taille de bloc et les valeurs de seuil jusqu'à ce que vous obtenir le comportement souhaité.
Edit:
Vous pouvez utiliser le haut- audioop paquet pour trouver la racine carrée moyenne (rms) de l'échantillon, qui est généralement la façon dont vous devriez avoir le niveau.
Détecter lorsqu'il n'est pas le silence se fait généralement à l'aide de la root mean square(RMS) de certaines partie de l'audio et de la comparer avec une certaine valeur de seuil que vous avez défini (la valeur dépend de la sensibilité de votre micro est et d'autres choses de sorte que vous aurez à ajuster). Aussi, selon la rapidité à laquelle vous souhaitez que le mic pour détecter les sons enregistrés, vous pourriez voulez réduire la taille de bloc, ou de calculer la valeur RMS de chevauchement des blocs de données.
comment faire, il est indiqué dans le lien que vous donnez:
Vous devez définir le seuil variable et comparer avec la valeur moyenne (l'amplitude) ou à tout autre paramètre de données chaque fois qu'il est lu en boucle.
Vous pourriez avoir deux boucles imbriquées, le premier à déclencher l'enregistrement et de l'autre de façon continue d'enregistrer des données audio formes de packets après.