From a9cda4ffd456e3086ab09d4034ace3f34de87088 Mon Sep 17 00:00:00 2001 From: R0m1k3 Date: Tue, 19 May 2026 14:12:08 +0200 Subject: [PATCH] Fix sync-info route to use ttsEngine and ttsVoice - ttsSyncService.calculateSyncTiming now accepts ttsEngine parameter - sync-info route extracts ttsVoice/ttsEngine from req.body instead of voice - Previously it always fell back to Edge TTS even when Gemini was selected (because server stored 'fr-FR-Standard-B' but route only used 'voice') --- server/routes/reels.ts | 6 +++--- server/services/ttsSync.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/server/routes/reels.ts b/server/routes/reels.ts index a0413a3..2c0a821 100644 --- a/server/routes/reels.ts +++ b/server/routes/reels.ts @@ -394,11 +394,11 @@ reelsRouter.post('/reels/tts-preview', async (req: Request, res: Response) => { */ reelsRouter.post('/reels/sync-info', async (req: Request, res: Response) => { try { - const { text, voice } = req.body; - if (!text || !voice) { + const { text, ttsVoice, ttsEngine } = req.body; + if (!text || !ttsVoice) { return res.status(400).json({ error: 'Texte et voix requis' }); } - const sync = await ttsSyncService.calculateSyncTiming(text, voice); + const sync = await ttsSyncService.calculateSyncTiming(text, ttsVoice, ttsEngine); res.json(sync); } catch (error) { console.error('❌ Error calculating sync:', error); diff --git a/server/services/ttsSync.ts b/server/services/ttsSync.ts index e8fe3d0..9bfd641 100644 --- a/server/services/ttsSync.ts +++ b/server/services/ttsSync.ts @@ -15,11 +15,11 @@ export class TtsSyncService { * Calcule le word_duration optimal pour synchroniser l'affichage du texte * avec la durée réelle de la voix TTS générée. */ - async calculateSyncTiming(text: string, voice: string): Promise { + async calculateSyncTiming(text: string, voice: string, ttsEngine?: string): Promise { const cleanText = this.cleanText(text); // 1. Générer le TTS preview et mesurer sa durée exacte - const ttsResult = await ffmpegService.previewTTS(cleanText, voice); + const ttsResult = await ffmpegService.previewTTS(cleanText, voice, ttsEngine); if (!ttsResult.success || !ttsResult.audioBase64) { throw new Error('TTS preview failed: ' + (ttsResult.error || 'unknown')); }