- Record and label voice samples
- Train and save a recognition model (
model.pkl) - Test recognition with confidence scores
- Clean CustomTkinter GUI
- Modular structure for easy maintenance
voice_recognition/
├── main.py # Entry point
├── gui.py # Application GUI
├── audio/
│ ├── recorder.py # Audio recording
│ └── features.py # Feature extraction
├── model/
│ ├── trainer.py # Model training logic
│ └── recognizer.py # Recognition logic
├── utils/
│ └── types.py # Dataclasses
├── data/ # Saved WAV files
├── model.pkl # Saved model (after training)
├── requirements.txt # List of required Python packages
├── .gitignore # Git ignore rules
└── README.md # Project documentation
- Download
git clone https://github.com/ozxmn/voice_reco.git
cd voice_recognition
- Install dependencies
pip install -r requirements.txt
- Run the app
python main.py
- Record samples for each person in the dataset (
data/person_name_folder). - Train model → creates
model.pkl. - Test recognition → identifies who is speaking based on trained data.
- customtkinter
- sounddevice
- soundfile
- numpy
- librosa
- scikit-learn
Start
Recording
Training
Voice recognition






