Le défi
Quand on veut retrouver un moment précis dans une vidéo YouTube de 30 minutes, les solutions existantes sont frustrantes : - La barre de recherche YouTube ne cherche que dans le titre et la description - Les timestamps manuels sont chronophages à créer - La détection automatique de scènes génère trop de faux positifs
La solution : Late Fusion multimodal
J'ai opté pour une approche **Late Fusion** qui combine deux modalités :
1. Analyse Audio avec Whisper - Transcription automatique avec timestamps - Extraction des mots-clés et concepts - Embedding des segments audio
2. Analyse Visuelle avec SigLIP - Extraction de frames représentatives (pas toutes !) - Embedding visuel avec SigLIP - Désambiguïsation du contenu
3. Recherche Vectorielle avec ChromaDB - Indexation des embeddings multimodaux - Recherche par similarité cosine - Reranking des résultats
Optimisations clés
Échantillonnage sémantique Au lieu d'utiliser PySceneDetect (qui découpe aux changements de plan), j'ai implémenté un échantillonnage basé sur la similarité des embeddings. Résultat : 80% moins de faux positifs.
Batching et FP16 - Batching des inférences Whisper pour maximiser le GPU - Passage en FP16 pour réduire la mémoire et accélérer - **Gain : 5x plus rapide**
Pipeline asynchrone - Extraction YouTube en parallèle - Traitement par segments - Progress bar temps réel
Résultats
Le système peut retrouver "le moment où le chef met le poulet au four" en moins d'une seconde sur une vidéo de 20 minutes. La précision dépasse 90% sur un benchmark de 100 requêtes variées.
Prochaines étapes
- Intégration dans un SaaS avec authentification
- Support des vidéos en direct (streaming)
- Fine-tuning des embeddings sur domaine culinaire
---
*Ce projet m'a particulièrement passionné car il combine recherche (multimodalité) et produit (vraie utilité). C'est exactement le type de défis que je cherche.*