Adds a fourth TTS engine alongside Piper / Kokoro / biblical-tts: a small FastAPI bridge to Microsoft Edge's Read Aloud TTS via the edge-tts Python package. Provides studio-quality Modern Hebrew (he-IL) and Modern Greek (el-GR) narrators for the cluster. modern-tts/Dockerfile + app.py: - Python 3.12 base + edge-tts==7.2.8 (older versions hit 403 from MS). - POST /tts -> MP3 audio (audio/mpeg). - POST /timings -> word-level timings. Edge sometimes omits WordBoundary events for non-English voices; fall back to MP3-frame-walking duration estimate + proportional distribution across whitespace-split words (same approach biblical-tts uses for eSpeak). - GET /voices?language=all|default — filtered to he-/el- by default so the AiStation voice picker isn't overwhelmed by 400+ voices. - GET /health for probes. - Body shape mirrors BiblicalTtsRequest so the .NET client lives in the same FlowerCore.Shared.Speech package. K8s deployment in fc-ttsreader namespace: - ttsreader-modern Deployment + Service on port 10403. - localhost/fc-modern-tts:v1, imagePullPolicy: Never (built on noc1, imported to all 3 RKE2 nodes via ctr). - runAsNonRoot uid 1654 + fsGroup 1654. - dnsPolicy: None to bypass the *.iamworkin.lan template hijack on Microsoft endpoint lookups. - Modest resources (100m/128Mi req, 1000m/512Mi limit) — edge-tts is network-bound, not compute-bound. - Probes against /health. Verified live locally: container handles 'Καλημέρα Ελλάδα Πώς είστε' in 2496ms, returns el-GR-NestorasNeural voice + 4 word timings. Hebrew: 'בְּרֵאשִׁית בָּרָא אֱלֹהִים' returns he-IL-AvriNeural, 2472ms, 3 words. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
49 B
49 B