diff --git a/client/src/pages/new-reel.tsx b/client/src/pages/new-reel.tsx index 51d0931..197c83f 100644 --- a/client/src/pages/new-reel.tsx +++ b/client/src/pages/new-reel.tsx @@ -761,7 +761,7 @@ export default function NewReel() { }`} >
diff --git a/ffmpeg-service/main.py b/ffmpeg-service/main.py index 1a65f8c..c206b83 100644 --- a/ffmpeg-service/main.py +++ b/ffmpeg-service/main.py @@ -46,19 +46,33 @@ def clean_text_for_tts(text: str) -> str: return " ".join(text.split()) -async def generate_tts_with_subs( +def generate_tts_with_subs( text: str, voice: str, audio_path: Path, vtt_path: Path ): """Generate TTS audio with subtitles, with retry and fallback voices.""" import asyncio - # List of fallback voices to try if the primary fails - fallback_voices = [ - voice, # Try requested voice first - "fr-FR-DeniseNeural", # Alternative female - "fr-FR-HenriNeural", # Alternative male - "en-US-JennyNeural", # English fallback - ] + # Determine gender of requested voice to choose appropriate fallbacks + is_male = any(name in voice for name in ["Remy", "Henri", "Paul"]) + + if is_male: + fallback_voices = [ + voice, # Try requested voice first + "fr-FR-HenriNeural", # Primary Male fallback + "fr-FR-PaulNeural", # Secondary Male fallback + ] + else: + fallback_voices = [ + voice, # Try requested voice first + "fr-FR-VivienneNeural", # Primary Female fallback + "fr-FR-DeniseNeural", # Secondary Female fallback + ] + + # Always add English fallback as last resort + fallback_voices.append("en-US-JennyNeural") + + # Remove duplicates while preserving order + fallback_voices = list(dict.fromkeys(fallback_voices)) last_error = None @@ -212,7 +226,7 @@ async def process_reel(request: ReelRequest, x_api_key: str = Header(None)): # Check for male/female voice map voice = request.tts_voice if voice == "male": - voice = "fr-FR-RemyNeural" + voice = "fr-FR-HenriNeural" elif voice == "female": voice = "fr-FR-VivienneNeural" elif not voice or "Neural" not in voice: diff --git a/task.md b/task.md index 475823f..dfbf8b2 100644 --- a/task.md +++ b/task.md @@ -52,7 +52,7 @@ Ajout d'une fonctionnalité complète de création de Reels Facebook permettant - [x] FFmpeg: Nettoyer le texte (No hashtags/emojis) avant TTS - [x] FFmpeg: Générer fichier VTT pour synchro sous-titres - [x] FFmpeg: Enlever le son original quand TTS activé - - [ ] Frontend: Sélecteur de voix (Homme/Femme) + - [x] Frontend: Sélecteur de voix (Homme/Femme) - *Switched Male default to Henri* - [/] Ajouter la valeur 'reel' à l'enum post_type en base de données - [x] Amélioration UI Musique (Pagination, Preview Audio) - [x] **Improve Camera Capture Quality** (User Request)