Speaker Identification System
Speaker Identification with MFCC + GMM
Speak for four seconds and the system decides who you are — or decides you are not on the list. Built from scratch in MATLAB; 93.1% end to end.
- Role
- Course Project · Team of four (my share: 25%)
- Period
- Sep. 2025 – Jan. 2026
- Institution
- SUSTech Supervised by Dr. Fei Chen
Why this matters
The hard part of speaker identification is not classification, it is rejection. A pure classifier hands every stranger to whichever enrolled user they happen to resemble most — exactly the wrong failure mode for access control or identity checks. So the decision cannot rest on who scores highest; it also has to ask whether that score is high enough, and whether first place is far enough clear of second.
What I did
- I owned the overall code architecture, the audio file management layer, and the demo; MFCC extraction, preprocessing and GMM training were handled by my three teammates.
- Routed training and recognition through one shared feature-extraction entry point, so the training set, test set and live recordings all pass through an identical preprocessing chain — a mismatch there is the most easily missed source of error in this kind of system.
- Preprocessing chain: mono downmix, DC removal, amplitude normalization, resampling to 8 kHz, an 80–3400 Hz bandpass, and endpoint detection driven by short-time energy and zero-crossing rate.
- Features are MFCCs with CMVN normalization, which suppresses the channel differences introduced by different microphones and recording levels.
- Modelling uses a 16-component GMM per speaker, trained with EM.
- The decision layer applies two thresholds — a stranger threshold (top score below it means unknown) and a score-margin threshold (first and second too close means uncertain) — yielding confirmed / uncertain / stranger.
Course project for Speech Signal Processing, done in a team of four. Both figures are from our group report.


Outcome
- 93.1% overall accuracy (54 of 58 test utterances correct).
- 15 of 16 impostor samples correctly rejected — a figure that says more about real usability than raw classification accuracy.
- Delivered an interactive MATLAB GUI: record, play back, identify, save training samples, rebuild the voiceprint database and load WAV files, with waveform, spectrogram and MFCC map shown side by side.
Technologies
- MATLAB
- MFCC
- GMM / EM
- CMVN
- Voice Activity Detection
- Speech Signal Processing