Science and engineering

Machine learning for signal processing

Signal processing uses machine learning to classify machine faults from vibration, to recognise sounds and speech, and to denoise or detect events in sensor waveforms. Models work on raw samples or on features such as spectrograms and wavelets.

How machine learning is used in signal processing

Diagnosing machine faults from vibration

Accelerometers on bearings, gearboxes and motors record vibration, and classifiers learn the signatures of faults such as bearing wear. Features come from spectra and envelopes, or networks learn them from raw signals.

Real exampleBearing fault diagnostics review (Zhang et al., 2019)Reviewed machine learning and deep learning methods for bearing fault diagnosis and compared algorithms on the open Case Western Reserve University bearing dataset.

Recognising sounds

Audio models classify environmental sounds, detect events and tag recordings. Networks pretrained on large audio collections transfer well to new tasks with little data.

Real examplePANNs (Kong et al., 2019)Released pretrained audio neural networks trained on the large-scale AudioSet dataset for audio pattern recognition tasks such as audio tagging.

Transcribing speech

Speech recognition maps audio to text, and large models trained on varied audio handle accents, noise and many languages.

Real exampleWhisper (OpenAI, 2022)Trained speech recognition models on 680,000 hours of multilingual and multitask supervision and found they generalised well to standard benchmarks without fine-tuning.

Removing noise in real time

Hybrid designs keep classical signal processing for the parts that are well understood and use a small network for the parts that need tuning, so they run in real time on modest hardware.

Real exampleRNNoise (Valin, 2017)Combined a deep neural network that estimates ideal critical band gains with a traditional pitch filter for real-time speech noise suppression.

Can you learn machine learning for signal processing?

Yes. Engineers with a signal processing background already have the hardest foundations; they need Python machine learning tools, classifiers on spectral features and then deep learning on raw signals and spectrograms.

  1. PythonLoad, filter and plot signals with NumPy and SciPy.Learn it in Python
  2. Fourier analysis and linear algebraSpectra, filters and convolution link classical signal processing to neural networks.Learn it in Maths
  3. Feature-based classifiersSpectral and statistical features with gradient boosting or support vector machines.Learn it in Machine Learning
  4. Deep learning on signals1D networks on raw samples, 2D networks on spectrograms and transformers for long sequences.Learn it in Deep Learning
  5. DSP fundamentalsSampling, aliasing, windowing and filter design, so preprocessing does not hide or create patterns.

Moving into machine learning for signal processing

If you already work in the field

Signal processing engineers already understand spectra, filtering and noise, which makes learned models easier to design and debug. Add PyTorch and train a classifier on spectrograms from your own sensor data, comparing it with your existing algorithm. Audio, automotive, industrial monitoring and medical device companies hire for this.

If you come from data science or ML

Machine learning practitioners should learn sampling, Fourier analysis, filtering and windowing, since many signal errors come from preprocessing. A DSP textbook and SciPy's signal module cover the essentials.

Roles that do this workSignal processing engineerAudio machine learning engineerCondition monitoring engineerDSP engineer

Tools you will use

ToolWhat you use it for
SciPyFilter, resample and compute spectra and spectrograms.
PyWaveletsCompute wavelet transforms for time-frequency features and denoising.
librosaExtract audio features such as mel spectrograms and MFCCs.
scikit-learnClassify feature windows and build baselines.
PyTorchTrain 1D convolutional and recurrent networks on raw waveforms.

Public data to practise on

  • CWRU Bearing Data Center: Vibration recordings from healthy and faulty bearings at several motor loads for fault classification.
  • UCR Time Series Archive: Many labelled time-series classification datasets for benchmarking signal classifiers.

Your first project

Download the Case Western Reserve bearing data, classify fault type from vibration windows using RMS, kurtosis and spectral features with a random forest, and compare it with a 1D convolutional network using accuracy at a motor load not seen in training.

Common questions

Is machine learning replacing classical signal processing?

No. Classical DSP remains the front end for filtering, resampling and feature extraction. Machine learning replaces hand-tuned decision stages and sometimes estimators, and hybrid designs are common.

What is a spectrogram?

A spectrogram shows how a signal's frequency content changes over time, computed with short overlapping Fourier transforms. Treating it as an image lets standard convolutional networks classify sounds and vibrations.

Should I use raw signals or spectrograms as model input?

Spectrograms and other features are easier to train on with modest data. Raw-waveform models can learn their own features but usually need more data and compute.

Where can I get signal data to practise on?

Public datasets include the Case Western Reserve University bearing data for vibration, ESC-50 and AudioSet for sounds and the MIMII dataset for machine sounds.

Courses for these skills

New to programming or maths? Start with Python, or follow the machine learning path in order. Published lessons are free to read; compare Free and Pro.