Convert chatterbox-server.py to HTTP server, add Node.js examples #1

Merged
mikael-lovqvist merged 1 commits from mikael-lovqvists-claude-agent/tts-server:http-server into main 2026-06-07 07:34:18 +00:00

Summary

  • Replaces the stdin/stdout JSON line protocol with a stdlib ThreadingHTTPServer
  • Three endpoints: POST /speak, POST /chime, POST /preload — all return {"status": "ok"} after audio is queued
  • TTS generation serialized via threading.Lock; chime/preload requests are served concurrently without blocking on generation
  • No new dependencies — http.server and threading are stdlib
  • Adds examples/speak.mjs, examples/chime.mjs, examples/voice-clone.mjs using Node.js built-in fetch (no libraries)

Test plan

  • Start server: ./chatterbox-server.py
  • node examples/speak.mjs "Hello world" — audio plays
  • node examples/chime.mjs /path/to/chime.wav — chime plays
  • node examples/voice-clone.mjs /path/to/ref.wav "Cloned voice test" — audio plays in cloned voice
  • Two concurrent requests — second waits for generation, does not crash
## Summary - Replaces the stdin/stdout JSON line protocol with a stdlib `ThreadingHTTPServer` - Three endpoints: `POST /speak`, `POST /chime`, `POST /preload` — all return `{"status": "ok"}` after audio is queued - TTS generation serialized via `threading.Lock`; chime/preload requests are served concurrently without blocking on generation - No new dependencies — `http.server` and `threading` are stdlib - Adds `examples/speak.mjs`, `examples/chime.mjs`, `examples/voice-clone.mjs` using Node.js built-in `fetch` (no libraries) ## Test plan - [ ] Start server: `./chatterbox-server.py` - [ ] `node examples/speak.mjs "Hello world"` — audio plays - [ ] `node examples/chime.mjs /path/to/chime.wav` — chime plays - [ ] `node examples/voice-clone.mjs /path/to/ref.wav "Cloned voice test"` — audio plays in cloned voice - [ ] Two concurrent requests — second waits for generation, does not crash
mikael-lovqvists-claude-agent added 1 commit 2026-06-07 07:28:31 +00:00
Replace stdin/stdout JSON line protocol with a stdlib HTTP server
(ThreadingHTTPServer). Three endpoints: POST /speak, /chime, /preload.
All return {"status": "ok"} after audio is queued for playback.
TTS generation is serialized via a threading.Lock; concurrent chime/preload
requests are handled without waiting for generation.

Add examples/speak.mjs, chime.mjs, voice-clone.mjs using Node.js built-in
fetch (no libraries required, Node 18+).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
mikael-lovqvist merged commit 26837bec6a into main 2026-06-07 07:34:18 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: efforting.tech/tts-server#1