Acoustic Feature Extractor


I have a wav file whose length is 6 min. I'd like to analyse it by "chunks". But what are chunks?  time intervals? Independently from the number I enter in "Chunks", I always get just one number (for instance for RMS), instead of one number per chunk.



Update: I've tried the "original" jAudio software. There is the possibility to choose between "Save features for each window" and "Save for Overall Recording", where the windows size is the number of samples (frames).

I think that  those options are missing in Knime ("Save features for each window" is missing), and only "Save for Overall Recording" is performed.


Hi Francesco,

thanks for bringing that up. We will have a look at the node to see if we can add the missing option.



Thank you Tobias!

I found a workaround, by splitting the audio file in chunks using pydub, and then reading in Knime all the chunks and applying to them the feature extractor. It isn't  clear to me if the Aggregtor in the node aggregates samples into chunks or chunks into the whole Overall Recording.

If you can implement the option, as described in the Node doc:

Chunk Size (samples): The size of a chunk, where the selected features will then be computed in each chunk.

please inform me (even it if is in a nightly build).

Btw, thank you very much, you inplemented the Audio Analysis exaclty when I needed it (I never worked with audio before). That's really Just In Time!





Bwt, I realized that implementing that option wouldn't help me. Better a node that can split an audio file into chunks, like the python library pydup. I explain you what I'm doing, to give you a better idea:

I need to classify some types of sound in an audio file. To train a classifier, I manually label each 1-second chunks of a number of 3-minutes audio files. So I now split the wav files in 1-sec chunks with pydub, listen to each chunk with the Knime node Audio Viewer,  manually classify them, extract some features with the Acoustic Feature Extractor node, and then train a Classifier using the computed features and the  labels I've given. 

To do everything in Knime I'd need a splitter node that does what pydub does (I could also try running pydub using the Python node within Knime).