Git Product home page Git Product logo

vanilla-stft-mfcc's Introduction

Vanilla STFT and MFCC

This repository contains a Python implementation of Short-time Fourier transform (STFT) and Mel-frequency cepstral coefficients (MFCCs) from scratch, along with comparisons with the librosa implementation.

For further details on the results and analysis, please refer to the report - report.pdf

Installing Dependencies

Make sure you have a Python3+ version. Run the following command -

pip install -r requirements.txt

Running the code

Open jupyter notebook using the following command -

jupyter notebook

and select notebook.ipynb. All the step-by-step code and analysis is present here.

Analysis

Comparison between Custom and librosa implementations

The implementations differ slightly in terms of computation time taken to obtain the spectrogram (primarily because of the internal optimisation done by librosa).

On a short 3 second recording, the Spectrogram as obtained from librosa is as follows -

Librosa STFT implementation

The Spectrogram obtained from custom implementation is as follows -

Custom STFT implementation

Visualisation of Mel Filter Banks

A primary reason to switch to a Cepstral scale is to map audio frequencies in a scale which represents the way humans perceive sound.

The Mel Filter banks look like this -

Mel Filter Banks

License

Copyright (c) 2020 Brihi Joshi

For license information, see LICENSE or http://mit-license.org


This code was written as a part of a course assignment in Speech Recognition and Understand with Dr. Pravesh Biyani at IIIT Delhi during Winter 2020 Semester.

For bugs in the code, please write to: brihi16142 [at] iiitd [dot] ac [dot] in

vanilla-stft-mfcc's People

Contributors

brihijoshi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

mahbubnoor

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.