• v2.3.1 fea09e3e23

    feat(tts): add pocket-tts engine alongside kokoro-fastapi
    Some checks failed
    Release / Test backend (push) Successful in 36s
    Release / Check ui (push) Successful in 50s
    Release / Docker / caddy (push) Failing after 45s
    CI / Test backend (pull_request) Successful in 39s
    CI / Check ui (pull_request) Failing after 11s
    CI / Docker / ui (pull_request) Has been skipped
    CI / Docker / caddy (pull_request) Failing after 11s
    Release / Docker / backend (push) Failing after 48s
    Release / Docker / runner (push) Failing after 58s
    Release / Upload source maps (push) Failing after 39s
    CI / Docker / backend (pull_request) Failing after 34s
    CI / Docker / runner (pull_request) Failing after 30s
    Release / Docker / ui (push) Successful in 2m42s
    Release / Gitea Release (push) Has been skipped

    kamil released this 2026-03-27 16:17:13 +05:00 | -260 commits to main since this release

    • New backend/internal/pockettts package: POST /tts client for
      kyutai-labs/pocket-tts; streams WAV response and transcodes to MP3
      via ffmpeg so the rest of the pipeline stays format-agnostic
    • config.PocketTTS struct + POCKET_TTS_URL env var
    • runner.Dependencies.PocketTTS field; runAudioTask routes by voice name:
      pockettts.IsPocketTTSVoice (alba, marius, javert, …) → pocket-tts,
      everything else → kokoro-fastapi
    • Dockerfile: runner stage switched from distroless/static to alpine:3.21
      with ffmpeg + ca-certificates installed
    • homelab compose: runner gets POCKET_TTS_URL=http://pocket-tts:8000
    • Doppler prd + prd_homelab: KOKORO_URL=https://tts.libnovel.cc,
      POCKET_TTS_URL=https://pocket-tts.libnovel.cc
    Downloads