https://github.com/rusenaite/speaker-identification-using-ml
A speaker recognition system using machine learning (SVM) with MFCC, chroma, and tonnetz features extracted from short audio clips.
https://github.com/rusenaite/speaker-identification-using-ml
chroma mfcc ml python svm tonnetz
Last synced: about 2 months ago
JSON representation
A speaker recognition system using machine learning (SVM) with MFCC, chroma, and tonnetz features extracted from short audio clips.
- Host: GitHub
- URL: https://github.com/rusenaite/speaker-identification-using-ml
- Owner: rusenaite
- Created: 2025-04-23T19:57:34.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-23T20:40:04.000Z (about 1 year ago)
- Last Synced: 2025-04-24T00:59:17.778Z (about 1 year ago)
- Topics: chroma, mfcc, ml, python, svm, tonnetz
- Language: Jupyter Notebook
- Homepage:
- Size: 28.9 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Kalbėtojo atpažinimas naudojant mašininį mokymąsi
## Tikslas
Sukurti sistemą, kuri geba atpažinti kalbėtoją iš trumpų garso įrašų, taikant mašininio mokymosi metodus.
## Sistemos schema

## Duomenys
- Naudotas kelių kalbėtojų garso įrašų rinkinys (10 kalbėtojų, po kelis įrašus kiekvienam).
- Įrašai trumpi (1–3 sekundės), WAV formatu.
- Katalogo struktūra:
```
dataset/
├── speaker1/
├── speaker2/
└── ...
```
## Požymių išgavimas
Iš kiekvieno įrašo išgauti šie požymiai:
- MFCC (13 koeficientų, su vidurkiu ir standartiniu nuokrypiu)
- Chroma (vidurkis ir standartinis nuokrypis)
- Tonnetz (vidurkis ir standartinis nuokrypis)
Trumpi įrašai (<2048 mėginių) buvo automatiškai prailginti nuliais (zero-padding), kad būtų užtikrintas skaičiavimų stabilumas.
## Klasifikavimo modelis
Naudotas SVM (Support Vector Machine) su `linear` branduoliu.
- Požymiai normalizuoti naudojant `StandardScaler`.
- Duomenys padalyti: 80% – mokymui, 20% – testavimui.
## Rezultatai
| Rodiklis | Reikšmė |
|----------|---------|
| Tikslumas (accuracy) | 100.00% |
| Klasifikavimo ataskaita | Visos klasės atpažintos be klaidų |
| Confusion matrix | Jokios klasifikavimo klaidos |
## Eksperimentas su triukšmu
Buvo pridėtas white noise (noise_level = 0.05) prie testavimo požymių.
| Būsena | Tikslumas |
|--------|-----------|
| Be triukšmo | 100.00% |
| Su triukšmu | 100.00% |
Pastaba: triukšmas buvo pridėtas prie išskaičiuotų požymių. Realistiškesniam testavimui rekomenduojama triukšmą taikyti tiesiai WAV įrašams prieš požymių skaičiavimą.
## Išvados
- Modelis sėkmingai atpažino visus kalbėtojus, net esant labai trumpiems įrašams.
- MFCC, Chroma ir Tonnetz požymiai pasirodė esantys labai efektyvūs.
- SVM modelis su linear branduoliu buvo tinkamas pasirinkimas šiai užduočiai.
- Tolimesniems bandymams verta įtraukti triukšmą ankstesnėse stadijose bei didesnius, įvairesnius duomenis.