All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
[Open Source] edgeTTS: Self-hosted Edge TTS server with OpenAI & native streaming APIs
Hi LET guys,
haha, long time busy at working ![]()
I built a lightweight, self-hosted Edge TTS server called edgeTTS and wanted to share it for who finds it useful for their VPS or homelab.
- GitHub: https://github.com/DejavuMoe/edgeTTS
- Docker Image:
ghcr.io/dejavumoe/edgetts - WebUI: https://tts-api.via.moe/

What it does?
It proxies Microsoft Edge's Read Aloud speech synthesis into a standalone, single-process service with two distinct endpoints:
- OpenAI-compatible endpoint (
/v1/audio/speech): Works as a drop-in free replacement for third-party tools, readers, translation plugins, and chat UIs (LobeChat, NextChat, STranslate, etc.) that expect standard OpenAI TTS payloads. - Native streaming endpoint (
/api/speech): Designed for long documents (up to 20,000 code points) with speed, pitch, and volume adjustments. It splits text losslessly at sentence boundaries and streams the audio back in a single MP3 stream.
Why build it?
Many existing scripts either disconnect on long text or make a brand new TLS/WebSocket handshake for every sentence fragment. edgeTTS reuses upstream WebSocket connections across segments (reducing inter-segment latency down to ~380ms) and includes a bounded concurrency queue (default 4 active streams + 16 FIFO slots) so your server won't spam upstream and trigger IP rate limits.
Resource usage is minimal—the Node process typically idles at around 60–80 MB of RAM, so it happily runs on 512MB / 1GB cheap VPS boxes.
Quick Start (Docker Compose)
services:
edgetts:
image: ghcr.io/dejavumoe/edgetts:0.9.5
container_name: edgetts
restart: unless-stopped
read_only: true
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
tmpfs:
- /tmp
ports:
- "127.0.0.1:8080:8080"
environment:
- NODE_ENV=production
- API_KEY=replace_with_your_own_secret_key
- REQUIRE_API_KEY=true
Once running, visit http://127.0.0.1:8080 for the web workbench, or send requests directly to /v1/audio/speech or /api/speech with Bearer auth.
Honest caveats
- It relies on Microsoft's online Edge service; it's not an offline engine. Audio is piped through memory and never stored on disk.
- Availability depends on upstream Microsoft endpoints staying accessible from your server's IP.

Comments
Hello! This is vibecoded slop, has zero utility, and has already been done by countless other folks. Also, thsi violates Microsoft's terms of service. There is no point in sharing it here, there's no point in using this rather than edge tts library directly.
Also, it seems like you potsed the exact same thing a few days ago. Why spam? https://lowendtalk.com/discussion/221483/open-source-lightweight-edge-tts-server-with-openai-api-compatibility-text-chunking#latest
Demo need api key 🤦♂️
Ohh Hi @DejavuMoe not seen you on LET recently, how is your job going on?
Sorry, I haven't been here for a while, I forgot to post it myself... Sorry
Very very very busy, I feel that I can't even stand this job anymore.
The direction of the entire company is to use AI to reduce costs and increase efficiency (the purpose of cost reduction is to lay off workers), which is simply unbelievable.
My values with this company may not be very suitable. If I can't stand it mentally and physically in the future, I might consider leaving my job. Hey……
Thank you for your greetings.
At first, this was just a small tool I made to satisfy my own needs. Reinventing the wheel may not be the best approach.
But I’m trying to embrace the changes of the AI era. If I need something, I’ll build it according to my own needs, even if it’s AI slop.
Don’t take it too seriously, man.
Just have fun!
Thanks again, and sorry for the duplicate post.
Hi @angstrom, could you please help delete or close the previous post? Thanks.
In general, we don't delete posts simply because a user asks us to -- see the rules -- but I've closed this thread