From continuous emotion scores to benchmark classes
An explicit audit of supervised score adapters, actor-held-out evaluation and published comparison values.
CREMA-D and RAVDESS: what the learned adapter actually does
A small classifier learns how the existing emotion predictions correspond to an acted-speech benchmark’s categories. Base S4 and Small S3 remain frozen. All reported adapted results below are predictions for actors excluded from that adapter’s training.
| Dataset | Frozen model | Clips | Actors | Original fixed rule: accuracy | Nested actor CV: accuracy | UAR / balanced accuracy | Macro F1 | Accuracy: actor-bootstrap 95% interval |
|---|---|---|---|---|---|---|---|---|
| CREMA-D | Base S4 | 7442 | 91 | 22.27% | 62.12% | 62.41% | 61.97% | 60.12%–64.11% |
| CREMA-D | Small S3 | 7442 | 91 | 23.78% | 63.37% | 63.68% | 63.29% | 61.43%–65.31% |
| RAVDESS | Base S4 | 1440 | 24 | 36.74% | 67.15% | 67.32% | 66.78% | 63.12%–71.25% |
| RAVDESS | Small S3 | 1440 | 24 | 36.88% | 69.58% | 69.99% | 69.61% | 65.97%–73.19% |
Accuracy is correct clips divided by all clips. UAR is mean recall across classes, also called balanced accuracy or UA in some papers. Macro F1 averages class-specific F1. Reported aggregate metrics pool each clip’s single out-of-fold prediction; they are not necessarily identical to an unweighted average of fold metrics. The intervals resample 2,000 actor clusters with their stored predictions; they do not include fresh model refits or variation across random split seeds.
Predictions are the adapter input
The selected inputs are the 40 emo_* scores distilled from Empathic Insight and 40 emotion entries from the voiceclap_attribute:* family. The latter are predictions made by the same released Whisper model; no external teacher is run at this calibration stage. These 80 values are concatenated. The 57 VoiceNet style scores, quality scores, timbre/identity embeddings, burst predictions and encoder hidden states are not adapter inputs. The encoder and all existing neural heads receive no gradient updates.
For each scalar, first apply the released training-reference transform z = (raw − training_mean) / training_std. Then fit an additional StandardScaler using only the current training fold: x = (z − fold_mean) / fold_std. A regularized multinomial logistic classifier learns logit[class] = Σ weight[class, j] × x[j] + bias[class]. The prediction is the class with the largest logit. Neutral gets its own learned weights and bias. Softmax can be displayed, but those probabilities were not independently calibrated.
This is a linear score-to-label readout with six outputs for CREMA-D (486 stored weight/bias values) or eight outputs for RAVDESS (648 stored weight/bias values). Fold means and scales add 160 statistics for an 80-feature adapter. Optimization uses an L2-regularized multiclass log-loss, lbfgs, up to 1,000 iterations, tolerance 10−4. It has no neural-training epoch schedule. The original multitask regression models were trained earlier with the objectives documented in their model card.
How the mapping and boundaries were selected
- Outer test: split actors into five folds with
StratifiedGroupKFold, seed20261005. All clips from an actor stay together. Each clip is tested exactly once. - Inner selection: within the outer training actors, run three more actor folds. Compare five feature views: semantic pools from either emotion family, all 40 scores from either family, and their 80-score concatenation. For each view, try
C ∈ {0.01, 0.1, 1, 10}; smaller C means stronger regularization. Choose by inner held-actor accuracy. Ties in C prefer stronger regularization. - Outer fit: refit the selected view and C on all outer training clips and score the excluded actors. Scaling is always fitted inside the corresponding training partition. Outer labels do not fit that fold’s weights or choose its C/view.
- Deployment refit: after collecting test predictions, use a separate three-fold actor CV on the full benchmark to choose a final configuration, then fit it on all clips. That downloadable refit has no independent test score of its own.
Both models selected the 80-score concatenation in every outer fold on both datasets. The boundary improvement is therefore learned from the joint pattern across scores, rather than a manually adjusted threshold chosen against the outer test labels.
Exactly how many samples were used?
There is no single official train/test partition in this experiment. The tables show the actual five test partitions for each corpus; Base and Small share the same splits. “Outer training clips” is the number fitting the adapter that predicts that row’s test actors.
CREMA-D
| Outer fold | Outer training clips | Training actors | Held-out test clips | Test actors | Inner folds: training clips / validation clips |
|---|---|---|---|---|---|
| 1 | 5891 | 72 | 1551 | 19 | 3930 / 1961; 3929 / 1962; 3923 / 1968 |
| 2 | 5973 | 73 | 1469 | 18 | 3930 / 2043; 4011 / 1962; 4005 / 1968 |
| 3 | 5972 | 73 | 1470 | 18 | 4005 / 1967; 3929 / 2043; 4010 / 1962 |
| 4 | 5966 | 73 | 1476 | 18 | 3999 / 1967; 4005 / 1961; 3928 / 2038 |
| 5 | 5966 | 73 | 1476 | 18 | 4005 / 1961; 3999 / 1967; 3928 / 2038 |
| Deployment adapter | Refit training clips | Refit actors | Selected features | Selected C | Evaluation status |
|---|---|---|---|---|---|
| Base | 7442 | 91 | both_emotion_80 | 1.0 | All-data deployment refit; no fresh test score |
| Small | 7442 | 91 | both_emotion_80 | 0.1 | All-data deployment refit; no fresh test score |
RAVDESS
| Outer fold | Outer training clips | Training actors | Held-out test clips | Test actors | Inner folds: training clips / validation clips |
|---|---|---|---|---|---|
| 1 | 1140 | 19 | 300 | 5 | 720 / 420; 780 / 360; 780 / 360 |
| 2 | 1140 | 19 | 300 | 5 | 720 / 420; 780 / 360; 780 / 360 |
| 3 | 1140 | 19 | 300 | 5 | 720 / 420; 780 / 360; 780 / 360 |
| 4 | 1140 | 19 | 300 | 5 | 720 / 420; 780 / 360; 780 / 360 |
| 5 | 1200 | 20 | 240 | 4 | 780 / 420; 780 / 420; 840 / 360 |
| Deployment adapter | Refit training clips | Refit actors | Selected features | Selected C | Evaluation status |
|---|---|---|---|---|---|
| Base | 1440 | 24 | both_emotion_80 | 0.1 | All-data deployment refit; no fresh test score |
| Small | 1440 | 24 | both_emotion_80 | 1.0 | All-data deployment refit; no fresh test score |
Is this a fair evaluation?
Yes, for supervised within-corpus adaptation to held-out actors. For the reported nested-CV figures, each test actor is absent from that adapter’s fitting and hyperparameter selection. We did not train the scored adapter on its own test clips. Training on other labeled actors from the same corpus is an explicit part of this protocol.
It is a post-hoc experiment. We inspected CREMA-D’s initial results and confusions before designing this adaptation. Nested folds protect the fitting and selection inside the stated candidate search, but cannot turn earlier benchmark inspection into a pristine blind final test. The results should be labeled exploratory supervised actor-CV adaptation. A stronger confirmatory result would freeze the entire procedure and use a new untouched corpus or a genuinely reserved actor set.
It is not the paper’s zero-shot protocol. The VoiceNet paper uses audio–text comparisons with no target-corpus label fitting. Our adapted rows use thousands of labeled CREMA-D or RAVDESS training clips. Their larger accuracies do not establish a zero-shot improvement over VoiceCLAP. The fixed-rule rows remain available as the benchmark-unfitted reference. These corpora and checkpoints are also different from the listening gallery’s final S10 models.
Scope of “unseen actor”. Actor separation is verified for this adapter. Overlap between upstream Whisper pretraining, annotation teachers, the original ladder training corpus and these public benchmark recordings has not been audited. The claim therefore does not guarantee that the complete model stack has never encountered an actor or recording. CREMA-D labels here are filename-based intended acted emotions, not crowd audio-majority perception labels. RAVDESS includes all eight emotions and only its 1,440 audio-only speech recordings from 24 actors; calm and neutral remain separate.
Published specialized classifiers: supervised comparison context
EmoBox (Interspeech 2024), Table 4 reports the following supervised readouts. CREMA-D and RAVDESS use four speaker folds. Its downstream network reads final-layer representations, with a hidden layer, ReLU and pooling; training lasts 100 epochs. These are useful reference values, with different folds, inputs and model sizes.
| EmoBox feature model | CREMA-D WA | CREMA-D UA | CREMA-D macro F1 | RAVDESS WA | RAVDESS UA | RAVDESS macro F1 |
|---|---|---|---|---|---|---|
| wav2vec 2.0 base | 61.90% | 61.95% | 61.75% | 55.40% | 54.33% | 53.99% |
| HuBERT base | 70.98% | 71.13% | 71.00% | 66.21% | 65.43% | 65.31% |
| WavLM large | 74.32% | 74.50% | 74.39% | 72.22% | 72.00% | 71.42% |
| Whisper large v3 | 76.48% | 76.75% | 76.60% | 75.87% | 75.32% | 75.19% |
WA corresponds to clip accuracy; UA corresponds to class-average recall. Our CREMA-D accuracies are near the wav2vec 2.0 base reference, below the stronger specialized readouts. On RAVDESS, the Small score adapter lies between the HuBERT base and WavLM large reference accuracies. This numerical positioning is not a matched-fold ranking.
Luna-Jiménez et al. (Sensors 2021), Table 1 report 76.58% audio-only accuracy for fine-tuned PANNs CNN-14 on eight-class RAVDESS, using five subject folds. Their audio-and-video fusion reaches 80.08%; that multimodal result has additional visual information. Their subject folds differ from ours, and their audio model is fine-tuned on RAVDESS.
Another high reported CREMA-D value with protocol caveats
SELM (2024), Table 2 reports 88.16% unweighted accuracy on CREMA-D and 75.70% on RAVDESS in its supervised in-domain setup. These are UAR values, not clip accuracy. The displayed setup gives five folds without actor membership; actor-disjointness is not verified here. Its RAVDESS set also contains about 2.5k speech/song files. These rows cannot serve as a direct comparison to our speech-only actor-held-out experiment.
Paper zero-shot values: retain their separate interpretation
The following accuracies are from VoiceNet Table 2. Their target-corpus labels do not train a readout. They are shown for context; the supervised rows above answer a different evaluation question.
| Published model | CREMA-D accuracy | RAVDESS accuracy | Protocol |
|---|---|---|---|
| LAION-CLAP | 36.60% | 17.30% | Paper zero-shot audio–text classification |
| MS-CLAP-2023 | 35.50% | 25.90% | Paper zero-shot audio–text classification |
| CLSP | 33.30% | 19.40% | Paper zero-shot audio–text classification |
| GLAP | 19.80% | 11.50% | Paper zero-shot audio–text classification |
| MGA-CLAP | 34.90% | 10.50% | Paper zero-shot audio–text classification |
| Cacophony | 34.20% | 18.10% | Paper zero-shot audio–text classification |
| M2D-CLAP-2025 | 33.60% | 18.40% | Paper zero-shot audio–text classification |
| LCO-Embedding-Omni-7B | 20.90% | 31.90% | Paper zero-shot audio–text classification |
| VoiceCLAP-Small | 32.30% | 21.00% | Paper zero-shot audio–text classification |
| VoiceCLAP-Large | 51.10% | 29.60% | Paper zero-shot audio–text classification |
CREMA-D: ablations, per-class results and learned associations
For each predefined view, regularization is selected using only inner folds. The last row additionally selects the view there.
| Adapter features | Base accuracy | Small accuracy | Base macro F1 | Small macro F1 |
|---|---|---|---|---|
| Pooled semantic groups from the first 40 emotion outputs | 32.87% | 34.74% | 31.93% | 32.85% |
| Pooled semantic groups from the alternative 40 emotion outputs | 40.53% | 40.11% | 39.57% | 39.30% |
| All 40 EmoNet / Empathic Insight emotion outputs | 53.51% | 54.53% | 53.02% | 53.95% |
| All 40 VoiceCLAP-derived emotion attribute outputs | 59.81% | 60.20% | 59.59% | 60.05% |
| Both emotion families: 80 scalar outputs | 62.12% | 63.37% | 61.97% | 63.29% |
| Feature view and regularization selected inside each outer fold | 62.12% | 63.37% | 61.97% | 63.29% |
Recall measures how many true clips in a class were recovered. Precision measures how often a prediction of that class was correct.
| True class | Support | Base fixed recall | Base adapted recall | Base adapted precision | Small fixed recall | Small adapted recall | Small adapted precision |
|---|---|---|---|---|---|---|---|
| anger | 1271 | 35.17% | 77.03% | 75.60% | 42.17% | 75.53% | 75.41% |
| disgust | 1271 | 4.09% | 48.54% | 56.19% | 6.69% | 52.79% | 59.38% |
| fear | 1271 | 2.05% | 48.70% | 56.79% | 2.60% | 50.28% | 59.50% |
| happy | 1271 | 9.13% | 64.44% | 64.34% | 5.51% | 63.34% | 64.97% |
| sad | 1271 | 4.72% | 61.61% | 55.85% | 7.00% | 64.04% | 56.80% |
| neutral | 1087 | 87.95% | 74.15% | 62.77% | 88.04% | 76.08% | 63.96% |
Base: outer test folds
| Fold | Selected inputs | Selected C | Test accuracy |
|---|---|---|---|
| 1 | both_emotion_80 | 1.0 | 61.70% |
| 2 | both_emotion_80 | 1.0 | 60.45% |
| 3 | both_emotion_80 | 1.0 | 60.54% |
| 4 | both_emotion_80 | 10.0 | 64.30% |
| 5 | both_emotion_80 | 1.0 | 63.62% |
Confusion matrix: true labels in rows, predicted labels in columns; clip counts.
| True / predicted | anger | disgust | fear | happy | sad | neutral |
|---|---|---|---|---|---|---|
| anger | 979 | 88 | 39 | 111 | 4 | 50 |
| disgust | 120 | 617 | 118 | 113 | 200 | 103 |
| fear | 64 | 96 | 619 | 133 | 280 | 79 |
| happy | 106 | 95 | 120 | 819 | 40 | 91 |
| sad | 10 | 149 | 145 | 29 | 783 | 155 |
| neutral | 16 | 53 | 49 | 68 | 95 | 806 |
These coefficients belong to the all-data deployment refit. They describe conditional linear associations among correlated score inputs, not causal emotion explanations. A positive weight increases a logit; the winning class depends on all weights and competing logits.
| Class | Bias | Three strongest positive weights | Three strongest negative weights |
|---|---|---|---|
| anger | -0.539 | voiceclap_attribute:Sourness (+2.219); voiceclap_attribute:Sexual_Lust (+1.558); voiceclap_attribute:Pride (+1.524) | voiceclap_attribute:Bitterness (-2.045); voiceclap_attribute:Contentment (-2.027); voiceclap_attribute:Anger (-1.665) |
| disgust | +1.032 | voiceclap_attribute:Sourness (+1.241); voiceclap_attribute:Fear (+1.065); voiceclap_attribute:Malevolence_Malice (+0.956) | voiceclap_attribute:Anger (-2.449); voiceclap_attribute:Longing (-1.187); voiceclap_attribute:Concentration (-1.036) |
| fear | +0.860 | voiceclap_attribute:Intoxication_Altered_States_of_Consciousness (+1.223); voiceclap_attribute:Hope_Enthusiasm_Optimism (+1.136); voiceclap_attribute:Doubt (+1.045) | voiceclap_attribute:Pride (-1.642); voiceclap_attribute:Sourness (-1.465); voiceclap_attribute:Contemplation (-1.240) |
| happy | +0.604 | voiceclap_attribute:Anger (+1.479); voiceclap_attribute:Infatuation (+1.365); voiceclap_attribute:Pleasure_Ecstasy (+0.967) | voiceclap_attribute:Hope_Enthusiasm_Optimism (-0.814); voiceclap_attribute:Contentment (-0.789); voiceclap_attribute:Sourness (-0.681) |
| sad | -0.043 | voiceclap_attribute:Bitterness (+1.347); voiceclap_attribute:Contentment (+1.315); voiceclap_attribute:Impatience_and_Irritability (+0.942) | voiceclap_attribute:Sourness (-1.470); voiceclap_attribute:Disappointment (-1.222); voiceclap_attribute:Pride (-1.090) |
| neutral | -1.914 | voiceclap_attribute:Anger (+2.154); voiceclap_attribute:Bitterness (+1.178); voiceclap_attribute:Emotional_Numbness (+0.995) | voiceclap_attribute:Hope_Enthusiasm_Optimism (-1.004); voiceclap_attribute:Fear (-0.950); voiceclap_attribute:Sadness (-0.910) |
Small: outer test folds
| Fold | Selected inputs | Selected C | Test accuracy |
|---|---|---|---|
| 1 | both_emotion_80 | 1.0 | 64.54% |
| 2 | both_emotion_80 | 1.0 | 61.67% |
| 3 | both_emotion_80 | 0.1 | 61.22% |
| 4 | both_emotion_80 | 0.1 | 65.24% |
| 5 | both_emotion_80 | 0.1 | 64.09% |
Confusion matrix: true labels in rows, predicted labels in columns; clip counts.
| True / predicted | anger | disgust | fear | happy | sad | neutral |
|---|---|---|---|---|---|---|
| anger | 960 | 83 | 32 | 125 | 12 | 59 |
| disgust | 103 | 671 | 104 | 102 | 190 | 101 |
| fear | 55 | 79 | 639 | 130 | 284 | 84 |
| happy | 120 | 94 | 122 | 805 | 42 | 88 |
| sad | 6 | 148 | 139 | 30 | 814 | 134 |
| neutral | 29 | 55 | 38 | 47 | 91 | 827 |
These coefficients belong to the all-data deployment refit. They describe conditional linear associations among correlated score inputs, not causal emotion explanations. A positive weight increases a logit; the winning class depends on all weights and competing logits.
| Class | Bias | Three strongest positive weights | Three strongest negative weights |
|---|---|---|---|
| anger | -0.307 | voiceclap_attribute:Sourness (+1.220); voiceclap_attribute:Triumph (+0.853); voiceclap_attribute:Doubt (+0.656) | voiceclap_attribute:Bitterness (-0.859); voiceclap_attribute:Contentment (-0.813); emo_Teasing (-0.746) |
| disgust | +0.951 | emo_Impatience_and_Irritability (+0.778); voiceclap_attribute:Sourness (+0.634); voiceclap_attribute:Affection (+0.627) | voiceclap_attribute:Thankfulness_Gratitude (-0.889); voiceclap_attribute:Anger (-0.592); voiceclap_attribute:Bitterness (-0.577) |
| fear | +0.807 | voiceclap_attribute:Thankfulness_Gratitude (+0.977); voiceclap_attribute:Anger (+0.808); voiceclap_attribute:Sadness (+0.585) | voiceclap_attribute:Contemplation (-1.129); voiceclap_attribute:Pleasure_Ecstasy (-1.050); voiceclap_attribute:Emotional_Numbness (-0.968) |
| happy | +0.566 | voiceclap_attribute:Infatuation (+0.668); voiceclap_attribute:Contempt (+0.626); voiceclap_attribute:Astonishment_Surprise (+0.552) | voiceclap_attribute:Sourness (-1.002); emo_Concentration (-0.587); emo_Longing (-0.552) |
| sad | -0.169 | voiceclap_attribute:Bitterness (+0.820); voiceclap_attribute:Intoxication_Altered_States_of_Consciousness (+0.562); voiceclap_attribute:Embarrassment (+0.426) | voiceclap_attribute:Pride (-0.857); voiceclap_attribute:Astonishment_Surprise (-0.773); voiceclap_attribute:Infatuation (-0.725) |
| neutral | -1.849 | voiceclap_attribute:Pleasure_Ecstasy (+0.940); voiceclap_attribute:Relief (+0.708); voiceclap_attribute:Pride (+0.706) | voiceclap_attribute:Astonishment_Surprise (-0.713); emo_Fatigue_Exhaustion (-0.707); voiceclap_attribute:Triumph (-0.659) |
RAVDESS: ablations, per-class results and learned associations
For each predefined view, regularization is selected using only inner folds. The last row additionally selects the view there.
| Adapter features | Base accuracy | Small accuracy | Base macro F1 | Small macro F1 |
|---|---|---|---|---|
| Pooled semantic groups from the first 40 emotion outputs | 52.01% | 55.14% | 50.71% | 54.36% |
| Pooled semantic groups from the alternative 40 emotion outputs | 52.01% | 50.69% | 50.88% | 49.82% |
| All 40 EmoNet / Empathic Insight emotion outputs | 65.00% | 68.33% | 64.35% | 68.23% |
| All 40 VoiceCLAP-derived emotion attribute outputs | 62.57% | 63.96% | 62.09% | 63.33% |
| Both emotion families: 80 scalar outputs | 67.15% | 69.58% | 66.78% | 69.61% |
| Feature view and regularization selected inside each outer fold | 67.15% | 69.58% | 66.78% | 69.61% |
Recall measures how many true clips in a class were recovered. Precision measures how often a prediction of that class was correct.
| True class | Support | Base fixed recall | Base adapted recall | Base adapted precision | Small fixed recall | Small adapted recall | Small adapted precision |
|---|---|---|---|---|---|---|---|
| angry | 192 | 53.65% | 82.29% | 77.83% | 63.54% | 79.69% | 84.53% |
| calm | 192 | 19.27% | 66.67% | 68.45% | 18.75% | 70.83% | 69.74% |
| disgust | 192 | 22.92% | 64.58% | 73.37% | 18.23% | 68.23% | 74.86% |
| fearful | 192 | 51.56% | 62.50% | 69.36% | 72.92% | 67.19% | 68.25% |
| happy | 192 | 0.00% | 59.90% | 65.71% | 1.04% | 60.94% | 68.42% |
| neutral | 96 | 88.54% | 69.79% | 53.17% | 54.17% | 76.04% | 61.34% |
| sad | 192 | 15.10% | 55.21% | 50.96% | 4.17% | 57.81% | 51.63% |
| surprised | 192 | 68.75% | 77.60% | 74.87% | 70.83% | 79.17% | 77.95% |
Base: outer test folds
| Fold | Selected inputs | Selected C | Test accuracy |
|---|---|---|---|
| 1 | both_emotion_80 | 0.1 | 70.67% |
| 2 | both_emotion_80 | 0.1 | 60.33% |
| 3 | both_emotion_80 | 0.1 | 69.33% |
| 4 | both_emotion_80 | 0.01 | 68.67% |
| 5 | both_emotion_80 | 0.1 | 66.67% |
Confusion matrix: true labels in rows, predicted labels in columns; clip counts.
| True / predicted | angry | calm | disgust | fearful | happy | neutral | sad | surprised |
|---|---|---|---|---|---|---|---|---|
| angry | 158 | 1 | 13 | 0 | 8 | 1 | 2 | 9 |
| calm | 1 | 128 | 8 | 0 | 1 | 27 | 27 | 0 |
| disgust | 20 | 7 | 124 | 9 | 6 | 1 | 19 | 6 |
| fearful | 9 | 3 | 5 | 120 | 12 | 1 | 32 | 10 |
| happy | 12 | 1 | 4 | 14 | 115 | 14 | 9 | 23 |
| neutral | 1 | 16 | 0 | 0 | 2 | 67 | 9 | 1 |
| sad | 1 | 29 | 9 | 19 | 13 | 14 | 106 | 1 |
| surprised | 1 | 2 | 6 | 11 | 18 | 1 | 4 | 149 |
These coefficients belong to the all-data deployment refit. They describe conditional linear associations among correlated score inputs, not causal emotion explanations. A positive weight increases a logit; the winning class depends on all weights and competing logits.
| Class | Bias | Three strongest positive weights | Three strongest negative weights |
|---|---|---|---|
| angry | +0.012 | emo_Disgust (+0.521); emo_Malevolence_Malice (+0.462); emo_Contempt (+0.450) | emo_Infatuation (-0.551); voiceclap_attribute:Concentration (-0.540); emo_Elation (-0.526) |
| calm | -1.201 | emo_Contemplation (+0.578); emo_Sexual_Lust (+0.480); voiceclap_attribute:Intoxication_Altered_States_of_Consciousness (+0.408) | voiceclap_attribute:Emotional_Numbness (-0.457); voiceclap_attribute:Doubt (-0.447); emo_Fear (-0.430) |
| disgust | +1.112 | voiceclap_attribute:Awe (+0.880); voiceclap_attribute:Disgust (+0.680); emo_Disgust (+0.564) | emo_Relief (-0.518); emo_Pride (-0.465); voiceclap_attribute:Anger (-0.363) |
| fearful | +1.150 | emo_Fear (+0.432); voiceclap_attribute:Embarrassment (+0.407); voiceclap_attribute:Jealousy_&_Envy (+0.362) | emo_Contemplation (-0.518); voiceclap_attribute:Pleasure_Ecstasy (-0.488); voiceclap_attribute:Awe (-0.471) |
| happy | +1.278 | emo_Teasing (+0.512); emo_Amusement (+0.491); emo_Relief (+0.426) | emo_Fatigue_Exhaustion (-0.681); voiceclap_attribute:Sexual_Lust (-0.577); emo_Sexual_Lust (-0.546) |
| neutral | -3.474 | emo_Concentration (+0.435); emo_Affection (+0.413); voiceclap_attribute:Longing (+0.301) | voiceclap_attribute:Awe (-0.594); voiceclap_attribute:Disgust (-0.513); voiceclap_attribute:Confusion (-0.509) |
| sad | +0.870 | voiceclap_attribute:Shame (+0.800); emo_Embarrassment (+0.555); voiceclap_attribute:Amusement (+0.383) | voiceclap_attribute:Relief (-0.438); voiceclap_attribute:Pride (-0.359); emo_Malevolence_Malice (-0.344) |
| surprised | +0.252 | emo_Astonishment_Surprise (+0.736); voiceclap_attribute:Doubt (+0.630); voiceclap_attribute:Confusion (+0.562) | voiceclap_attribute:Embarrassment (-0.609); voiceclap_attribute:Intoxication_Altered_States_of_Consciousness (-0.418); voiceclap_attribute:Shame (-0.376) |
Small: outer test folds
| Fold | Selected inputs | Selected C | Test accuracy |
|---|---|---|---|
| 1 | both_emotion_80 | 1.0 | 71.67% |
| 2 | both_emotion_80 | 0.1 | 66.67% |
| 3 | both_emotion_80 | 0.1 | 72.00% |
| 4 | both_emotion_80 | 0.1 | 71.33% |
| 5 | both_emotion_80 | 0.1 | 65.42% |
Confusion matrix: true labels in rows, predicted labels in columns; clip counts.
| True / predicted | angry | calm | disgust | fearful | happy | neutral | sad | surprised |
|---|---|---|---|---|---|---|---|---|
| angry | 153 | 1 | 11 | 6 | 9 | 0 | 4 | 8 |
| calm | 0 | 136 | 14 | 0 | 2 | 18 | 22 | 0 |
| disgust | 12 | 6 | 131 | 8 | 6 | 4 | 19 | 6 |
| fearful | 2 | 2 | 4 | 129 | 16 | 1 | 30 | 8 |
| happy | 12 | 3 | 5 | 14 | 117 | 8 | 12 | 21 |
| neutral | 0 | 12 | 0 | 0 | 0 | 73 | 11 | 0 |
| sad | 2 | 33 | 5 | 21 | 5 | 15 | 111 | 0 |
| surprised | 0 | 2 | 5 | 11 | 16 | 0 | 6 | 152 |
These coefficients belong to the all-data deployment refit. They describe conditional linear associations among correlated score inputs, not causal emotion explanations. A positive weight increases a logit; the winning class depends on all weights and competing logits.
| Class | Bias | Three strongest positive weights | Three strongest negative weights |
|---|---|---|---|
| angry | +1.101 | voiceclap_attribute:Emotional_Numbness (+1.493); voiceclap_attribute:Disgust (+1.367); voiceclap_attribute:Impatience_and_Irritability (+1.350) | emo_Amusement (-1.339); voiceclap_attribute:Confusion (-1.334); voiceclap_attribute:Concentration (-1.259) |
| calm | -2.694 | emo_Jealousy_and_Envy (+1.584); voiceclap_attribute:Confusion (+1.233); voiceclap_attribute:Embarrassment (+1.217) | voiceclap_attribute:Emotional_Numbness (-1.565); voiceclap_attribute:Hope_Enthusiasm_Optimism (-1.337); voiceclap_attribute:Doubt (-1.246) |
| disgust | +2.216 | voiceclap_attribute:Disgust (+1.730); emo_Embarrassment (+1.192); emo_Disgust (+1.138) | voiceclap_attribute:Impatience_and_Irritability (-1.555); voiceclap_attribute:Thankfulness_Gratitude (-1.391); emo_Affection (-1.354) |
| fearful | +2.491 | voiceclap_attribute:Thankfulness_Gratitude (+1.637); emo_Fear (+1.125); emo_Fatigue_Exhaustion (+0.920) | emo_Teasing (-1.179); voiceclap_attribute:Pleasure_Ecstasy (-1.173); voiceclap_attribute:Contemplation (-1.142) |
| happy | +2.326 | voiceclap_attribute:Triumph (+1.218); emo_Amusement (+1.183); emo_Relief (+1.076) | voiceclap_attribute:Sexual_Lust (-1.364); voiceclap_attribute:Contentment (-1.320); voiceclap_attribute:Disgust (-1.177) |
| neutral | -7.351 | emo_Concentration (+1.686); emo_Shame (+1.371); voiceclap_attribute:Emotional_Numbness (+0.948) | emo_Confusion (-1.507); voiceclap_attribute:Embarrassment (-1.225); voiceclap_attribute:Disgust (-1.173) |
| sad | +1.767 | voiceclap_attribute:Shame (+1.897); emo_Sadness (+1.388); voiceclap_attribute:Amusement (+1.070) | voiceclap_attribute:Pride (-1.323); emo_Awe (-1.243); voiceclap_attribute:Awe (-1.127) |
| surprised | +0.144 | emo_Pride (+1.458); emo_Astonishment_Surprise (+1.393); voiceclap_attribute:Astonishment_Surprise (+1.332) | voiceclap_attribute:Interest (-1.401); voiceclap_attribute:Teasing (-1.096); emo_Longing (-0.961) |
Downloads and reproduction
Both experiments reused cached scalar predictions. CREMA-D took 37.6 seconds; RAVDESS took 16.7 seconds, each with one CPU thread. No additional GPU hours were consumed by adapter training. Raw score arrays, row labels and actor IDs, source hashes, all inner trials, outer decisions, safe JSON adapters, training normalization and the exact fitting/inference code are published together.
| Dataset | Audit | Deployment refits | Evaluation predictions |
|---|---|---|---|
| CREMA-D | Results, splits and selections | Base JSON adapter · Small JSON adapter | Base held-out decisions · Small held-out decisions |
| RAVDESS | Results, splits and selections | Base JSON adapter · Small JSON adapter | Base held-out decisions · Small held-out decisions |
Reproduction instructions and dependencies · Original CREMA-D fitting / JSON inference · RAVDESS fitting / JSON inference · Model card, weights, original training and inference code · CREMA-D source and label definitions
Applying the CREMA-D all-data adapter to RAVDESS was not evaluated: the class inventories differ. Each corpus has its own separately fitted adapter. No adaptation to EmoNet-Voice, VoiceNet-Emo, VoiceNet-Ext or vocal-burst targets was performed in this experiment.