I have a file that contains a recorded sound of an engine. I need the list of all the frequencies that the sound has.
2 Answers
There are a number of Python libraries available to perform spectral analysis of signals but it is important to keep in mind that for a given sample it may have been produced from more than one combination of base frequencies & harmonics and then distorted by the production, capture, recording & sampling methods, equipment, etc. especially if lossy compressed file formats such as MP3 have been used.
Note that python and all of the libraries mentioned are Free, Open Source and available for most platforms.
Spectrum
One example is spectrum which provides various methods of analysing then displaying the signal spectrum.
Yule-Walker Example:
Of course as well as being able to plot graphs you have access to the numeric data.
Other Libraries
There are several lists of resources for Audio Processing (including Spectral Analysis):
Python In Music specifically mentions:
- Friture - Friture is a graphical program designed to do time-frequency analysis on audio input in real-time. It provides a set of visualization widgets to display audio data, such as a scope, a spectrum analyser, a rolling 2D spectrogram.
- LibXtract - LibXtract is a simple, portable, lightweight library of audio feature extraction functions. The purpose of the library is to provide a relatively exhaustive set of feature extraction primatives that are designed to be 'cascaded' to create a extraction hierarchies.
- Yaafe - Yet Another Audio Feature Extractor is a toolbox for audio analysis. Easy to use and efficient at extracting a large number of audio features simultaneously. WAV and MP3 files supported, or embedding in C++, Python or Matlab applications.
- 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.
- LibROSA - A python module for audio and music analysis. It is easy to use, and implements many commonly used features for music analysis.
It is probably worth reading this paper on FFTs.
Generally speaking, you're seeking software that performs the task of an audio spectrum analyzer. There are RF spectrum analyzers for radio frequencies, and I suspect there may be optical versions.
A quick search using "audio spectrum analyzer software" presents a number of returns. The first one I selected at US$41 is TrueRTA. The information listed indicates that it supports recorded audio as well as live sound analysis.
Observe the frequency characteristics of recorded music or other recorded audio.
It's important to note that your results will be limited by the device used to record the audio as well as the device used to play back the audio. Bandwidth of a microphone, also known as microphone frequency response, is a critical aspect of selecting a product for a specific task.
If the frequency response of the microphone is cut off at either end of the spectrum, your analysis will show this. It also applies to the playback device, of course.