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

3.4 KiB

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

{
  "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