-
zakariaeyahya a rédigé26e06e7d
- 🎵🖼️ BrainBoost - Service de Traitement Multimédia
- 📋 Table des matières
- 🎯 Vue d'ensemble
- 🎵 Formats audio supportés
- 🖼️ Formats images supportés
- 🎛️ Traitements disponibles
- ✨ Fonctionnalités
- 📁 Gestion de fichiers audio
- 🖼️ Gestion de documents images
- 🔤 Reconnaissance OCR
- 🎤 Speech-to-Text
- 🔊 Text-to-Speech
- 🔄 Traitement audio avancé
- 🔍 Recherche et filtrage
- 🌐 API REST complète
- 🚀 Installation
- Prérequis
- 1. Cloner le repository
- 2. Créer l'environnement virtuel
- 3. Installer les dépendances
- 4. Configurer la base de données
- 5. Configurer les variables d'environnement
- 6. Appliquer les migrations
- 7. Créer un superutilisateur (optionnel)
- 8. Démarrer le serveur
- 🔧 Configuration
- Configuration OpenAI OCR
- Configuration FFmpeg
- Configuration CORS
- 📖 Utilisation
- Upload et OCR d'une image
- Transcription audio
- Synthèse vocale
- 🌐 API Reference
- Endpoints Images et OCR
- Endpoints Audio et Transcription
- Endpoints Configuration
- Endpoints Traitement par lot
- Endpoints Qualité et Métadonnées
- 📊 Architecture
- Services principaux
- Modèles de données
- Technologies utilisées
README.md 9.84 Kio
🎵 🖼 ️ BrainBoost - Service de Traitement Multimédia
Microservice spécialisé dans le traitement et la gestion de fichiers audio et images avec reconnaissance OCR, Speech-to-Text et Text-to-Speech.
📋 Table des matières
🎯 Vue d'ensemble✨ Fonctionnalités🚀 Installation🔧 Configuration📖 Utilisation🌐 API Reference- 🧪 Tests
📊 Architecture
🎯 Vue d'ensemble
Le BrainBoost Service de Traitement Multimédia est un microservice Django conçu pour gérer l'upload, le traitement et la conversion de fichiers audio et images. Il intègre des services d'IA avancés pour la reconnaissance optique de caractères (OCR), la reconnaissance vocale et la synthèse vocale.
🎵 Formats audio supportés
- MP3 : Format populaire avec compression
- WAV : Format non-compressé haute qualité
- OPUS : Format moderne optimisé pour la voix
- M4A : Format AAC d'Apple
- FLAC : Format sans perte
🖼 ️ Formats images supportés
- PNG : Format avec transparence
- JPG/JPEG : Format compressé pour photos
- GIF : Format animé
- BMP : Format bitmap Windows
- TIFF : Format haute qualité
- PDF : Documents PDF (extraction de texte)
🎛 ️ Traitements disponibles
- Upload et validation automatique
- Extraction de métadonnées complètes
- Conversion entre formats
- OCR avec OpenAI Vision API
- Speech-to-Text avec Whisper
- Text-to-Speech avec voix synthétiques
- Prétraitement d'images pour OCR
- Détection de tableaux et formules mathématiques
✨ Fonctionnalités
📁 Gestion de fichiers audio
-
✅ Upload sécurisé avec validation de format et taille -
✅ Métadonnées automatiques : durée, bitrate, format, taille -
✅ Organisation par utilisateur avec isolation des données -
✅ Statuts de traitement : UPLOADED, PROCESSING, PROCESSED, ERROR -
✅ Checksum MD5 pour vérification d'intégrité
🖼 ️ Gestion de documents images
-
✅ Upload multi-format avec validation avancée -
✅ Métadonnées EXIF complètes -
✅ Conversion de formats automatique -
✅ Prétraitement pour OCR (contraste, netteté, orientation) -
✅ Évaluation de qualité pour optimisation OCR -
✅ Anonymisation des métadonnées sensibles
🔤 Reconnaissance OCR
-
✅ OCR avec OpenAI Vision API (gpt-4o-mini) -
✅ Détection automatique de langue (français, anglais, etc.) -
✅ Extraction de tableaux avec structure préservée -
✅ Détection de formules mathématiques LaTeX/MathML -
✅ Configuration OCR personnalisable par domaine -
✅ Export multi-format (JSON, TXT, CSV) -
✅ Traitement par lot d'images -
✅ Score de confiance et métriques qualité
🎤 Speech-to-Text
-
✅ Transcription automatique avec Whisper -
✅ Détection de langue automatique -
✅ Segmentation temporelle avec horodatage -
✅ Identification de locuteurs -
✅ Export de transcriptions (SRT, VTT, JSON)
🔊 Text-to-Speech
-
✅ Synthèse vocale multi-langues -
✅ Voix naturelles et expressives -
✅ Prévisualisation audio -
✅ Configuration de vitesse et ton
🔄 Traitement audio avancé
-
✅ Conversion de formats (MP3↔ WAV↔ OPUS↔ M4A↔ FLAC) -
✅ Normalisation audio automatique -
✅ Ajustement de volume en décibels -
✅ Découpage temporel avec précision -
✅ Fusion de fichiers multiples -
✅ Réduction de bruit intelligente
🔍 Recherche et filtrage
-
✅ Par utilisateur : tous les fichiers d'un utilisateur -
✅ Par format : tous formats audio/image -
✅ Par statut : en attente, traités, erreurs -
✅ Par durée/taille : plages personnalisées -
✅ Fichiers transcrits : avec contenu textuel -
✅ Images avec OCR : texte extrait disponible -
✅ Recherche dans le contenu OCR et transcriptions
🌐 API REST complète
-
✅ 50+ endpoints spécialisés -
✅ Réponses JSON standardisées -
✅ Gestion d'erreurs robuste -
✅ Logging détaillé pour monitoring -
✅ Support CORS pour intégration frontend -
✅ Pagination et filtrage avancé
🚀 Installation
Prérequis
- Python 3.11+
- PostgreSQL 12+
- FFmpeg (pour conversions audio)
- OpenAI API Key (pour OCR)
- Clé API Text-to-Speech/Speech-to-Text
1. Cloner le repository
git clone https://mc-git.com/marketing-confort/brainboost/brainboost-traitement-multimedias-service.git
cd brainboost-traitement-multimedias
2. Créer l'environnement virtuel
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activate
3. Installer les dépendances
pip install -r requirements.txt
4. Configurer la base de données
# Créer la base PostgreSQL
createdb brainboost-traitement-multimédias-service-local-db
# Créer l'utilisateur
createuser brainboost-traitement-multimedias-service-local-user
5. Configurer les variables d'environnement
Créer un fichier .env
:
# Base de données
DB_NAME=brainboost-traitement-multimédias-service-local-db
DB_USER=brainboost-traitement-multimedias-service-local-user
DB_PASSWORD=*zk322gO2
DB_HOST=localhost
DB_PORT=5432
# Service
SERVICE_PORT=7082
DEBUG=True
# APIs IA
OPENAI_API_KEY=sk-your-openai-key-here
BRAINBOOST_IA_CORE_URL=http://localhost:8000
BRAINBOOST_IA_CORE_TOKEN=your-ia-core-token
# FFmpeg
FFMPEG_PATH=/path/to/ffmpeg/bin
6. Appliquer les migrations
python manage.py makemigrations
python manage.py migrate
7. Créer un superutilisateur (optionnel)
python manage.py createsuperuser
8. Démarrer le serveur
python manage.py runserver 0.0.0.0:7082
🔧 Configuration
Configuration OpenAI OCR
Créer un fichier services/docs/.env
:
OPENAI_API_KEY=sk-your-openai-key-here
Configuration FFmpeg
Pour activer les conversions audio avancées :
- Télécharger FFmpeg depuis ffmpeg.org
- Placer dans
ffmpeg-7.1.1-essentials_build/bin/
- Ou ajouter au PATH système
Configuration CORS
# settings.py
CORS_ALLOWED_ORIGINS = [
"http://localhost:3000",
"http://127.0.0.1:3000",
]
📖 Utilisation
Upload et OCR d'une image
# 1. Upload image
curl -X POST http://localhost:7082/api/images/upload/ \
-F "file=@document.png" \
-F "user_id=1"
# 2. Extraction OCR
curl -X POST http://localhost:7082/api/images/1/extract-text/ \
-H "Content-Type: application/json" \
-d '{"config_ocr_id": 1}'
# 3. Récupérer résultat
curl http://localhost:7082/api/ocr/1/
Transcription audio
# 1. Upload audio
curl -X POST http://localhost:7082/upload/ \
-F "file=@audio.mp3" \
-F "user_id=1"
# 2. Lancer transcription
curl -X POST http://localhost:7082/api/transcription/process/ \
-H "Content-Type: application/json" \
-d '{"audio_file_id": 1, "language": "fr"}'
Synthèse vocale
curl -X POST http://localhost:7082/api/synthesis/generate/ \
-H "Content-Type: application/json" \
-d '{
"text": "Bonjour, ceci est un test de synthèse vocale.",
"voice": "fr-FR-Neural",
"speed": 1.0
}'
🌐 API Reference
Endpoints Images et OCR
-
POST /api/images/upload/
- Upload image -
GET /api/images/{id}/
- Détails image -
POST /api/images/{id}/extract-text/
- Extraction OCR -
GET /api/ocr/{id}/
- Résultat OCR -
GET /api/ocr/{id}/tables/
- Tableaux extraits -
GET /api/ocr/{id}/formulas/
- Formules mathématiques
Endpoints Audio et Transcription
-
POST /upload/
- Upload fichier audio -
POST /api/transcription/process/
- Lancer transcription -
GET /api/transcription/{id}/
- Résultat transcription -
POST /api/synthesis/generate/
- Synthèse vocale
Endpoints Configuration
-
GET|POST /api/config/ocr/
- Configurations OCR -
GET|PUT|DELETE /api/config/ocr/{id}/
- Gestion config -
POST /api/config/ocr/{id}/duplicate/
- Dupliquer config
Endpoints Traitement par lot
-
POST /api/batch/images/process/
- Traitement lot images -
GET /api/batch/images/{id}/status/
- Statut lot -
GET /api/batch/images/{id}/report/
- Rapport lot
Endpoints Qualité et Métadonnées
-
POST /api/quality/evaluate/
- Évaluation qualité -
POST /api/metadata/extract/
- Extraction métadonnées -
POST /api/metadata/{id}/anonymize/
- Anonymisation
📊 Architecture
Services principaux
- OCRService : Reconnaissance optique avec OpenAI Vision
- SpeechToTextService : Transcription audio avec Whisper
- TextToSpeechService : Synthèse vocale
- ImagePreprocessingService : Prétraitement images
- ImageQualityService : Évaluation qualité
- TableauExtractionService : Extraction tableaux
- FormuleMathematiqueService : Détection formules
Modèles de données
- ImageDocument : Gestion images
- OCRResult : Résultats OCR
- ConfigOCR : Configurations personnalisées
- FichierAudio : Gestion fichiers audio
- ResultatTranscription : Transcriptions
- ExtractedTable : Tableaux extraits
- FormuleMathematique : Formules détectées
Technologies utilisées
- Django 5.2 : Framework web
- PostgreSQL : Base de données
- OpenAI Vision API : OCR avancé
- FFmpeg : Traitement audio
- Pillow : Traitement images
- pydub : Manipulation audio
- REST Framework : API REST