secondvoice/PLAN_DEBUG.md
StillHammer 9163e082da docs: Add Whisper prompt improvement strategy
- Document current prompt limitations
- Propose improved prompt with anti-hallucination instructions
- Suggest dynamic context and domain vocabulary enhancements

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 20:09:04 +08:00

110 lines
3.4 KiB
Markdown

# Plan de Debug SecondVoice
## Objectif
**Faire fonctionner SecondVoice en conditions dégradées :**
- Voix multiples simultanées
- Distances variables du micro
- Volumes variables
- Discussions rapides
- Micro de mauvaise qualité
C'est le cas d'usage réel (réunions, meetings). Le système doit être robuste, pas juste fonctionner en labo.
## Problème observé
Transcript du 2025-11-23 (5:31 min, 75 segments) montre :
- Phrases fragmentées ("我很。" → "Je suis.")
- Erreurs de transcription ("两个老鼠求我" - deux souris me supplient)
- Segments d'un ou deux mots sans contexte
- Hallucinations Whisper ("汪汪汪汪")
## Contexte du test
**Conditions très dégradées :**
- Voix multiples
- Distances variables du micro
- Volumes variables
- Discussion rapide
- Mauvais micro
Ces conditions expliquent potentiellement une partie des résultats. Les hypothèses doivent être validées dans des conditions plus contrôlées également.
## Hypothèses (à valider)
1. **VAD coupe trop tôt** - Le Voice Activity Detection déclenche la fin de segment trop rapidement, coupant les phrases en plein milieu
2. **Segments trop courts** - Whisper n'a pas assez de contexte audio pour transcrire correctement le chinois
3. **Bruit ambiant** - Du bruit est interprété comme de la parole (segment 22 mentionne "太多声音了")
4. **Perte de contexte inter-segments** - Chaque segment est traité isolément, Whisper ne peut pas utiliser le contexte des phrases précédentes
## Plan : Système de logging par session
### Objectif
Collecter des données exploitables pour identifier la source des problèmes.
### Structure
```
sessions/
└── YYYY-MM-DD_HHMMSS/
├── session.json # Métadonnées globales
├── segments/
│ ├── 001.json
│ ├── 002.json
│ └── ...
└── transcript.txt # Export final (existant)
```
### Format segment JSON
```json
{
"id": 1,
"chinese": "两个老鼠求我",
"french": "Deux souris me supplient"
}
```
### À définir
- [ ] Quelles métadonnées audio ajouter ? (durée, RMS, timestamps)
- [ ] Sauvegarder les fichiers audio .opus par segment ?
- [ ] Infos Whisper ? (latence, modèle, filtered)
- [ ] Infos Claude ? (latence, modèle)
## Piste : Améliorer le prompt Whisper
### Prompt actuel (insuffisant)
```
The following is a conversation in Mandarin Chinese about business, family, and daily life. Common names: Tingting, Alexis.
```
### Problèmes
- Trop vague, n'aide pas Whisper
- Ne bloque pas les hallucinations connues
- Pas d'instruction sur quoi faire avec le bruit/silence
### Prompt proposé
```
Transcription d'une réunion en chinois mandarin. Plusieurs interlocuteurs.
Ne transcris PAS : musique, silence, bruits de fond, applaudissements.
Ne génère JAMAIS de phrases comme "谢谢观看", "感谢收看", "订阅", "Thank you for watching", "Subscribe".
Si l'audio est inaudible, renvoie une chaîne vide.
Noms possibles: Tingting, Alexis.
```
### Améliorations possibles
1. **Contexte dynamique** - Passer les 2-3 dernières transcriptions dans le prompt
2. **Vocabulaire métier** - Ajouter les termes récurrents spécifiques
3. **Anti-hallucination explicite** - Lister les phrases à ne jamais générer
## Prochaines étapes
1. Implémenter le système de logging basique (JSON chinois/français)
2. Tester le nouveau prompt Whisper
3. Analyser les patterns dans les données
4. Enrichir avec plus de métadonnées si nécessaire