Views
No views yet
1from pipeline_emotion_av import pipeline
2
3# Create pipeline
4emotion_pipeline = pipeline(
5 "audio-emotion-classification",
6 model="pricklypearhealth/emotion-av-model"
7)
8
9# Process audio
10result = emotion_pipeline("path/to/audio.wav", return_all_scores=True)
11print(result)1from modeling_emotion_av import EmotionAVModel
2from feature_extraction_emotion_av import EmotionAVFeatureExtractor
3
4# Load model and feature extractor
5model = EmotionAVModel.from_pretrained("pricklypearhealth/emotion-av-model")
6feature_extractor = EmotionAVFeatureExtractor.from_pretrained("pricklypearhealth/emotion-av-model")
7
8# Process audio file
9features = feature_extractor.from_file("path/to/audio.wav", return_tensors="pt")
10result = model.predict_emotion(features["input_features"])
11
12print(f"Emotion: {result['emotion']}")
13print(f"Confidence: {result['confidence']:.4f}")
14print(f"Arousal: {result['arousal']:.4f}")
15print(f"Valence: {result['valence']:.4f}")Input Audio (16kHz)
↓
Feature Extraction:
├── Wav2Vec2 (768 features)
├── MFCC (13 features)
└── Prosodic (6 features)
↓
Combined Features (787 dims)
↓
Dual Branch Network:
├── Emotion Branch → 6-class Classification
└── AV Branch → 2D Regression (Arousal, Valence)1import requests
2import base64
3
4# Encode audio file
5with open("audio.wav", "rb") as f:
6 audio_bytes = f.read()
7 audio_b64 = base64.b64encode(audio_bytes).decode()
8
9# Make API request
10response = requests.post(
11 "https://api-inference.huggingface.co/models/pricklypearhealth/emotion-av-model",
12 headers={"Authorization": "Bearer YOUR_HF_TOKEN"},
13 json={"inputs": audio_b64}
14)
15
16result = response.json()
17print(result)1[
2 {
3 "label": "happy",
4 "score": 0.8542,
5 "arousal": 0.7234,
6 "valence": 0.9123,
7 "all_scores": [
8 { "label": "happy", "score": 0.8542 },
9 { "label": "neutral", "score": 0.0892 },
10 { "label": "sad", "score": 0.0456 }
11 ]
12 }
13]1import requests
2import base64
3
4# Encode audio file
5with open("audio.wav", "rb") as f:
6 audio_bytes = f.read()
7 audio_b64 = base64.b64encode(audio_bytes).decode()
8
9# Make request to your Inference Endpoint
10response = requests.post(
11 "https://YOUR_ENDPOINT_URL.endpoints.huggingface.cloud",
12 headers={
13 "Authorization": "Bearer YOUR_HF_TOKEN",
14 "Content-Type": "application/json",
15 },
16 json={
17 "inputs": audio_b64,
18 "parameters": {
19 "return_all_scores": True,
20 "sampling_rate": 16000
21 }
22 }
23)
24
25result = response.json()
26print(result)1@misc{emotion-av-model,
2 title={Audio Emotion Classification with Arousal-Valence Prediction},
3 author={Your Name},
4 year={2024},
5 url={https://huggingface.co/pricklypearhealth/emotion-av-model}
6}