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 <noreply@anthropic.com>
12 KiB
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 :
- Transcription chinois précise (>85% accuracy)
- Traduction FR/EN compréhensible en contexte
- Latence acceptable (<5s)
- Pas de crash pendant meeting
- 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)
- Setup projet C++ (CMake, dependencies)
- HTTP client (cpp-httplib + nlohmann/json)
- Audio capture + recording (PortAudio + WAV/MP3 writer)
- Whisper client (API integration + transcript save)
- Claude client live (API integration traduction real-time)
- Pipeline integration (bout-à-bout)
Semaine 2
- Bouton "Fin de conversation" (trigger post-processing)
- Claude summary auto (analyse transcript → markdown summary)
- Export backlog structuré (audio + transcripts + summary + metadata)
- Test avec audio réel (sample meetings chinois)
- Debug + stabilisation
- Test en condition réelle (prochain meeting avec Tingting)
Post-MVP (Phase 2)
- Système de recherche (SQLite FTS5 ou vector search)
- Diarization (pyannote.audio ou AssemblyAI)
- GUI complète (ImGui ou Qt)
- Replay mode (audio + transcript synchronisé)
- 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 :
- Relation Tingting : Supporter dans contexte professionnel (meetings parents/admin)
- Business project : Comprendre meetings business chinois
- AISSIA : Réutilisation code C++ pour assistant personnel
- 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
- ⚠️ Diarization vraiment nécessaire pour MVP ? (Non - décidé)
- ⚠️ Output format : Terminal ou GUI minimal ?
- ⚠️ Langue output : FR ou EN ? (À confirmer avec Alexis)
Produit
- ⚠️ Usage uniquement avec Tingting ou générique tous meetings ?
- ⚠️ Recording audio acceptable ou privacy concern ?
- ⚠️ Intervention Alexis attendue (donc besoin speak aussi) ou juste écoute passive ?
Relationnel
- ✅ 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) :
- Setup projet C++ (CMake + dependencies)
- Prototype Whisper API call
- Prototype Claude API call
- Audio capture test
- Integration pipeline
Avant premier usage réel :
- Parler avec Tingting :
- Expliquer objectif (mieux la supporter)
- Demander son avis (utile pour elle ?)
- Clarifier son rôle attendu dans meetings
- Test avec sample audio chinois
- Validation latency/quality acceptable
Recording & Backlog
Pourquoi c'est critique
Backlog conversationnel = asset majeur :
-
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
-
Résolution conflits
- "Tu as dit X" → Backlog prouve réalité
- Évite gaslighting involontaire (mémoire sélective)
- Base factuelle pour discussions post-meeting
-
Learning machine
- Corpus chinois réel contextualisé
- Phrases/expressions récurrentes identifiables
- Training data pour améliorer modèles custom
-
Legal/Business protection
- Si meetings business : preuve accords oraux
- Timestamped, auditable
- CYA (Cover Your Ass)
-
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 :
- Avant meeting : "Je vais enregistrer pour mieux comprendre, OK ?"
- Si oui → Record + notify
- Si non → Live translation only, pas de recording
Workflow Complet
Pendant meeting :
- Start recording → Audio + STT real-time
- Whisper transcrit chinois → Display
- Claude traduit FR → Display
- Tout sauvegardé en background (audio + transcript running)
Fin de meeting :
- Clic "Fin de conversation"
- 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)
- 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 - Notification : "Meeting sauvegardé + résumé prêt"
Post-Processing Potential (Phase 2+)
Une fois backlog existe :
-
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
- CLI :
- Full-text search : SQLite FTS5 sur transcripts
-
Analytics (Phase 2+)
- Temps de parole par personne
- Sentiment analysis
- Topics récurrents
- Trend analysis long terme
-
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