From 80e83bb718defe59e999b94bd41895de6eb602a5 Mon Sep 17 00:00:00 2001 From: Jithin sasikumar Date: Sun, 28 Aug 2022 19:30:20 +0200 Subject: [PATCH] Added automatic tests and replaced pip with poetry --- .github/workflows/{main.yaml => deploy.yaml} | 7 +- .github/workflows/tests.yaml | 43 + .gitignore | 130 +- Aptfile | 2 - Dockerfile | 68 +- README.md | 148 +- app.py | 153 +- config_dir/config.yaml | 38 +- images/KWS_flowchart_updated.jpeg | Bin 0 -> 407603 bytes ...KWS_flowchart_updated.jpeg:Zone.Identifier | 4 + poetry.lock | 2634 +++++++++++++++++ pyproject.toml | 50 + requirements.txt | 35 - src/__init__.py | 1 + src/data.py | 505 ++-- src/exception_handler.py | 48 +- src/experiment_tracking.py | 232 +- kws_spotter.py => src/inference.py | 213 +- main.py => src/main.py | 173 +- src/model.py | 206 +- src/train.py | 166 +- tests/__init__.py | 0 tests/test_kws_spotter.py | 82 + 23 files changed, 3987 insertions(+), 951 deletions(-) rename .github/workflows/{main.yaml => deploy.yaml} (69%) create mode 100644 .github/workflows/tests.yaml delete mode 100644 Aptfile create mode 100644 images/KWS_flowchart_updated.jpeg create mode 100644 images/KWS_flowchart_updated.jpeg:Zone.Identifier create mode 100644 poetry.lock create mode 100644 pyproject.toml delete mode 100644 requirements.txt create mode 100644 src/__init__.py rename kws_spotter.py => src/inference.py (75%) rename main.py => src/main.py (52%) create mode 100644 tests/__init__.py create mode 100644 tests/test_kws_spotter.py diff --git a/.github/workflows/main.yaml b/.github/workflows/deploy.yaml similarity index 69% rename from .github/workflows/main.yaml rename to .github/workflows/deploy.yaml index 8d3b092..37f04be 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/deploy.yaml @@ -16,7 +16,7 @@ jobs: uses: actions/checkout@v2 - name: Build, Push and Release the KWS app as Docker container to Heroku. - uses: gonuit/heroku-docker-deploy@v1.3.3 # GitHub action name (leave it as it is). + uses: gonuit/heroku-docker-deploy@v1.3.3 with: email: ${{ secrets.HEROKU_EMAIL }} @@ -24,20 +24,15 @@ jobs: heroku_app_name: ${{ secrets.HEROKU_APP_NAME }} - # (Optional, default: "./") # Dockerfile directory dockerfile_directory: ./ - # (Optional, default: "Dockerfile") # Dockerfile name dockerfile_name: Dockerfile - # (Optional, default: "") # Additional options of docker build command. docker_options: "--no-cache" # (Optional, default: "web") - # Select the process type for which you want the docker container to be uploaded. # By default, this argument is set to "web". - # For more information look at https://devcenter.heroku.com/articles/process-model process_type: web \ No newline at end of file diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml new file mode 100644 index 0000000..8758210 --- /dev/null +++ b/.github/workflows/tests.yaml @@ -0,0 +1,43 @@ +name: Tests + +on: + push: + branches: [main] + pull_request: + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + + - name: cache poetry install + uses: actions/cache@v2 + with: + path: ~/.local + key: poetry-1.1.15-0 + + - uses: snok/install-poetry@v1 + with: + version: 1.1.15 + virtualenvs-create: true + virtualenvs-in-project: true + + - name: cache deps + id: cache-deps + uses: actions/cache@v2 + with: + path: .venv + key: pydeps-${{ hashFiles('**/poetry.lock') }} + + - run: poetry install --no-interaction --no-root + if: steps.cache-deps.outputs.cache-hit != 'true' + + - run: poetry install --no-interaction + - run: sudo apt-get install -y libsndfile1 + + - name: Run tests + run: poetry run pytest \ No newline at end of file diff --git a/.gitignore b/.gitignore index ba0430d..b6e4761 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,129 @@ -__pycache__/ \ No newline at end of file +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ diff --git a/Aptfile b/Aptfile deleted file mode 100644 index fb5c496..0000000 --- a/Aptfile +++ /dev/null @@ -1,2 +0,0 @@ -libsndfile1 -libsndfile1-dev \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 9d3c4e8..9002245 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,49 @@ -FROM python:3.8 - -RUN : \ - && apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y \ - --no-install-recommends \ - libsndfile1 \ - libsndfile1-dev \ - && : - -COPY . /app - -WORKDIR /app - -RUN pip install -r requirements.txt - -EXPOSE $PORT - -CMD gunicorn --workers=4 --bind 0.0.0.0:$PORT app:app +# Build base image +FROM python:3.8-slim as python-base + +ENV PYTHONUNBUFFERED = 1 \ + PYTHONDONTWRITEBYTECODE = 1 \ + PIP_NO_CACHE_DIR = off \ + PIP_DISABLE_PIP_VERSION_CHECK = on \ + PIP_DEFAULT_TIMEOUT = 100 \ + POETRY_VERSION = 1.1.15 \ + POETRY_HOME = "/opt/poetry" \ + POETRY_VIRTUALENVS_IN_PROJECT = true \ + POETRY_NO_INTERACTION = 1 \ + PYSETUP_PATH = "/opt/pysetup" \ + VENV_PATH = "/opt/pysetup/.venv" + +ENV PATH = "$POETRY_HOME/bin:$VENV_PATH/bin:$PATH" + + +# Build dev image +FROM python-base as dev-base + +RUN : \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y \ + --no-install-recommends \ + curl \ + build-essential \ + libsndfile1 \ + libsndfile1-dev + +RUN curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python + +ENV PATH="${PATH}:/root/.poetry/bin" + +COPY poetry.lock pyproject.toml ./ + +RUN poetry install + + +#Build production image +FROM python-base as production + +COPY --from=dev-base $PYSETUP_PATH $PYSETUP_PATH + +COPY . /app + +EXPOSE $PORT + +CMD gunicorn --workers=4 --bind 0.0.0.0:$PORT app:app \ No newline at end of file diff --git a/README.md b/README.md index efe5d06..9c6c66e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Deploying an end-to-end keyword spotting model into cloud server using Flask and Docker with CI/CD pipeline -This project promulgates a `pipeline` that `trains` end-to-end keyword spotting models using input audio files, `tracks` experiments by logging the model artifacts, parameters and metrics, `build` them as a web application followed by `dockerizing` them into a container and deploys the application containing trained model artifacts as a docker container into the cloud server with `CI/CD` integration and automated releases. +This project promulgates a `pipeline` that `trains` an end-to-end keyword spotting model using input audio files, `tracks` experiments by logging the model artifacts, parameters and metrics, `build` them as a web application followed by `dockerizing` them into a container and deploys the application containing trained model artifacts as a docker container into the cloud server with `CI/CD` integration, automated tests and releases. ## Author @@ -8,7 +8,18 @@ This project promulgates a `pipeline` that `trains` end-to-end keyword spotting ## Languages and Tools -
pythontensorflowdocker flask actions numpy hydra mlflow heroku
+
+python +tensorflow +docker + flask + actions + poetry + hydra + mlflow +heroku +pytest +

@@ -28,6 +39,66 @@ _**Disclaimer:**_
_1. This app is just a demo and not for realtime usage. The main objective is to get ML models into production in terms of deployment and CI/CD, from MLOps paradigm_.
_2. Additionally, due to some technical issues in the Heroku backend, the app currently crashes, so the Heroku app link is not provided as of now. It will be updated once the issues are solved and when the app is up and running_. +## Directory structure + +``` +├── .github +│ └── workflows +│ ├── deploy.yaml +│   ├── release.yaml +│   └── tests.yaml +├── app.py +├── artifacts +│   └── 2 +│   └── asr_model_1.3 +│   ├── meta.yaml +│   ├── metrics +│   ├── model_artifacts +│   │   ├── model +│   │   │   ├── conda.yaml +│   │   │   ├── data +│   │   │   │   ├── keras_module.txt +│   │   │   │   ├── model +│   │   │   │   │   ├── keras_metadata.pb +│   │   │   │   │   ├── saved_model.pb +│   │   │   │   │   └── variables +│   │   │   │   └── save_format.txt +│   │   │   ├── MLmodel +│   │   │   ├── python_env.yaml +│   │   │   └── requirements.txt +│   │   └── model_summary.txt +│   ├── params +│   └── tags +├── config_dir +│   ├── configType.py +│   ├── config.yaml +├── dataset +│   ├── test +│   └── train +├── Dockerfile +├── images +├── poetry.lock +├── pyproject.toml +├── README.md +├── src +│   ├── data.py +│   ├── exception_handler.py +│   ├── experiment_tracking.py +│   ├── inference.py +│   ├── __init__.py +│   ├── main.py +│   ├── model.py +│   └── train.py +├── static +│   ├── bg.jpg +│   └── page.css +├── templates +│   └── page.html +└── tests + ├── __init__.py + └── test_kws_spotter.py +``` + ## Motivation `Deep learning/Machine learning` or `AI` (in short) is the current hot topic which has its application in most of the fields and it's demand is increasing day-by-day. But at this point, the sad truth is - `Only very less percentage of ML/DL models makes into production`. That's when `MLOps` comes into the picture. @@ -42,33 +113,57 @@ MLOps is a budding field that productionalize ML models. `ML/DL` being a core re ## Description -The project is a concoction of `research` (audio signal processing, keyword spotting, ASR), `development` (audio data processing, deep neural network training, evaluation) and `deployment` (building model artifacts, web app development, docker, cloud PaaS) with integrating `CI/CD` pipelines and automated releases. +The project is a concoction of `research` (audio signal processing, keyword spotting, ASR), `development` (audio data processing, deep neural network training, evaluation) and `deployment` (building model artifacts, web app development, docker, cloud PaaS) by integrating `CI/CD` pipelines with automated releases and tests. -| ![flowchart](./images/KWS_flowchart_main.JPG) | +| ![flowchart](./images/KWS_flowchart_updated.jpeg) | |:--:| | Figure 2: Project Workflow - Deployment with CI/CD| ## Technical facets -1. Managing configurations across the application using `Hydra`. +1. Managing dependencies and packaging using `Poetry` across the application. +2. Handling and maintaining configurations across the application using `Hydra`. 2. Training a deep end-to-end `CNN-LSTM` neural network on `Google Speech command dataset` using `Tensorflow` to detect keywords or short one-second utterances. 3. Tracking the entire model training using `MLflow` from which `trained model artifacts`, metrics and parameters are logged. 4. Building a web app using `Flask API` that provides an intuitive interface to make predictions from the trained model using real audio data. -5. Writing a `docker` file and pushing it along with other application files including source code, artifacts etc. to the `GitHub` repository. -6. Automating `CI/CD Pipeline` as follows: - - Initialize `GitHub Actions` workflow for CI. This will automatically trigger the pipeline whenever it tracks a new commit to the repository. - - A new release will be created automatically when tags are pushed to the repository using `release.yaml` +5. Writing test cases to perform unit tests using `Pytest`. +6. Writing a `docker` file and pushing it along with other application files including source code, artifacts etc. to the `GitHub` repository. +7. Automating `CI/CD Pipeline` as follows: + - Initialize `GitHub Actions` workflows for CI. This will automatically trigger the pipeline whenever it tracks a new commit to the repository. + - Automated tests are perfomed using `Pytest` after every commit to the `main` branch. - Run the pipeline which builds the entire application along with the model to the docker image and then containerize into a `docker container`. + - A new release will be created automatically when tags are pushed to the repository using `release.yaml` - Deploy the docker container into `Heroku cloud server` that hosts the particular application. - The user can access the app via `URL`. The app facilitates to upload an input short `audio .wav file`, in which the predicted keyword is returned from the model along with the probability and displayed as a result in the app UI/webpage. -7. The above points are only a technical gist of the entire application. More detailed explanation about each facet is described in the [pipeline section](#pipeline) below. +8. The above points are only a technical gist of the entire application. More detailed explanation about each facet is described in the [pipeline section](#pipeline) below. ## Pipeline [Keyword Spotting](https://arxiv.org/ftp/arxiv/papers/1703/1703.05390.pdf) (KWS) is the task of detecting a particular keyword from speech. Current voice-based devices such as **Amazon Alexa**, **Google Home** etc. first detect the predefined keywords (wakewords) from the speech locally on the device. When such keywords are detected, a full scale automatic speech recognizer is triggered on the cloud for further recognition of entire speech and processing. Traditional approaches for KWS are based on Hidden Markov Models with sequence search algorithms. The advancements in deep learning and increased data availability replaced them with deep learning based approaches as state-of-the-art. +### Dependency Management - Poetry + +[Poetry](https://python-poetry.org/docs/) is a tool for dependency management and packaging in Python. It facilitates to declare the libraries in which the project is dependent on and manages (install/update) them efficiently without much hassles. In short, it is an all-in-one tool to manage Python packages. It allows to seperate the global dependencies and dev-dependencies without cluttering. + +[pyproject.toml](./pyproject.toml) holds all the information necessary to manage the packages. All the global dependencies are defined in `[tool.poetry.dependencies]` and dev-dependencies like **pytest, flake8** in `[tool.poetry.dev-dependencies]` which makes it easier to be used for development and production. [poetry.lock](./poetry.lock) facilitates to use the exact same versions of the dependencies. + +#### Pro-Tip to install dependencies using poetry + +**When the project needs multiple packages,** + 1. One way is, to install ony by one manually using: + ``` + poetry add + ``` + 2. But, it is very tedious and manual process to do that way. So, to install multiple dependencies from `requirements.txt` (conventional way), use the following command: + ``` + $cat requirements.txt | xargs poetry add + + ``` +**_Note:_** +_In the repo, `requirements.txt` is not added. If needed, please define all your packages in it and run the command above. Finally, poetry will install all your packages from requirements file._ + ### Configuration Management Every application or project comprises of multiple configuration settings. The most easy and obvious way is, defining all configurations in `config.py` or `config.json` file. But, it is always important to keep `scalability` and `reusability` in mind when writing code or developing an application. A good practice to do so, is using `configuration managers` to serve this purpose. One such config manager used in this project is [Hydra](https://hydra.cc/docs/intro/). `Hydra` is an open-source python framework that facilitates in creating a hierarchical configuration dynamically by means of composition and overriding them through config files and storing them. In this project, [config_dir](./config_dir/) holds all the project configurations and they are defined in [config.yaml](./config_dir/config.yaml). Please feel free to make necessary changes to the paths and parameters, based on the requirement. @@ -117,6 +212,10 @@ The similar kind of model is developed for this work with some changes. It is an The aforementioned, same functionality is also implemented in the code as well. The function to select best model based on the resulting metric is implemented in `find_best_model()` method of [MLFlowTracker](./src/experiment_tracking.py). +### Pytest + +[Pytest](https://docs.pytest.org/en/7.1.x/) framework makes it easy to write small, readable tests, and can scale to support complex functional testing for applications and libraries. [tests](./tests/) directory contains all the test cases defined. Currently, test cases are written only for some scenarios but more tests can also be added. For the automation part, please refer to [GitHub Actions](#github-actions). + ### FLASK API [Flask](https://flask.palletsprojects.com/en/1.1.x/) is a micro web framework for creating APIs in Python. It is a simple yet powerful web framework with the ability to scale up to complex applications. @@ -137,9 +236,10 @@ The main idea of using docker in this project is, to package and build a `docker [GitHub Actions](https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions) is a CI/CD platform which facilitates in automating the build, test, and deployment pipeline. Workflows can be created for building and testing every commit or pull request to the Git repository, or deploy merged pull requests to production. In our case, whenever the repository tracks a new commit, it triggers the CI/CD workflow pipeline. -`./github/workflows` defines the workflows that are needed to run the pipeline whenever triggered by an event. Considering the scope of the project, **two** workflows are defined and used as follows: - - `main.yaml` for building, testing and deploying the application to the cloud. - - `release.yaml` automatically creates a **GitHub Release** whenever a tag is committed with version number with relevant release details. All the releases can be accessed from [here](https://github.com/Jithsaavvy/Deploying-an-end-to-end-keyword-spotting-model-into-cloud-server-by-integrating-CI-CD-pipeline/releases). +`./github/workflows` defines the workflows that are needed to run the pipeline whenever triggered by an event. **Three** workflows are defined and used as follows: + - `deploy.yaml` for building, testing and deploying the application to the cloud. + - `release.yaml` automatically creates a **GitHub release** whenever a tag is committed with version number and relevant release details. All the releases can be accessed from [here](https://github.com/Jithsaavvy/Deploying-an-end-to-end-keyword-spotting-model-into-cloud-server-by-integrating-CI-CD-pipeline/releases). + - `tests.yaml` automates all test cases defined in [tests](./tests/) during every commit. ### Heroku Cloud PaaS @@ -160,11 +260,16 @@ Navigate to the project directory ```bash cd ``` +Install `poetry`. It also works with `conda envs` + +```bash + pip install poetry +``` -Install dependencies +Install all dependencies using poetry ```bash - pip install -r requirements.txt + poetry install ``` Download `.npy` dataset from [here](https://www.dropbox.com/sh/4wjo8e8h4cg4xlo/AAAC3yR_kj5oq-ZcJopBosYYa?dl=0). Make sure to put them in [./dataset/train/](./dataset/train/) directory. If not, it is fine to use a different directory but, make sure to specify the valid directory name or path in the [config.yaml](./config_dir/config.yaml) file. @@ -172,7 +277,7 @@ Download `.npy` dataset from [here](https://www.dropbox.com/sh/4wjo8e8h4cg4xlo/A Train the model ```bash - python3 main.py + poetry run python src/main.py ``` The above script trains the model and logs the model artifacts in [artifacts](./artifacts/) directory. @@ -180,20 +285,25 @@ The above script trains the model and logs the model artifacts in [artifacts](./ To run inference locally, ```bash - python3 kws_spotter.py + poetry run python src/inference.py +``` + +To run tests locally, + +```bash + poetry run pytest ``` Use audio files from this [test directory](./dataset/test/) for local inferencing or download the full test-set from [here](https://www.kaggle.com/competitions/tensorflow-speech-recognition-challenge/data). _**Note:** Assign necessary parameter variables and path in the [config.yaml](./config_dir/config.yaml). If it throws any error, please ensure that valid `PATH_NAMES` and `parameter` values are used._ -Additionally, to run locally via docker container , build image from [Dockerfile](./Dockerfile) and run the container using `docker build` and `docker run` commands. As this is not a docker tutorial, it is not necessary to go more in-depth into dockers. +Additionally, to run locally via docker container , build image from [Dockerfile](./Dockerfile) and run the container using `docker build` and `docker run` commands. As this is not a docker tutorial, in-depth explanation about dockers is not given. ## What's next? - Implement data management pipeline for data extraction, validation, data version control etc. - Use cloud storage services like `Amazon S3 bucket` to store data, artifacts, predictions and so on. -- Even though exception handling is implemented in the code, it is equally important to write seperate test cases for different scenarios. - Orchestrate the entire workflow or pipeline by means of orchestration tools like `Airflow, KubeFlow, Metaflow`. As this is a small personal project with static dataset, the workflow can be created using normal function calls. But for large, scalable, real-time project, it is crucial and predominant to replace these with orchestration tools for real workflows. - Implement `Continuous Training (CT)` pipeline along with `CI/CD`. diff --git a/app.py b/app.py index 40f9bdc..2fcabc6 100644 --- a/app.py +++ b/app.py @@ -1,76 +1,77 @@ -#!/usr/bin/env python3 - -""" -@author: Jithin Sasikumar - -Script to create a web application that wraps the trained model to be used for inference using `FLASK API`. -It facilitates the application to run from a server which defines every routes and functions to perform. -The front-end is designed using `./templates/page.html` and its styles in `./static/page.css` - -Note: - Make sure to define all the variables and valid paths in `.config_dir/config.yaml` to run this script - without errors and issues. -""" - -from kws_spotter import SpeechRecognition -from omegaconf import OmegaConf -from src.data import check_fileType -from src.exception_handler import NotFoundError -from flask import Flask, render_template, request, redirect, flash, abort - -app = Flask(__name__) -app.config["SECRET_KEY"] = "MyKWSAppSecretKey" -cfg = OmegaConf.load('./config_dir/config.yaml') - -@app.route('/') -def home(): - """ - Returns the result of calling render_template() with page.html - """ - return render_template('page.html') - -@app.route("/transcribe", methods = ["POST"]) -def transcribe(): - """ - Returns the prediction from trained model artifact whenever transcribe route is called. - It accepts file input (.wav) whenever user uploads the file, and make prediction using it. - The `app.route()` decorator does the job of event handling by means of `jinja2` template - engine. - - Raises - ------ - NotFoundError: Exception - 404 error, if any exception occurs. - """ - - recognized_keyword = "" - if request.method == "POST": - audio_file = request.files["file"] - if audio_file.filename == "": - flash("File not found !!!", category="error") - return render_template("page.html") - - elif not check_fileType(filename=audio_file.filename, extension=".wav"): - flash(f"Unsupported file format. Please use only .wav files", category="error") - return render_template("page.html") - - else: - try: - recognizer = SpeechRecognition(audio_file, - cfg.paths.model_artifactory_dir, - cfg.params.n_mfcc, - cfg.params.mfcc_length, - cfg.params.sampling_rate) - recognized_keyword, label_probability = recognizer.predict() - - except NotFoundError: - abort(404, description = "Sorry, something went wrong. Cannot predict from the model. Please try again !!!") - - return render_template( - "page.html", - recognized_keyword = f"Transcribed keyword: {recognized_keyword.title()}", - label_probability = f"Predicted probability: {label_probability}" - ) - -if __name__ == "__main__": - app.run(debug=False) +#!/usr/bin/env python3 + +""" +@author: Jithin Sasikumar + +Script to create a web application that wraps the trained model to be used for inference using +`FLASK API`. It facilitates the application to run from a server which defines every routes and +functions to perform. The front-end is designed using `./templates/page.html` and its styles in +`./static/page.css` + +Note: + Make sure to define all the variables and valid paths in `.config_dir/config.yaml` to run + this script without errors and issues. +""" + +from flask import Flask, render_template, request, flash, abort +from omegaconf import OmegaConf +from src import data +from src.inference import KeywordSpotter +from src.exception_handler import NotFoundError + +app = Flask(__name__) +app.config["SECRET_KEY"] = "MyKWSAppSecretKey" +cfg = OmegaConf.load('./config_dir/config.yaml') + +@app.route('/') +def home(): + """ + Returns the result of calling render_template() with page.html + """ + return render_template('page.html') + +@app.route("/transcribe", methods = ["POST"]) +def transcribe(): + """ + Returns the prediction from trained model artifact whenever transcribe route is called. + It accepts file input (.wav) whenever user uploads the file, and make prediction using it. + The `app.route()` decorator does the job of event handling by means of `jinja2` template + engine. + + Raises + ------ + NotFoundError: Exception + 404 error, if any exception occurs. + """ + + recognized_keyword = "" + if request.method == "POST": + audio_file = request.files["file"] + if audio_file.filename == "": + flash("File not found !!!", category="error") + return render_template("page.html") + + elif not data.check_fileType(filename=audio_file.filename, extension=".wav"): + flash("Unsupported file format. Please use only .wav files", category="error") + return render_template("page.html") + + else: + try: + recognizer = KeywordSpotter(audio_file, + cfg.paths.model_artifactory_dir, + cfg.params.n_mfcc, + cfg.params.mfcc_length, + cfg.params.sampling_rate) + recognized_keyword, label_probability = recognizer.predict() + + except NotFoundError: + abort(404, description = "Sorry, something went wrong. Cannot predict from the model. Please try again !!!") + + return render_template( + "page.html", + recognized_keyword = f"Transcribed keyword: {recognized_keyword.title()}", + label_probability = f"Predicted probability: {label_probability}" + ) + +if __name__ == "__main__": + app.run(debug=False) \ No newline at end of file diff --git a/config_dir/config.yaml b/config_dir/config.yaml index 7b2af44..0b5701c 100644 --- a/config_dir/config.yaml +++ b/config_dir/config.yaml @@ -1,20 +1,20 @@ -params: - epochs: 100 - learning_rate: 0.001 - test_data_split_percent: 0.25 - mfcc_length: 40 - sampling_rate: 16000 - n_mfcc: 49 - batch_size: 64 - -paths: - train_dir: ${hydra:runtime.cwd}/./dataset/train/ - test_dir: ${hydra:runtime.cwd}/./dataset/test/ - mlflow_tracking_uri: file:/${hydra:runtime.cwd}/./artifacts - model_artifactory_dir: ./artifacts/2/asr_model_1.3/model_artifacts/model/ - audio_dir: ${hydra:runtime.cwd}/./dataset/audio - -names: - experiment_name: ASR_Exp - audio_file: ${hydra:runtime.cwd}/./recorded_four.wav +params: + epochs: 100 + learning_rate: 0.001 + test_data_split_percent: 0.25 + mfcc_length: 40 + sampling_rate: 16000 + n_mfcc: 49 + batch_size: 64 + +paths: + train_dir: ${hydra:runtime.cwd}/./dataset/train/ + test_dir: ${hydra:runtime.cwd}/./dataset/test/ + mlflow_tracking_uri: file:/${hydra:runtime.cwd}/./artifacts + model_artifactory_dir: ./artifacts/2/asr_model_1.3/model_artifacts/model/ + audio_dir: ${hydra:runtime.cwd}/./dataset/audio + +names: + experiment_name: ASR_Exp + audio_file: ./dataset/test/audio1.wav metric_name: val_accuracy \ No newline at end of file diff --git a/images/KWS_flowchart_updated.jpeg b/images/KWS_flowchart_updated.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..41637b45acaeb6df14b3091efc7b06501cb5287e GIT binary patch literal 407603 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%0DopgOgqky9JvLbOEy7 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