Skip to content

Implementation of the paper A Spiking Network that Learns to Extract Spike Signatures from Speech Signals

License

Notifications You must be signed in to change notification settings

swapnil-ahlawat/Speech_Spike_Signatures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Speech to Spiking Signatures

Implementation of the paper A Spiking Network that Learns to Extract Spike Signatures from Speech Signals

Steps

  1. Install PyGeNN.
  2. Install dependencies in requirements.txt.
  3. Download and extract the Free Spoken Digit Dataset (FSDD).
  4. Run src/preprocess.py to pre-process the data and extract features from it.
  5. Run src/train.py to simulate (train) the spiking neural network (SNN).

Usage

preprocess.py

To pre-process the data and perform feature extraction using the preprocess.py script -

usage: Script to pre-preocess the speech data [-h] --data_dir DATA_DIR [--data_file DATA_FILE] [--upper_bound UPPER_BOUND] [--lower_bound LOWER_BOUND]

required arguments:
  --data_dir DATA_DIR         Should point to the the folder containing all the audio .wav files

optional arguments:
  --data_file DATA_FILE       Name of the .npy file the pre-processed should be saved as (default='data')
  --upper_bound UPPER_BOUND   The upper bound of for sacling the feature extracted from the speech signal (default=52000.0)
  --lower_bound LOWER_BOUND   The lower bound of for sacling the feature extracted from the speech signal (default=52.0)

Example arguments -

python preprocess.py --data_dir FSDD/recordings --data_file data --upper_bound 52000.0 --lower_bound 52.0


train.py

To train (simulate) the SNN using the train.py script -

usage: Script to train model the SNN using supervised STDP [-h] --datafile DATAFILE [--outdir OUTDIR] [--n_samples N_SAMPLES]

required arguments:
  --datafile DATAFILE        Path to the .npy file containing the speech data

optional arguments:
  --outdir OUTDIR            Name of folder where all the ouput files (membrane potentials etc) should be stored. Folder doesn't need to exist beforehand. (default='output')
  --n_samples N_SAMPLES      Number of samples in the dataset for which the network should be simulated. (default=1)

Example arguments -

python train.py --datafile data/data_52000.npy --outdir results --n_samples 1

About

Implementation of the paper A Spiking Network that Learns to Extract Spike Signatures from Speech Signals

Topics

Resources

License

Stars

Watchers

Forks

Languages