Closed Oblivion97 closed 4 years ago
Hi,
You can use custom data only as mentioned in README.md
, after deleting my own custom data in data/train-custom
and data/test-custom
folders, you can add your own there.
After that, you need to disable default datasets, here is the code for that:
from emotion_recognition import EmotionRecognizer
rec = EmotionRecognizer(None, emotions=["sad", "neutral", "happy"], tess_ravdess=False, emodb=False, custom_db=True)
rec.get_samples_by_class()
Outputs: (in my case)
train test total
sad 21 16 37
neutral 21 16 37
happy 21 16 37
total 63 48 111
You can find the best model suited automatically:
rec.determine_best_model()
Outputs:
[+] Best model determined: MLPClassifier with 77.083% test accuracy
To add your custom data, all you need to do is converting your audio samples to 16000 sample rate as mentioned in README.md
(please read it) and then labeling each sample by its emotion at the end of its name, here is an example: 20190615_014359_sad.wav
will automatically classified as sad sample.
Hi, Can I use your model to detect any other emotion like rudeness using my own custom-dataset? If yes, please guide.
Hi, sorry to disturb you again, I am trying to use my own custom training dataset, I have done all the preprocessing of the files and changed the code as well. But I am getting the following error
deeprec = DeepEmotionRecognizer(emotions=['angry', 'sad', 'neutral', 'ps', 'happy'], n_rnn_layers=2, n_dense_layers=2, rnn_units=128, dense_units=128, emodb=False, tess_ravdess=False, custom_db=True) File "/home/ritika/emotion-recognition-using-speech/deep_emotion_recognition.py", line 116, in init self._compute_input_length() File "/home/ritika/emotion-recognition-using-speech/deep_emotion_recognition.py", line 151, in _compute_input_length self.load_data() File "/home/ritika/emotion-recognition-using-speech/deep_emotion_recognition.py", line 219, in load_data self.X_test = self.X_test.reshape((1, X_test_shape[0], X_test_shape[1])) IndexError: tuple index out of range
But when I change these tess_ravdess and emodb to True the code works fine, can you please help and let me know where am I missing the trick here?
Thank You
Hey @Tanish18
Sorry for the late reply, I have fixed the issue, it was caused because the custom dataset doesn't have the emotions you specify.
For instance, if you specify 'angry' emotion, and you do not have angry samples in the custom dataset, it will raise this error, it was there because balance
is set to True
by default. Now I fixed it and it set it to False
when there are no samples on some emotion classes.
So please pull the latest updates.
Thanks.
How can I configure it for my native language?& if I want to test yours, how would I start the training & test the model?