Skip to content

bedangSen/VoiceSens

Repository files navigation

VoiceSens

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 username and password 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
IBM_USERNAME = "USERNAME"  # IBM Speech to Text usernames are strings of the form XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
IBM_PASSWORD = "PASSWORD"  # IBM Speech to Text passwords are mixed-case alphanumeric strings

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
    

Demo

1. VoiceSens Homepage

2. Enrollment Page

3. Authentication Page

4. Voice Biometrics Page

Built With

  • IBM Watson Speech to Text - The Speech to Text Service used.
  • Numpy - NumPy is the fundamental package for scientific computing with Python.
  • 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

  • Make a pull request to the SpeechRecognition Library to update the ibm_recognize serivice to the updated IBM credentials service. (IBM Watson no longer provides username and password)
  • Hashing the audio files and signing it with the clients private key, to prevent man in the middle attacks.
  • Working on the front end.
  • Improve the accuracy of the GMM model.
  • Add solution architecture.
  • Storing the models in a secure Object storage