Code Monkey home page Code Monkey logo

speaker-verification's People

Stargazers

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

Watchers

 avatar  avatar

speaker-verification's Issues

Research on Potential Approaches for Speaker Verification

Here's a quick list of the papers that I've been reading on the different approaches.

Papers

Findings

It seems like the Deep Speaker approach looks like it could be a great starting point as "Deep learning methods in speaker recognition: a review" point towards a DNN + i-vector being the most effective, while the Deep Speaker project looks to improve on this.

Add LICENSE file

The project should have a specific LICENSE in order to define build configurations and publish it on PyPI.

Convert Speaker Verification To RESTful Service

Brief

As speaker verification matures, the direction of its finial implementation needs to be considered. This would allow for the project to be a continually evolving extension of Doubtfire. This direction will serve as an effective way to guide next steps on how the project will proceed.

Proposed Technical Stack

  • Entire development and production environment, and their dependancies are housed within Docker using Docker Compose.
  • Django serves as the web framework for the project. This suits the project due to Python being the language used for the current project.
  • Gunicorn serving as the WSGI.
  • Celery for task queuing.
  • Redis for message brokering with the tasks.
  • PostgreSQL for the database.
  • Nginx for the web server.

Commentary

This technical stack is based on personal preference, so it would be great to get some feedback. By doing it this way we will achieve the following:

  • Removing the need to write SQL Queries. Automatically manage database migrations as the project evolves. Develop models in an easy to read format.

Screen Shot 2021-03-15 at 4 38 04 pm

Screenshot of a Django model

  • Unified development environment. Setup production or dev environment by setting a few environment variables and running docker-compose -f docker-compose.yml up -d --build
  • Make use of established Django frameworks such as the Django Rest Framework.
  • Easily develop tests.
  • Already has a backend admin panel, incase you needed to easily view / edit data in the DB.

Screen Shot 2021-03-15 at 4 29 39 pm

Screenshot of a Django Admin Panel

The direction the RESTFul implementation of this project would take heavily depends on the project's final intentions. For example, if this project were to evolve in a larger contract cheating prevention platform, then building a proper web service might be a good direction to take the project.

It would probably take 2-3 hours to get this all setup and working properly, with some basic documentation.

Looking forward to hearing your thoughts.

Explore ways to improve Machine learning model

Improve development guidelines for future improvements

Include the following:

  • Black python autoformatting
    • line length: 90
  • Semantic commits for GitHub
  • Don't delete stale or merged branches (for assessment reasons)
  • Use pytest fixtures and methods for writing tests.
  • Run tests before commiting, dont rely on the pipeline
  • DRY code

Refactor denoise.py to utilise existing dependencies

Refactor out denoise.py and encapsulate the function into either existing dependencies like librosa and or wave instead of relying on the custom function. This should be extended to be utilized before the deep-speaker sub-module is called in the enroll and validate workflows are called.

Some sort of test to gauge the effectiveness of this denoise process will be needed in order to justify its runtime costs in this project.

Improve README.md and docstrings

Improve the documentation for the project with the following sections:

  • Note module usage
  • Environment installation instructions
  • project license

Add git tags to previous trimesters work

Add tags to end of last trimester as some version which will be built upon this trimester for historical records. This will establish the point where our teams contribution starts from last year.

Add unit/integration tests for __init__ workflows

Add integration testing to the enroll_new_user and validate_user function for all required and optional arguments in order to reach full testing coverage in the projects entry points.

Use pytest-cov to generate coverage reports on the code coverage.

Create CI code coverage badge

Create a coverage badge in the README.md that links to the coverage of tests run in the CI.

  • Create a mechanism in the existing python-ci.yml file that takes the coverage value from passing tests.
  • Create a coverage badge that displays the coverage value in README.md.

See actions coverage mechanism

Create Contribution guidelines

Create a markdown file documenting the guidelines for contributing to the project.

  • Principles
  • Pull Requests
  • Testing, CI (GitHub Actions)
  • Auto-formatting
  • Environment

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.