A small speech-classification project built to recognize five voice commands plus a no_command class from 3-second audio clips.
The final model uses a frozen HuBERT encoder (facebook/hubert-base-ls960) to extract frame-level speech representations, followed by an LSTM classifier for temporal command detection.
Commands
Class
Spoken command
command_1
get ready
command_2
load
command_3
left
command_4
right
command_5
shoot
no_command
background / non-command audio
Dataset
The published dataset includes:
original command recordings
real non-command recordings
robot movement noise
DEMAND home-environment background noise used in the experiments
generated 3-second synthetic clips
frame-level labels used for training
The final synthetic dataset contains 10,400 clips:
8,000 training
1,200 validation
1,200 test
Audio is processed at 16 kHz with a fixed duration of 3 seconds.
The training and evaluation notebooks preserve the outputs from the original experiment. The final training run was computationally expensive, so the notebooks were cleaned for publication without rerunning the training process.
Because the saved outputs come from the original run, some printed log paths may still show the original local project directories. The executable notebook code uses the public repository structure shown above.
Intended Use
This project is intended as a portfolio and research demo for small-vocabulary speech-command classification. It is not designed as a general-purpose speech-recognition system.