This project aims to address the issues concerning contract cheating within online learning management platforms as educational institutions have struggled to monitor and evaluate online activity. The Speaker Verification project aims to utilize machine learning technologies to evaluate audio files submitted from a user and obtain a confidence score of how likely it is that the voice in the recording is the user in question.
The speaker_verification tool has a enroll and validate workflow in order to perform speaker verification for a given user.
The enroll workflow requires two parameters, one being a unique numeric id that must be 9 characters long and a path to a wav or flac file of the users voice. Below is the required syntax and format for the this stage.
python -m speaker_verification enroll --id <ID_NUMBER> --audio-path <PATH/TO/FILE>
The validate workflow retrives a user enrollment based on the given id parameter given and then uses the --audio-path
input to accept an audio file as speaker input to verify against the given user enrollment.
python -m speaker_verification validate --id <ID_NUMBER> --audio-path <PATH/TO/FILE>
The speak-verification
package requires Python 3.8.*
The package speaker-verification is hosted on PyPI
pip install speaker-verification
This project has both a requirements.txt
and environment.yml
file's, it is up to your discretion of what environment manager you should like to use.
The repository relies on the speaker_verification
python module being on the PYTHONPATH
which you should set before running.
export PYTHONPATH=${PYTHONPATH}:/path/to/speaker-verification
Miniconda
is a minimal install for conda which hosts packages from PyPi
, zlib
and other packages outside of the python language.
Download the relevent miniconda installation here for your specified OS.
NOTE: If you are developing on windows then Anaconda might be a better option.
You should be able to install the rest with the conda.io instructions.
Install the python dependencies in a conda virtual environment called deep-speaker
by using the environment.yml
file to point to the required dependencies.
conda env create -f environment.yml
conda activate deep-speaker
Like miniconda
, virtualenv
is an virual environment manager for python which uses PyPi (Python Package Index) packages distributed by pip.
pip install virtualenv
# create a new environment, usually in your home dir
python37 -m virtualenv ./env_name
# activate environment
source ./env_name/bin/activate
# install environment dependencies by pointing to requirements.txt file
pip install -r requirements.txt
We use pytest
for managing the exection of our tests the project. Below is the current usage for running the tests.
# the below command is relient on the user's working dir being the root of the project.
pytest speaker_verification/
For details on contributing to the project please read the project contribution guidelines.
This repository makes use of open source components initially developed by @philipperemy in the "Unofficial" deep-speaker
project based on the research by Baidu, Inc.
See the deep-speaker project here.
See the research paper here.