Self-hosted Turkish text-to-speech API. One container, full and streaming synthesis.
156
Self-hosted Turkish text-to-speech API. One container, full and streaming synthesis.
docker run -d --name ema-tts -p 9000:9000 -v ema-data:/data bariskisir/ema-lightning-api:1.0.1
With an API key (map to any host port with -p):
docker run -d --name ema-tts -p 8000:9000 -v ema-data:/data \
-e API_KEY=change-me \
bariskisir/ema-lightning-api:1.0.1
Full WAV file:
curl -s -X POST localhost:9000/v1/speak \
-H 'Content-Type: application/json' \
-d '{"text":"Merhaba, size nasıl yardımcı olabilirim?","speed":1.0}' \
--output hello.wav
Streamed raw PCM (float32 mono):
curl -s -N -X POST localhost:9000/v1/speak \
-H 'Content-Type: application/json' \
-d '{"text":"Uzun bir metin...","stream":true}' \
--output out.pcm
Live playback over WebSocket (WS /v1/stream): client sends one JSON frame,
server answers meta, binary PCM frames, then done.
| Field | Type | Default | Description |
|---|---|---|---|
text | string | — | Input text (required, no length limit). |
speed | number | 1.0 | Speaking pace, min 0.25, max 4. |
seed | integer | random | Non-negative seed; same input + seed = same audio. |
sample_rate | integer | 48000 | One of 48000, 24000, 16000, 8000. |
stream | boolean | false | true returns chunked float32 PCM instead of WAV (HTTP only). |
| Variable | Default | Description |
|---|---|---|
API_KEY | (empty) | Optional key; when unset there is no authentication. |
DEVICE | cpu | Compute device: cpu, cuda or auto. |
LOG_LEVEL | WARNING | DEBUG, INFO, WARNING, ERROR or CRITICAL. |
LOG_TEXTS | false | Store input texts and request/response payloads. Audio is never stored. |
Calls are logged to SQLite at /data/logs/calls.db (mount -v ema-data:/data).
Apache-2.0
Content type
Image
Digest
sha256:b61be9082…
Size
341.4 MB
Last updated
3 days ago
docker pull bariskisir/ema-lightning-api