Question

Je suis nouveau à l'analyse audio, mais qui ont besoin d'effectuer une tâche simple (en apparence). J'ai un tableau d'octets contenant un et un taux d'échantillonnage de 44100 enregistrement (canal unique) 16 bits Comment puis-je effectuer une analyse rapide pour obtenir le volume à un moment donné? Je dois calculer un seuil, donc une fonction pour retourner vrai si elle est au-dessus d'une certaine amplitude (volume) et false sinon. Je pensais que je pouvais parcourir le tableau d'octets et vérifiez sa valeur, avec 255 étant le plus bruyant, mais cela ne semble pas fonctionner car même quand je fais quelque chose, le bruit de fond ne enregistrement obtient et une partie de tableau est rempli 255. Toute suggestion serait grande. Merci

Était-ce utile?

La solution

Comme vous avez des données 16 bits, vous devez vous attendre le signal pour faire varier entre -32768 et 32767. Pour calculer le volume, vous pouvez prendre des intervalles de SAY 1000 échantillons, et de calculer leur valeur RMS. La somme des valeurs au carré de l'échantillon divisé par 1000 et prendre la racine carrée. vérifier ce nombre contre vous seuil.

Autres conseils

Typiquement, on mesure l'énergie des vagues à l'aide de la racine carrée moyenne

Si vous voulez être plus précis perceptuel, vous pouvez prendre le signal dans le domaine temporel à travers un discrète transformée de Fourier à un signal de domaine de fréquence, et à intégrer au cours des grandeurs avec une fonction de pondération (puisque les ondes basse fréquence sont perceptuellement plus fort que les ondes à haute fréquence à la même énergie).

Mais je ne sais pas des choses audio soit donc je vais juste faire des choses en place. ?

I pourrait essayer l'application d'une fenêtre glissante écart-type. OTOH, je ne l'aurais pas supposé que 255 = plus bruyant. Peut-être, mais je voudrais savoir ce que le codage est utilisé. En cas de compression est présent, alors je doute 255 est « le plus fort ».

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top