A model for emotion classification based on text and audio.
Project description
Emotion
A model for emotion classification based on text and audio.
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file a62-emotion-0.11.0.tar.gz
.
File metadata
- Download URL: a62-emotion-0.11.0.tar.gz
- Upload date:
- Size: 17.5 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4f9efb0de6a1c83cae6acac82e17585f25b3f3b61839e3a3b8a5e1ea0fd058a |
|
MD5 | 3934ba6b2552ceaee87b5d62669e72f4 |
|
BLAKE2b-256 | 08197efb4b4755bdba999cd50dd16035574f4c76a608ab02372ccda44c90fa4c |
File details
Details for the file a62_emotion-0.11.0-py3-none-any.whl
.
File metadata
- Download URL: a62_emotion-0.11.0-py3-none-any.whl
- Upload date:
- Size: 21.5 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89ab8eb62b4fdc6f0039b0a1639fd960e8d7f99dd47db875a017bfe9a7684aa6 |
|
MD5 | 359560297d56e167485ed90278b89846 |
|
BLAKE2b-256 | 5e9cf9cffe9b75d3897656e923455a2c094bfd63699420510c851130d41eab9d |