From c2b44c7e5c0e2372de0a0ed600ea3f04c67eb720 Mon Sep 17 00:00:00 2001 From: StillHammer Date: Mon, 17 Nov 2025 11:42:45 +0800 Subject: [PATCH] Add SecondVoice project - Meeting translation system with auto-summary MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New project: Real-time Chinese meeting translation tool - Whisper API (STT) + Claude Haiku (translation) - Recording + backlog system with auto-summary on meeting end - Search system for conversation archive (Phase 2) - Built in C++ for ecosystem reuse - Priority: URGENT - Solves meeting comprehension conflicts Success criteria: Works in 1 meeting without major issues Cost: ~$0.40/hour (Whisper + Claude APIs) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- Projects/SecondVoice.md | 406 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 406 insertions(+) create mode 100644 Projects/SecondVoice.md diff --git a/Projects/SecondVoice.md b/Projects/SecondVoice.md new file mode 100644 index 0000000..6dd1a50 --- /dev/null +++ b/Projects/SecondVoice.md @@ -0,0 +1,406 @@ +# SecondVoice - Meeting Translation System + +**Statut** : 🔥 URGENT - En conception +**Créé** : 17 novembre 2025 +**Type** : Projet support multivecteur + +--- + +## Problème Résolu + +**Contexte** : +- Meetings avec Tingting (contexte professionnel ou relationnel) +- Alexis ne comprend pas assez le chinois +- **Conséquence** : Inconfort personnel → Conflits avec Tingting +- **Impact** : Ne peut pas supporter efficacement Tingting dans ces situations + +**Besoin critique** : +- Comprendre conversations en chinois en temps réel +- Pouvoir intervenir intelligemment si nécessaire +- Éviter conflits causés par incompréhension/sentiment d'inutilité + +--- + +## Solution Technique + +### Architecture + +``` +Audio Input (Meeting) + ↓ +Whisper API (STT - Speech-to-Text) + ↓ +Claude Haiku (Traduction contextuelle CN → FR/EN) + ↓ +Display real-time (Terminal/GUI) +``` + +### Stack + +**STT** : OpenAI Whisper API +- Excellent sur chinois mandarin +- $0.006/minute (~$0.36/heure) +- Real-time streaming + +**Traduction** : Claude Haiku API +- Meilleure compréhension contexte culturel chinois +- Nuances conversationnelles préservées +- ~$0.03-0.05/heure +- **Total cost** : ~$0.40/heure meeting + +**Langage** : C++ +- Raison : Réutilisation code pour assistant personnel futur +- Test écosystème C++ avec projet réel +- Production-ready dès le départ + +**Platform** : Windows + Linux (cross-platform) + +--- + +## Success Criteria + +✅ **MVP validé si** : Fonctionne dans 1 meeting sans problème majeur + +**Critères de succès** : +1. Transcription chinois précise (>85% accuracy) +2. Traduction FR/EN compréhensible en contexte +3. Latence acceptable (<5s) +4. Pas de crash pendant meeting +5. Alexis comprend assez pour éviter conflits post-meeting + +--- + +## Scope MVP + +### Phase 1 - POC Fonctionnel (Urgent) + +**Features** : +- ✅ Audio capture (microphone input) +- ✅ **Recording complet** (WAV/MP3 sauvegardé avec timestamp) +- ✅ Whisper API call (STT) +- ✅ Claude Haiku API call (traduction live) +- ✅ Display output real-time (console ou simple GUI) +- ✅ **Bouton "Fin de conversation"** → Trigger auto-processing +- ✅ **Auto-summary post-meeting** (Claude API analyse transcript complet) + - Résumé conversation + - Action items extraits + - Points clés / décisions + - Saved as `summary_YYYY-MM-DD.md` +- ✅ **Export backlog structuré** : + - Audio original (WAV/MP3) + - Transcript chinois (TXT) + - Traduction française (TXT) + - Summary auto-généré (MD) + - Metadata (JSON: timestamp, durée, participants) +- ✅ Gestion erreurs basique (reconnexion API) + +**Non-inclus dans MVP** : +- ❌ Diarization (qui parle quand) - Phase 2 +- ❌ Interface graphique élaborée - Phase 2 +- ❌ Replay avec seek/pause - Phase 2 +- ❌ Multi-speakers advanced - Phase 2 +- ❌ Système de recherche - Phase 2 + +### Phase 2 - Enhancement (Après validation MVP) + +**Features avancées** : +- **Système de recherche** (full-text search dans backlog) + - Recherche par mot-clé (CN ou FR) + - Recherche par date/participant + - Recherche sémantique (Claude embeddings) + - "Quand on a parlé de X la dernière fois ?" +- Speaker diarization (identifier qui parle) +- Interface graphique complète (Qt ou ImGui) +- Replay mode (seek/pause dans transcript synchro audio) +- Multi-language support étendu (JP/EN/CN/autre) +- Optimization performance (latency, accuracy) + +--- + +## Roadmap + +### Semaine 1 (Urgent) +1. **Setup projet C++** (CMake, dependencies) +2. **HTTP client** (cpp-httplib + nlohmann/json) +3. **Audio capture + recording** (PortAudio + WAV/MP3 writer) +4. **Whisper client** (API integration + transcript save) +5. **Claude client live** (API integration traduction real-time) +6. **Pipeline integration** (bout-à-bout) + +### Semaine 2 +7. **Bouton "Fin de conversation"** (trigger post-processing) +8. **Claude summary auto** (analyse transcript → markdown summary) +9. **Export backlog structuré** (audio + transcripts + summary + metadata) +10. **Test avec audio réel** (sample meetings chinois) +11. **Debug + stabilisation** +12. **Test en condition réelle** (prochain meeting avec Tingting) + +### Post-MVP (Phase 2) +13. **Système de recherche** (SQLite FTS5 ou vector search) +14. **Diarization** (pyannote.audio ou AssemblyAI) +15. **GUI complète** (ImGui ou Qt) +16. **Replay mode** (audio + transcript synchronisé) +17. **Optimizations** (latency, accuracy, cost) + +--- + +## Dépendances Techniques + +### C++ Libraries + +**Required** : +- `cpp-httplib` (HTTP client, header-only) +- `nlohmann/json` (JSON parsing, header-only) +- `PortAudio` (audio capture, cross-platform) + +**Optional** : +- `spdlog` (logging) +- `CLI11` (command-line args) +- `ImGui` (GUI si Phase 2) + +**Package manager** : vcpkg ou conan + +--- + +## Risques & Mitigations + +| Risque | Impact | Mitigation | +|--------|--------|------------| +| **Whisper accuracy insuffisante** | Bloquant | Tester avec samples chinois d'abord, fallback Azure Speech si besoin | +| **Latence trop élevée** | Moyen | Optimiser chunks audio, considérer streaming | +| **API costs explosent** | Faible | $0.40/h acceptable, mais monitor usage | +| **C++ complexity ralentit MVP** | Moyen | Accepter code moins optimal pour MVP, refactor après | +| **Pas de meeting avant longtemps** | Moyen | Créer test scenarios avec audio samples | + +--- + +## Lien Projets + +### Support Multivecteur + +**SecondVoice aide** : +1. **Relation Tingting** : Supporter dans contexte professionnel (meetings parents/admin) +2. **Business project** : Comprendre meetings business chinois +3. **AISSIA** : Réutilisation code C++ pour assistant personnel +4. **Apprentissage chinois** : Exposure réel au chinois contextualisé + +**Pas un side quest** - Résout problème actif causant conflits + +--- + +## Alternatives Testées (Rejetées) + +**Pourquoi pas services existants ?** + +| Service | Problème identifié | +|---------|-------------------| +| Google Translate Live | Qualité traduction insuffisante (contexte perdu) | +| Microsoft Translator | Latence élevée, accuracy chinois moyenne | +| Azure Speech | (Non spécifié - à retester ?) | +| Mobile apps | Interface inadaptée, pas assez discret | + +**Conclusion** : Build custom nécessaire pour quality + control + +--- + +## Questions Ouvertes + +### Techniques +1. ⚠️ Diarization vraiment nécessaire pour MVP ? (Non - décidé) +2. ⚠️ Output format : Terminal ou GUI minimal ? +3. ⚠️ Langue output : FR ou EN ? (À confirmer avec Alexis) + +### Produit +1. ⚠️ Usage uniquement avec Tingting ou générique tous meetings ? +2. ⚠️ Recording audio acceptable ou privacy concern ? +3. ⚠️ Intervention Alexis attendue (donc besoin speak aussi) ou juste écoute passive ? + +### Relationnel +1. ✅ Tingting au courant ? (Pas confirmé dans discussion) + - **ACTION REQUISE** : En parler avec elle avant d'utiliser en meeting réel + - Elle doit savoir pourquoi et comment ça aide votre équipe + +--- + +## Coûts + +### Développement +- **Time investment** : 1-2 semaines (MVP) +- **Learning curve C++** : Alexis déjà compétent, écosystème existant + +### Opérationnel +- **Par meeting (1h)** : ~$0.40 +- **Par mois (10 meetings)** : ~$4 +- **Annuel** : ~$50 + +**Acceptable** : Oui, résout problème réel pour coût négligeable + +--- + +## Next Steps + +**Immédiat** (Alexis gère la tech) : +1. Setup projet C++ (CMake + dependencies) +2. Prototype Whisper API call +3. Prototype Claude API call +4. Audio capture test +5. Integration pipeline + +**Avant premier usage réel** : +1. **Parler avec Tingting** : + - Expliquer objectif (mieux la supporter) + - Demander son avis (utile pour elle ?) + - Clarifier son rôle attendu dans meetings +2. Test avec sample audio chinois +3. Validation latency/quality acceptable + +--- + +## Recording & Backlog + +### Pourquoi c'est critique + +**Backlog conversationnel = asset majeur** : + +1. **Post-meeting analysis** + - Relire conversation si détail oublié + - Vérifier exactement ce qui a été dit (vs ce qu'on pense avoir entendu) + - Comprendre nuances ratées en temps réel + +2. **Résolution conflits** + - "Tu as dit X" → Backlog prouve réalité + - Évite gaslighting involontaire (mémoire sélective) + - Base factuelle pour discussions post-meeting + +3. **Learning machine** + - Corpus chinois réel contextualisé + - Phrases/expressions récurrentes identifiables + - Training data pour améliorer modèles custom + +4. **Legal/Business protection** + - Si meetings business : preuve accords oraux + - Timestamped, auditable + - CYA (Cover Your Ass) + +5. **Pattern detection** + - Analyser conversations longue durée + - Identifier thèmes récurrents + - Insights impossibles à voir en temps réel + +### Format Backlog Proposé + +``` +meetings/ +├── 2025-11-20_14h30_ParentsMeeting/ +│ ├── audio_original.wav # Audio brut complet +│ ├── transcript_cn.txt # STT chinois +│ ├── translation_fr.txt # Traduction française +│ ├── metadata.json # Timestamp, participants, durée +│ └── summary_claude.md # Résumé généré post-meeting +└── 2025-11-22_10h00_BusinessCall/ + └── ... +``` + +### Privacy & Consent + +**IMPORTANT** : +- ⚠️ **Tingting DOIT savoir** que meetings sont enregistrés +- ⚠️ **Autres participants** aussi (légalement requis dans certains contextes) +- ⚠️ **Storage sécurisé** : Encryption at rest (AES-256) +- ⚠️ **Retention policy** : Combien de temps garder ? (GDPR-like) + +**Consent workflow** : +1. Avant meeting : "Je vais enregistrer pour mieux comprendre, OK ?" +2. Si oui → Record + notify +3. Si non → Live translation only, pas de recording + +### Workflow Complet + +**Pendant meeting** : +1. Start recording → Audio + STT real-time +2. Whisper transcrit chinois → Display +3. Claude traduit FR → Display +4. Tout sauvegardé en background (audio + transcript running) + +**Fin de meeting** : +1. **Clic "Fin de conversation"** +2. **Auto-processing déclenché** : + - Finalise audio file (WAV/MP3) + - Finalise transcripts (CN + FR) + - **Claude analyse transcript complet** : + ``` + Résumé conversation + Action items + Décisions + Points clés + ``` + - Génère `summary_YYYY-MM-DD_HHhMM.md` + - Save metadata.json (timestamp, durée, participants) +3. **Export structuré** : + ``` + meetings/2025-11-20_14h30_ParentsMeeting/ + ├── audio_original.wav + ├── transcript_cn.txt + ├── translation_fr.txt + ├── summary.md ← Auto-généré + └── metadata.json + ``` +4. **Notification** : "Meeting sauvegardé + résumé prêt" + +### Post-Processing Potential (Phase 2+) + +**Une fois backlog existe** : + +1. **Système de recherche** (Phase 2) + - **Full-text search** : SQLite FTS5 sur transcripts + - "Cherche 'contract' dans tous les meetings" + - Résultats : Liste meetings + snippets + timestamp + - **Recherche sémantique** : Claude embeddings + - "Trouve conversations sur argent/salaire/budget" + - Même si mots exacts pas utilisés + - **Filtres** : + - Par date range + - Par participant + - Par durée + - Par langue (CN/FR) + - **Interface** : + - CLI : `./secondvoice search "keyword"` + - GUI : Search bar + results list + +2. **Analytics** (Phase 2+) + - Temps de parole par personne + - Sentiment analysis + - Topics récurrents + - Trend analysis long terme + +3. **Training custom models** (Phase 3+) + - Fine-tune Whisper sur vos voix + - Fine-tune traduction sur votre vocabulaire + - Amélioration accuracy continue + +--- + +## Impact Attendu + +### Pour Alexis +- ✅ Compréhension meetings en temps réel +- ✅ Réduction stress/inconfort +- ✅ Capacité intervention intelligente si nécessaire +- ✅ **Backlog pour review post-meeting** (nouveau) +- ✅ **Preuve factuelle conversations** (nouveau) + +### Pour Tingting +- ✅ Support effectif d'Alexis (pas juste présence passive) +- ✅ Réduction conflits post-meeting (dus à incompréhension) +- ✅ Sentiment d'équipe renforcé +- ✅ **Archive conversations importantes** (nouveau) + +### Pour la Relation +- ✅ Preuve initiative concrète (ACTION-004 : réfléchir à votre avenir) +- ✅ Résolution proactive problème identifié +- ✅ Investment dans collaboration couple +- ✅ **Base factuelle pour résoudre désaccords mémoire** (nouveau) + +--- + +*Créé : 17 novembre 2025* +*Priorité : URGENT* +*Stack : C++17, Whisper API, Claude Haiku, PortAudio, cpp-httplib* +*Success : 1 meeting sans problème majeur*