Turn-Taking Detection Models β Collection complete
Modeles de detection de fin de tour (HOLD/SHIFT), architecture causale, entraines sur Smart Turn v3.2 (synthetique) et/ou un melange avec AppTek (audio reel de centre d'appel, 13 accents anglophones).
Comparaison avec Smart Turn v3.2 (modele officiel Pipecat)
Evaluation sur le test set officiel smart-turn-data-v3.2-test, avec correction du bug de sigmoide dans le modele ONNX officiel.
| Modele | Params | Accuracy | ROC-AUC |
|---|---|---|---|
| Smart Turn v3.2 (officiel, Whisper-tiny fine-tune) | ~8M | 73.33% | 0.7962 |
| Phase 1 (notre, from scratch, protocole propre) | 462K | 87.50% | 0.9459 |
Notre backbone acoustique seul, 17x plus petit et sans aucun pre-entrainement, surpasse Smart Turn v3.2 de 14.17 points d'accuracy sur son propre test set officiel.
Protocole d'evaluation (versions mixtes "v3")
- Train : Smart Turn v3.2 train + AppTek train (13 accents, equilibre HOLD/SHIFT)
- Validation : tranche mixte (1-2% Smart Turn + 10% AppTek), utilisee uniquement pour la selection du meilleur epoch
- Test : Smart Turn v3.2 test (officiel) + AppTek test (20% du pool, jamais vu a l'entrainement)
- OOD : accent en-CN d'AppTek, totalement exclu de l'entrainement/validation/test
Modeles disponibles
phase1-ecapa-tdnn-smartturn-only-v2-light.pt / -full.pt
Backbone acoustique causal (ECAPA-TDNN), 462K parametres, entraine uniquement sur Smart Turn v3.2, protocole train/val/test propre (validation prelevee du train, jamais confondue avec le test).
| Evaluation | Accuracy | Balanced Acc | ROC-AUC |
|---|---|---|---|
| Smart Turn v3.2 test (officiel) | 87.50% | 87.50% | 0.9459 |
phase1-ecapa-tdnn-mixed-v3-light.pt / -full.pt
Meme architecture, entraine sur le mix Smart Turn + AppTek.
| Evaluation | Accuracy | Balanced Acc | ROC-AUC |
|---|---|---|---|
| Test combine (ST+AppTek) | 84.89% | 84.89% | 0.9289 |
| β dont Smart Turn test seul | 87.42% | 87.42% | 0.9450 |
| β dont AppTek test seul (accents vus) | 68.54% | 68.59% | 0.7583 |
| OOD (en-CN, accent jamais vu) | 59.54% | 59.54% | 0.6587 |
whisper-frozen-classifier-mixed-v3-light.pt / -full.pt
Encodeur Whisper-tiny GELE (8M params) + tete de classification simple (49.5K params entraines).
| Evaluation | Accuracy | Balanced Acc | ROC-AUC |
|---|---|---|---|
| Test combine (ST+AppTek) | 84.20% | 84.21% | 0.9182 |
| β dont Smart Turn test seul | 86.14% | 86.15% | 0.9321 |
| β dont AppTek test seul (accents vus) | 71.64% | 71.74% | 0.8033 |
| OOD (en-CN, accent jamais vu) | 68.68% | 68.68% | 0.7568 |
phase2-whisper-crossattn-mixed-v3-light.pt / -full.pt
Fusion acoustique-semantique : Phase 1 (gele) + Whisper-tiny encoder (gele) + cross-attention causale + TCN.
| Evaluation | Accuracy | Balanced Acc | ROC-AUC |
|---|---|---|---|
| Test combine (ST+AppTek) | 90.48% | 90.48% | 0.9672 |
| β dont Smart Turn test seul | 92.51% | 92.51% | 0.9772 |
| β dont AppTek test seul (accents vus) | 77.35% | 77.41% | 0.8541 |
| OOD (en-CN, accent jamais vu) | 71.07% | 71.07% | 0.7909 |
Tableau comparatif complet (3 architectures x 3 niveaux de difficulte)
| Modele | Params entraines | Smart Turn test | AppTek test (vus) | OOD en-CN (inedit) |
|---|---|---|---|---|
| Phase 1 (acoustique seule) | 462K | 87.42% | 68.54% | 59.54% |
| Whisper-frozen (encodeur gele + tete) | 49.5K | 86.14% | 71.64% | 68.68% |
| Phase 2 (fusion Whisper+ECAPA) | ~360K (+8M geles) | 92.51% | 77.35% | 71.07% |
Resultats cles
- Notre Phase 1 (462K params, from scratch) surpasse Smart Turn v3.2 officiel (8M params) de 14.17 points d'accuracy sur son propre test set.
- Whisper-frozen, avec seulement 49.5K parametres entraines, surpasse Phase 1 sur la generalisation OOD (+9.14 points), confirmant que les representations semantiques pre-entrainees generalisent mieux au changement de domaine que l'information acoustique pure.
- La fusion complete (Phase 2) combine les deux sources d'information et obtient le meilleur resultat sur toutes les metriques, avec un gain croissant selon la difficulte du domaine (+5.09 points sur synthetique, +8.81 sur reel familier, +11.53 sur reel inedit).
Chargement
import torch
ckpt = torch.load("phase2-whisper-crossattn-mixed-v3-light.pt", map_location="cpu")
model.load_state_dict(ckpt['best_state'])
Limites connues
- Entrainement majoritairement synthetique (Smart Turn ~94% du volume train mixte)
- Ecart de performance significatif entre donnees synthetiques et reelles, attenue mais non resolu par la fusion semantique
- Couverture AppTek limitee a l'anglais (14 accents)