Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Any OpenCV-like C/C++ library for Audio processing? [closed]

Is there anything more out there, that resembles (in spirit) OpenCV, but for processing audio and deriving some intelligence from it ? Capabilities could range from:-

  1. Multiplatform audio capture and audio playback
  2. DSP - Audio filters
  3. Tone detection
  4. Tonal property analysis
  5. Tone synthesis (various standard waveforms)
  6. Recognition given some recognition corpus and model (e.g. determine musical instruments, beats, human speech etc.) -- could potentially use other open-source projects for the actual recognition part (sphinx)
  7. Speech / music synthesis -- could be again using some other open-source projects (festival)

It is fine if the library works on raw audio s.t. format/encoding conversion are external issues handled by other existing libraries (s.a. from ffmpeg).

I am not an expert in this field, but need to use such API, and wondering if such libraries exist, so my choice of terms to determine capabilities is probably not the best, so experts might like to edit this question.

like image 762
bdutta74 Avatar asked Aug 04 '11 08:08

bdutta74


2 Answers

For audio capture and playback, portaudio comes to my mind.

For audio processing, STK looks promising.

Have a look at this related question too: Can anyone recommend a decent DSP/speech library in C++?

I recommend these three libs:

  1. very easy to use and friendly for general signal processing Aquila-dsp

  2. strong lib for audio signal processing although hard to use and it's very big and complicated for beginners: CLAM Project

  3. another one I have no experience about it, is worth considering though. tspl

like image 105
Jong Bor Lee Avatar answered Oct 06 '22 01:10

Jong Bor Lee


Check out Essentia http://essentia.upf.edu/ Essentia is an open-source C++ library for audio analysis and audio-based music information ...It contains an extensive collection of reusable algorithms which implement audio input/output functionality, standard digital signal processing blocks, statistical characterization of data, and a large set of spectral, temporal, tonal and high-level music descriptors.

There is also an openFrameworks branch, although you might want to hold off until is officially 64 bit, C++11 in a couple of months. https://github.com/MTG/essentia

like image 29
Borg Avatar answered Oct 06 '22 01:10

Borg