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.
- PythonLoad, filter and plot signals with NumPy and SciPy.Learn it in Python
- Fourier analysis and linear algebraSpectra, filters and convolution link classical signal processing to neural networks.Learn it in Maths
- Feature-based classifiersSpectral and statistical features with gradient boosting or support vector machines.Learn it in Machine Learning
- Deep learning on signals1D networks on raw samples, 2D networks on spectrograms and transformers for long sequences.Learn it in Deep Learning
- 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
| Tool | What you use it for |
|---|---|
| SciPy | Filter, resample and compute spectra and spectrograms. |
| PyWavelets | Compute wavelet transforms for time-frequency features and denoising. |
| librosa | Extract audio features such as mel spectrograms and MFCCs. |
| scikit-learn | Classify feature windows and build baselines. |
| PyTorch | Train 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
- Data Tools: NumPy, pandas, Matplotlib and scikit-learnKeep coordinate, time and annotation joins consistent.23 published lessons · all planned lessons open
- Practical Machine Learning in PythonCompare feature-based classifiers.51 published lessons · more lessons in production
- Deep Learning with PyTorchStudy neural representations and optimisation.Syllabus available · lessons open as produced
- Maths for Machine LearningConnect signal vectors and objectives.26 published lessons · all planned lessons open
- Statistics and Probability for Machine LearningUnderstand noise and error-rate estimates.41 published lessons · all planned lessons open
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.