Experiment Log

April 3, 2026 · View on GitHub

35 experiments training SpeechAligner on SpeechOcean762, evaluated by Spearman ρ against human pronunciation scores.


Round 1: Baseline CTC GOP (1 run)

Goal: Test whether log-probability-based GOP scoring can rank pronunciation quality from a CTC-trained model.

Methodρ95% CI
GOP LogProb0.106[0.084, 0.126]
GOP MaxLogit0.093[0.071, 0.114]
GOP Margin0.092[0.069, 0.113]
GOP Self-Aligned0.082[0.061, 0.104]

Result: GOP scoring math alone cannot bridge the gap. The model needs supervised pronunciation labels.


Round 2: Hyperparameter Tuning (2 runs)

Goal: Find stable learning rate for dynamic batching.

ConfigLRLossρ
High LR0.001463.4 (stalled ep3)0.046
Resumed, lower LR0.0003113.90.106

Result: LR must scale down with batch size. Dynamic batching changes effective batch size per step — LR 0.001 diverges, 0.0003 converges.


Round 3: Scoring Head Fine-Tuning (1 run, 20 epochs)

Goal: Add a pronunciation scoring MLP (512→256→1) trained on 25,477 human-labeled words from SpeechOcean762.

EpochTotal LossCTCMSEHoldout ρ
119.3138.600.024
415.1930.360.0230.221
1010.1720.320.0220.220
185.2910.560.021

Result: ρ plateaus at ~0.22 from epoch 4. CTC loss keeps decreasing (the model improves at alignment) but MSE barely moves (scoring doesn't improve). Root cause: 90.8% of SpeechOcean762 samples score 10/10 — the model predicts ~1.0 for everything.


Round 4: Loss Ablation (13 runs)

Goal: Break through the 0.22 plateau by changing the loss function.

RunConfigρ
4aCTC=0.5, MSE=0.5 (baseline)0.221
4bCTC=0.3, MSE=0.70.237
4cCTC=0.1, MSE=0.90.261
4dCTC=0.0, MSE=1.00.287
4eCTC=0.0, MSE + warmup0.292
4fCTC=0.0, focal loss0.264
4gCTC=0.0, weighted MSE0.271
4hCTC=0.0, larger head (512)0.285
4i-4mVarious focal/weighting combos0.258-0.279

Key finding: CTC weight = 0 is the dominant improvement (+0.07 ρ over baseline). CTC gradient actively interferes with the scoring head. Warmup adds a small but consistent +0.005 ρ.

Ruled out: focal loss (hurts), weighted loss with CTC=0 (hurts), larger head (no effect).


Round 5: Schedule Search (5 runs)

Goal: Optimize training schedule around the CTC=0 recipe.

RunConfigρ
5aCTC=0, warmup=3, cosine decay0.292
5bCTC=0, frozen backbone (first 5 epochs)0.258
5cCTC=0, warmup=50.291
5dCTC=0, warmup=3, cosine, lower LR0.292
5eCTC=0, frozen backbone entire training0.241

Result: The 0.292 ceiling is reproducible across schedule variants. Freezing the backbone hurts significantly. Warmup + cosine is the stable recipe.


Round 6: Architecture Search (13 runs)

Goal: Break through 0.29 with structural changes to the model or objective.

RunApproachρ
6a-6bKnowledge distillation0.292
6cDistillation + rank regularization0.288
6dPooled-feature rank regularization0.288
6eTrue ordinal softmax CE0.283
6fWeighted ordinal softmax0.279
6g-6hAttention pooling (2 variants)0.283, 0.282
6i-6mCombined approaches0.275-0.288

Result: None exceeded the 0.292 baseline. The ≈0.29 ceiling is a representation quality bottleneck, not a loss or architecture problem. Richer input features are the path forward.


Summary

RoundBest ρExperimentsInsight
1. Baseline GOP0.1061Log-prob scoring alone can't rank pronunciation
2. Hyperparameters0.1062LR must scale with batch size
3. Scoring head0.2211Supervised scoring reaches 0.22, then plateaus
4. Loss ablation0.29213CTC=0 is the single biggest gain
5. Schedule search0.2925Ceiling is reproducible across schedules
6. Architecture0.28813Structural changes don't break through
Total0.29235Bottleneck is feature representation