Git Product home page Git Product logo

voicesens's Introduction

VoiceSens - Adding Voice Biometrics to your Application

VoiceSens is a text independent voice biometric solution developed to combat some of the shortcomings of standard authentication techniques like passwords and pincodes, as well as current available voice biometric solutions. The solution is developed in Python and uses Watson Speech to Text (speech recognition).

Table of Content

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

  1. Install and set up Python 3.

  2. Sign up for an IBM Cloud account.

  3. Create an instance of the Speech to Text service and get your credentials:

    • Go to the Speech to Text page in the IBM Cloud Catalog.
    • Log in to your IBM Cloud account.
    • Click Create.
    • Click Show to view the service credentials.
    • Copy the iam_apikey and url values.

Configuring the application

  1. Open the sample_config.py file and change the username and password for the text to speech service. Then rename the file to config.py
APIKEY = "APIKEY"  
URL = "URL"  

Running locally

  1. Clone the repository.

    git clone https://github.com/bedangSen/VoiceSens.git
    
  2. Move into the project directory.

    cd VoiceSens
    
  3. (Optional) Running it in a virtual environment.

    1. Downloading and installing virtualenv.
    pip install virtualenv
    
    1. Create the virtual environment in Python 3.
     virtualenv -p path\to\your\python.exe test_env
    
    1. Activate the test environment.

      1. For Windows:
      test_env\Scripts\Activate
      
      1. For Unix:
      source test_env/bin/activate
      
  4. Install all the required libraries, by installing the requirements.txt file.

    pip install -r requirements.txt
    
  5. Run the application.

    python voice.py
    
  6. Go to http://localhost:8080

Demo

1. VoiceSens Homepage



The first thing that you see when you open the web page are two options:

  1. Enroll a new user
  2. Authenticate an existing user

2. Enrollment Page



If you haven't created a voice sample, the first step is to create an account and enroll your voice samples. The model then generates a voice print on the voice samples provided.

3. Authentication Page

Once you have created an account, you can authenticate yourself by recording a voice sample, generating a voice print, and then comparing the voice print to the voice prints in the database

4. Voice Biometrics Page

When you record your voice sample, the first thing you do is record the environmental sound. This creates a baseline for noise in the following recording, increasing the accuracy of your results. Once you are done with that you can proceed with reciting the randomly generated words. If the fuzzy matching ratio between the generated words and recognised words is less than 65, the recorded voice phrase will not be accepted, and you will be asked to record your voice sample again.

Key Components

  • IBM Watson Speech to Text - The Speech to Text Service used.
  • Scipy - SciPy is a Python-based ecosystem of open-source software for mathematics, science, and engineering.
  • Speech Recognition - Library for performing speech recognition, with support for several engines and APIs, online and offline.
  • Python Speech Features - This library provides common speech features for ASR including MFCCs and filterbank energies.
  • Fuzzy Wuzzy - Fuzzy string matching like a boss. It uses Levenshtein Distance to calculate the differences between sequences in a simple-to-use package.
  • Random Words - This is a simple python package to generate random english words.
  • Skitlearn Gaussian Mixture Models - sklearn.mixture is a package which enables one to learn Gaussian Mixture Models

References

To Do

  • Hashing the audio files and signing it with the clients private key, to prevent man in the middle attacks.
  • Improve the accuracy of the GMM model.
  • Add solution architecture.
  • Storing the models in a secure Object storage

voicesens's People

Stargazers

 avatar

Watchers

 avatar

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.