2010-04-11 9 views
1

J'ai besoin d'analyser l'exécution sonore du système de sortie. OS: Linux. La première chose dont j'ai besoin est d'obtenir des valeurs de fréquence différentes. Langage de programmation: C++.Bibliothèque pour analyser le son

+0

Il existe de nombreuses façons d'effectuer une transformation rapide de Fourier. Quels sont vos formats de données source et destination? – Potatoswatter

+0

Formats de quoi? J'ai juste besoin d'obtenir un canal de sortie maître et d'analyser sa fréquence. – Ockonal

+1

Essayer de détourner la sortie du haut-parleur du système d'exploitation est probablement la chose la plus difficile et la moins portable que vous puissiez demander. (Mais peut-être que c'est plus facile sur Linux, je ne sais pas.) Pouvez-vous simplement implémenter un tube à partir de ce qui génère l'audio? – Potatoswatter

Répondre

1

Un moyen semi-portable * qui vous vient à l'esprit pour saisir tout le son de plusieurs sources est PulseAudio. (Dans ce cas, semi-portable signifie travailler avec de nombreuses cartes son, ne fonctionne pas avec des systèmes d'exploitation différents, bien qu'il existe une version WinXP de PulseAudio). L'un des PulseAudio modules fournit un puits de tuyauterie. J'espère que toutes vos sorties seront compatibles avec PulseAudio - presque tout ce qui se joue bien avec ALSA devrait aller. Vous devriez alors pouvoir lire à partir de ce tuyau pour obtenir votre contribution.

Vous pouvez ensuite utiliser une bibliothèque comme FFTW (proposée d'abord par la réponse de Thomas) pour la transformée de Fourier rapide, en supposant que c'est ce que vous entendez par «obtenir les valeurs de fréquence». * Dans ce cas, semi-portable signifie travailler avec de nombreuses cartes son, ne fonctionnant pas avec des systèmes d'exploitation différents, bien qu'il existe une version WinXP de PulseAudio (je ne l'ai pas essayé moi-même).

1

La question est un peu vague, mais voici quelques informations potentiellement utiles.

Les fichiers WAV codés PCM sont pretty easy to parse; vous n'avez pas vraiment besoin d'une bibliothèque pour ça.

Pour l'analyse de fréquence, j'utiliserais FFTW pour faire la transformée de Fourier.

+0

Et qu'en est-il de saisir de la musique d'une source donnée? – Ockonal

+0

Quel genre de source? Un fichier MP3? Une webdiffusion? Une entrée de microphone? – Thomas

+0

Non, sortie maître du système. – Ockonal

Questions connexes