Skip to content

phgz/emotion

Repository files navigation

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

About

Projet de synthèse

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages