Commit graph

3 commits

Author SHA1 Message Date
0d8af23598 Add voice cloning to the TTS wrapper, default to the owner's own voice sample
tts_server.py now resolves `voice` against services/voices/*.wav (gitignored,
personal recordings) and clones via chatterbox's audio_prompt_path, falling
back to "default" (symlinked to ~/chatterbox-tts-cli/my_voice_deutsch_60s.wav)
for unknown names, or to the old built-in-voice-by-language-code behavior if
`voice` is a recognized language. All podcast speaker profiles now point at
voice_id "default" until distinct per-speaker reference clips are added.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-10 22:38:03 +02:00
fb1fbcfabe Add local TTS/STT wrapper servers (chatterbox, faster-whisper) as openai_compatible providers
Wraps the locally installed chatterbox-tts and faster-whisper packages in thin
FastAPI servers implementing OpenAI's audio API shape, since neither Ollama nor
OpenRouter support speech. Pinned to GPU 2 to avoid contending with Ollama's
resident models on GPU 1. Requires UFW rules for 8901/8902 (same pattern as
the existing 11434 rule) since UFW defaults to deny-incoming.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-10 21:41:44 +02:00
52f99c51ba Initial setup: docker-compose for Open Notebook (SurrealDB + open_notebook), Ollama + OpenRouter as AI providers
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-10 21:05:23 +02:00