Skip to main content

A model for emotion classification based on text and audio.

Project description

Emotion

A model for emotion classification based on text and audio.

emotion - merge MIT License

Acknowledgements

  • Hafed Benteftifa
  • Soumaya Chaffar

Features

Give audio and text as input and get back the dominant emotion.

Usage/Examples

Be sure to add double quotes to lines containing one or more commas for .csv files.

For graphical interface, use https://a62-emotion.herokuapp.com/index and upload .wav and .csv files.

In [1]: import requests

In [2]: with open("./data/raw_sample/audio/UlTJmndbGHM.wav", "rb") as fd:
   ...:     response = requests.post("https://a62-emotion.herokuapp.com/predict", files={'files[]': fd})
   ...:

In [3]: response.json()
Out[3]: {'predictions_audio': {'UlTJmndbGHM.wav': 'positive'}, 'predictions_texte': {}}
curl -F 'files[]=@/home/user/emotion/data/raw_sample/audio/DatH-ra0VKY.wav' -F 'files[]=@/home/user/file.csv' https://a62-emotion.herokuapp.com/predict
{"predictions_audio":{"DatH-ra0VKY.wav":"positive"},"predictions_texte":{"file.csv":{"DAMON WILLIAMS: I am the Senior Vice President and Chief Education and Youth Development Officer for the Boys and Girls Clubs of America.":"neutral","In that role, I help to shape the education policy and youth development direction for more than 4,000 clubs that are part of our federated network, having an impact on more than 4 million young people across this nation.":"positive"}}}

API Reference

Get a prediction for file(s)

  POST /predict
Parameter Type Description
files[] File Required. File(s) to process

Installation

Install emotion with pip

  pip install a62-emotion

Environment Variables

To run this project, you will need to add the following environment variables to your .env file

GDRIVE_CREDENTIALS_DATA

FLASK_SECRET_KEY

System Dependencies

For audio, you will need to install libsndfile1 (and libsndfile1-dev on some systems)

sudo apt-get install libsndfile1

Run Locally

Be sure to have python 3.8.13 as the python executable

python3 --version

To install Poetry, run:

curl -sSL https://install.python-poetry.org | POETRY_VERSION=1.1.14 python3 - --yes

(Optional) To install the Heroku CLI, follow these steps

https://devcenter.heroku.com/articles/heroku-cli#standalone-installation-with-a-tarball

Clone the project

git clone https://github.com/philipgaudreau/emotion

Go to the project directory

cd emotion

Install dependencies (add flag --without-dev if you do not want development dependencies)

poetry install

Activate the virtual environment

poetry shell

Pull cloud data if needed (You will need to export GDRIVE_CREDENTIALS_DATA)

dvc pull [<.dvc file>]

Start using the command line interface (Not implemented yet)

emotion --help

Running Tests

To run tests, run the following command (development dependencies must be installed)

pytest tests

Deployment

This project is automatically deployed on Heroku when a PR is merged. To test locally, run (You will need to export FLASK_SECRET_KEY)

heroku local

Tech Stack

CI: GitHub Actions, DVC

CD: GitHub Actions, Heroku

Frameworks: Scikit-learn, Tensorflow, Flask

Versionning: Poetry, SemVer

Cloud: G-Drive, GitHub, Heroku

Feedback

If you have any feedback, please reach out to one of us.

Authors

🚀 About Us

We are on our way to finish a degree in Machine Learning.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

a62-emotion-0.10.10.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

a62_emotion-0.10.10-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file a62-emotion-0.10.10.tar.gz.

File metadata

  • Download URL: a62-emotion-0.10.10.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0b1 CPython/3.8.13 Linux/5.13.0-1031-azure

File hashes

Hashes for a62-emotion-0.10.10.tar.gz
Algorithm Hash digest
SHA256 26f1d724a69e1b63c011582b8cce12385fe317661e0fe90dbcb9ff3ac3afd9bf
MD5 2c747e4446b8bf74a318ff7052fd9ab3
BLAKE2b-256 c6c7259396aa643d908f9e91c3f23ccb39144af4bf23395b3382fdc8a5abe6d6

See more details on using hashes here.

File details

Details for the file a62_emotion-0.10.10-py3-none-any.whl.

File metadata

  • Download URL: a62_emotion-0.10.10-py3-none-any.whl
  • Upload date:
  • Size: 17.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0b1 CPython/3.8.13 Linux/5.13.0-1031-azure

File hashes

Hashes for a62_emotion-0.10.10-py3-none-any.whl
Algorithm Hash digest
SHA256 54c62af0875d71dfbdafcb74cdeeeb118d16e610b309b09dd24e5eb9acfb7780
MD5 890ea9d26caf39b68a2e4bab20479211
BLAKE2b-256 4a8f2fc6202c5e8dbacd4b0c76b593fc1a8a10ba5ade68a009902db36a9b3b5e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page