PLAIjfb/dialogue-audio-tts
feat: routage Edge TTS multi-locuteurs + table EDGE_MULTI_VOICES
fix: fallback liste statique voix EL si permission voices_read absente
feat: ElevenLabs TTS pour 3-4 locuteurs (ligne-par-ligne, multilingue)
fix: mise à jour edge-tts 6.1.12 → 7.2.8
feat: mode natif Gemini TTS pour 2 locuteurs (1 appel/dialogue)
feat: palette 16 voix Gemini TTS à contraste maximal (8F + 8M)
fix: retry automatique sur 429 RESOURCE_EXHAUSTED Gemini TTS
fix: retire system_instruction — non supporté par gemini-2.5-flash-preview-tts (→ 500 INTERNAL)
fix: 3 correctifs Gemini TTS
feat: support 3-4 locuteurs via synthèse ligne par ligne
feat(podcast): chunking audio automatique pour scripts > 25 répliques
fix: timeout 120s sur synthesize_gemini pour éviter hang infini
fix: log IA upload error + timeout 30s
fix: IA upload timeout 15s
fix: add IA upload + QR code to Gemini endpoint
fix: gemini streaming TTS - inline_data.data already bytes, fallback to chunk.parts
fix: google-genai 1.16.1 (was yanked)
fix: pin edge-tts==6.1.12 and google-genai==1.16.0 (stop unpinned installs)
fix: wrap generate endpoint — JSON errors + skip IA upload on failure
fix: skip IA upload in Gemini endpoint (blocked + timeout) — return audio_data only
fix: use generate_content_stream for Gemini 2.5 TTS (streaming required)
fix: concatenate all audio parts from Gemini response (multi-part streaming)
fix: use pydub direct for PCM decode + detailed logging of mime_type and sizes
fix: detect Gemini TTS mime_type (mp3/wav/pcm) for correct audio decoding
fix: IA upload with 20s timeout — return audio_data even if upload fails/slow
fix: update Gemini TTS model to gemini-2.5-flash-preview-tts (2.0 deprecated)
fix: wrap synthesize_gemini in try/except for proper JSON error response
feat: S3 — protect all endpoints with X-PLAI-Secret header
feat: Gemini TTS engine — /gemini-status + /generate-gemini endpoints
feat: /preview endpoint — short phrase TTS per voice with prosody
feat: nl_BE 5 voices + prosody differentiation for female NL voices
fix: remove edge-tts version pin + safe asyncio in synthesize_edge_tts
feat: migrate all languages to Edge TTS neural voices + add Italian
feat: Edge TTS engine for all NL voices (nl-BE + nl-NL neural, no key)
feat: add /azure-status endpoint
feat: dual-engine TTS — Azure synthesis for nl-NL-*Neural voices
fix: correct gender and names for nl_NL voices (Kees/Lotte)
feat: add nl_NL voices to nl_BE and nl_NL with length_scale defaults
feat: add length_scale per speaker for speed control
feat: expand voices to 3-4 per language (all verified on HF repo)
fix: normalize audio to 22050 Hz mono before concatenation
fix: replace upmc-pierre with gilles-low, add es_ES and fr_BE
fix: voice_id_to_hf_path uses nested dirs for multi-part names
feat: add Spanish (es_ES) and Belgian French (fr_BE) languages
fix: metadata IA simplifiée pour éviter erreur item page
fix: return audio_data base64 for immediate playback
fix: complete IA metadata to avoid item page error
feat: add en_GB voices (Alan, Jenny)
fix: remove restricted IA collection, fix metadata upload
fix: add HF Space YAML metadata to README
