Downloads · 30 days
31
0% of all-time downloads
canlinzhang/wav2vec2_speech_emotion_recognition_trained_on_IEMOCAP
wav2vec2_speech_emotion_recognition_trained_on_IEMOCAP is a audio classification model from canlinzhang. Use it for the audio classification task on the model card, and read the license before you ship it in a product. It is set up for transformers.
This model is fine tuned on the IEMOCAP dataset. We applied volume normalization and data augmentation (noise injection, pitch shift and audio stretching). Also, this is a speaker independent model: We use Ses05F in t…
Downloads · 30 days
31
0% of all-time downloads
All-time downloads
8.6K
Public
Repo size
4.2 GB
Likes
0
Public
Click a slice to open those files.
.bin378 MB · 100%
From the Hugging Face model README
This model is fine tuned on the IEMOCAP dataset. We applied volume normalization and data augmentation (noise injection, pitch shift and audio stretching). Also, this is a speaker independent model: We use Ses05F in the IEMOCAP dataset as validation speaker and Ses05M as test speaker.
The initial pre-trained model is facebook/wav2vec2-base. The fine tune dataset only contains 4 common emotions of IEMOCAP (happy, angry, sad, neutral), without frustration. The audios are either padded or trimed to 8-sec-long before fine tuning.
After 10 epoches of training, the validation accuracy is around 67%.
In order to impliment this model: Please run the following code in a python script:
from transformers import AutoFeatureExtractor, AutoModelForAudioClassification
import librosa
import torch
target_sampling_rate = 16000
model_name = 'canlinzhang/wav2vec2_speech_emotion_recognition_trained_on_IEMOCAP'
audio_path = your_audio_path
#build id and label dicts
id2label = {0:'neu', 1:'ang', 2:'sad', 3:'hap'}
label2id = {'neu':0, 'ang':1, 'sad':2, 'hap':3}
feature_extractor = AutoFeatureExtractor.from_pretrained(model_name)
model = AutoModelForAudioClassification.from_pretrained(model_name)
y_ini, sr_ini = librosa.load(audio_path, sr=target_sampling_rate)
inputs = feature_extractor(y_ini, sampling_rate=target_sampling_rate, return_tensors="pt")
logits = model(**inputs).logits
predicted_class_ids = torch.argmax(logits).item()
pred_class = id2label[predicted_class_ids]
print(pred_class)