tts: run coqui XTTS from a venv of its own
coqui-tts imports a transformers 4.x symbol that 5.x removed. Unlike parler and the OCR engines it had never been isolated locally: _CoquiBackend did a plain 'from TTS.api import TTS' and gave up when it was missing. On a pod that meant an image with a verified, working TTS venv answered 'pip install coqui-tts' — the venv was there and nothing knew to use it. xtts_worker finds the venv the way the others do (explicit env var, the baked /opt/coderai/venvs/TTS, then per-user) and drives tools/xtts_service.py in it over stdin/stdout. XttsSubprocess wears the TTS object's shape — speakers, tts(**kwargs), synthesizer.output_sample_rate, and the TypeError the backend relies on to retry without speed — so synthesize() runs unchanged whether the library is in this process or next door. Verified inside the pushed image: the venv is found and the service answers from it. The fall-through is unit-tested with a fake worker, and the error when no venv exists names the places it looked. Co-Authored-By:Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0182DhR1eFNPQyGmDrpHbedY
Showing
codai/api/xtts_worker.py
0 → 100644
tools/xtts_service.py
0 → 100644
Please
register
or
sign in
to comment