46
$\begingroup$

I understand OpenCV is the de facto library for programming image processing in C/C++; I'm wondering if there is a C or C++ library like that for audio processing. I basically want to filter raw waves from a microphone, and analyze them with some machine learning algorithms. But I may eventually also need:

  • Multiplatform audio capture and audio playback
  • DSP - Audio filters
  • Tone detection
  • Tonal property analysis
  • Tone synthesis
  • Recognition given some recognition corpus and model
  • Speech / music synthesis

Any advice would be appreciated.

$\endgroup$
29
$\begingroup$

Consider the following:

clam-project.org:

CLAM (C++ Library for Audio and Music) is a full-fledged software framework for research and application development in the Audio and Music Domain. It offers a conceptual model as well as tools for the analysis, synthesis and processing of audio signals.

MARF:

MARF is an open-source research platform and a collection of voice/sound/speech/text and natural language processing (NLP) algorithms written in Java and arranged into a modular and extensible framework facilitating addition of new algorithms. MARF can run distributedly over the network and may act as a library in applications or be used as a source for learning and extension.

aubio:

aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio.

$\endgroup$
8
$\begingroup$

These may be at a different level but worth a look > http://the.echonest.com/ and http://vamp-plugins.org/

$\endgroup$
8
$\begingroup$

If you are into music information retreival you should definitely check out:

MARSYAS

$\endgroup$
8
$\begingroup$

You may want to check out the different code libraries available from the Princeton Sound Lab such as STK (MARSYAS mentioned by cufmo is but one of their projects). You may be able to achieve the goals for your project by combining the relevant features of the different libraries there.

$\endgroup$

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.