Giter Club home page Giter Club logo

snn_speechrec's Introduction

Speech Recognition with Spiking Nets

Implementation of the paper "Unsupervised speech recognition through spike-timing-dependent plasticity in a convolutional spiking neural network" by Meng Dong, Xuhui Huang, and Bo Xu, published at PLoS One in November 2018 (link).

We implement the convolutional spiking neural network from the paper that is trained to recognize speech uttarances using Spike-Timing Dependent Plasticity (STDP). The network training is fully unsupervised, as the network acts as a feature extractor that is only trained using local STDP. A linear SVM is used to classify the embeddings produced by the network and predict the utterance class from it. The authors use the TIMIT as well as the TIDIGITS dataset to train and test their model. We only focused on TIDIGITS, since documentation for the proper usage of TIMIT was found lacking.

The authors report a classification accuracy of 97.5% on the test set of the TIDIGITS dataset. In our implementation, we were only able to achieve a 92% accuracy. For an analysis of the possible reasons for this, as well as detailed documentation of the implementation process, please see our report.

Directory structure

  • vis/: plots of training progresses as well as network analysis corresponding to the plots found in the paper
  • model/: model related outputs
    • logs/: logs of different training runs including the membrane activations and output potentials of neurons and classification scores during training. Needed for the plots in vis/
    • weights/: weights of trained models
  • src/: contains all source code necessary for training, testing and analysing a model
    • models/: code that implements model architectures. Contains speechmodel.py which implements the network architecture as described in the paper.
    • utils/: utility modules:
      • model/: modules for training and testing models
      • data/: modules for loading the data and transforming them into the MFSC features used in the paper
      • generic.py: module for generic helper functions, e.g. status printing for scripts or plotting training progress
    • run.py: entry point for interacting with this library. Can be controlled via command line. Run python src/run.py --help to see all arguments.

snn_speechrec's People

Contributors

marit19 avatar tdevalk avatar thijsluttikholt avatar verrannt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

moerai

snn_speechrec's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.