Mindket

EMA Lightning

Newversion 1 · updated

Overview

A tiny Turkish text-to-speech model, 8.6M parameters and about 34 MB, that runs offline on a GPU or CPU and can stream audio as it is made. For developers who need Turkish voice output.

EMA Lightning is a kit in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page, a zip of its files. Nothing in it runs by itself.

At a glance

You need
  • Python on your computer
  • The ema-lightning package from the Python package index
  • An NVIDIA GPU for the fast path, though a CPU also works
Runs in
  • Python programs on Windows, macOS or Linux
  • NVIDIA GPUs, with a fast path for them
  • CPU-only machines
  • Live apps, phone calls and speakers, using streaming
Start with
pip install ema-lightning

Platform

WindowsOperating system
macOSOperating system
LinuxOperating system

About

What it is

EMA Lightning is a Turkish text-to-speech system built from a small acoustic model and a small vocoder. Together they come to 8.6M parameters, roughly 34 MB on disk. It works on a GPU or a CPU without a network connection or an API key, and the card says your text and audio stay on your computer.

Who it suits

It suits developers who need Turkish speech in an app, a call system, a voiceover job or a batch pipeline. A small download and offline use make it fit for private or low-cost setups.

Who uses it
IndustryWho uses itHow they use itExample
SoftwareApplication developersAdd Turkish voice output to an appRead a reply aloud while it is still being made
Customer serviceCall-system buildersStream speech to callers from many threadsSpeak an order status to each caller
MediaContent producersGenerate voiceover files in batchesTurn a list of lines into numbered audio files

People who need a language other than Turkish can skip it.

Where to use it

  • Python programs on Windows, macOS or Linux
  • NVIDIA GPUs, with a fast path for them
  • CPU-only machines
  • Live apps, phone calls and speakers, using streaming
Top jobs
Use caseWhoWhat they get back
Voiceover filesContent producersA WAV file for each text
Batch jobsDevelopersOne speech result per text, in order
Live speechApp buildersAudio chunks to play as they arrive

How to set it up

  • Python on your computer
  • The ema-lightning package from the Python package index
  • An NVIDIA GPU for the fast path, though a CPU also works
  1. Install the package.
  2. Create one EMA object and keep it for the whole program.
  3. The first run downloads the model files.
pip install ema-lightning

The Hugging Face record also lists a plain file download.

pip install -U huggingface_hub
hf download canberkkkkkk/ema-lightning

How to use it

One EMA object gives you speech in two ways. The say call returns the whole audio when it is ready, for one text or a list. The stream call gives audio piece by piece for one text per call.

Two calls
ToolWhat it does
say()Returns the whole audio, for files, voiceovers and batch jobs
stream()Returns audio as it is made, for speakers, calls and live apps
from ema_lightning import EMA

tts = EMA()                                     # downloads ema.pt and decoder.pt, uses the GPU if there is one
speech = tts.say("Merhaba, size nasıl yardımcı olabilirim?", path="merhaba.wav")
print(speech.duration, speech.sample_rate)      # seconds of audio, 48000

Pass a list to say and the texts are made in shared batches, with the clips saved into a folder.

speeches = tts.say(["Günaydın.", "Siparişiniz yola çıktı.", "İyi günler dileriz."], path="clips")

For streaming, write each chunk to an audio output as it arrives.

import sounddevice as sd                        # pip install sounddevice

with sd.OutputStream(samplerate=48000, channels=1, dtype="float32") as speaker:
    for chunk in tts.stream("Merhaba! Bu ses siz dinlerken üretiliyor. İlk kelimeyi duyduğunuzda, "
                            "cümlenin geri kalanı çoktan hazır."):
        speaker.write(chunk)

On NVIDIA GPUs, the card offers a fast path.

tts = EMA().lightning()

Example

You call say with a Turkish greeting and a file name. You get back a Speech object holding the audio, a sample rate of 48000 and the duration in seconds, and a WAV file appears. The audio is a mono float32 array.

For newcomers and experts

If you are new, run the first snippet with one Turkish sentence and play the WAV file. Nothing else needs setting up.

For experts, the pipeline encodes text per letter, places it on a word and letter timeline, and aligns one condition per frame. A DiT then generates latents in four steps, and a vocoder decodes them to 48 kHz audio. A scheduler called Playhead runs the work from many threads together on the GPU.

  1. Text is encoded per letter
  2. A duration predictor sets the timeline
  3. A DiT makes latents in four steps
  4. The vocoder outputs 48 kHz audio

Good to know

  • Language: Turkish only.
  • Reported accuracy: the card gives 0.92% word error rate on its own Freya-TR-Eval test.
  • Streaming: on a GPU, the first second of audio arrives after roughly 4 ms.
  • License: Apache 2.0.
  • Cost to run: no key or account is needed. On a rented RTX 4090, the card puts the price near $0.0085 for a million characters.
  • Data it reaches: it downloads model files on first use, and the card says no text or audio leaves the machine.
  • Not for: languages other than Turkish.
Speed against real time on an RTX 4090
Single stream440 x faster
With batching1316 x faster

README and files

README

EMA Lightning

A tiny Turkish text-to-speech model, 8.6M parameters and about 34 MB, that runs offline on a GPU or CPU and can stream audio as it is made. For developers who need Turkish voice output.

Made by canberkkkkkk on Hugging Face. These notes are Mindket's, written from its model page and model card; the model's own files and license are on Hugging Face.

About

What it is: EMA Lightning is a Turkish text-to-speech system built from a small acoustic model and a small vocoder. Together they come to 8.6M parameters, roughly 34 MB on disk. It works on a GPU or a CPU without a network connection or an API key, and the card says your text and audio stay on your computer.

Who it suits: It suits developers who need Turkish speech in an app, a call system, a voiceover job or a batch pipeline. A small download and offline use make it fit for private or low-cost setups.

Title: Who uses it
Industry | Who uses it | How they use it | Example
Software | Application developers | Add Turkish voice output to an app | Read a reply aloud while it is still being made
Customer service | Call-system builders | Stream speech to callers from many threads | Speak an order status to each caller
Media | Content producers | Generate voiceover files in batches | Turn a list of lines into numbered audio files

People who need a language other than Turkish can skip it.

Where to use it:

  • Python programs on Windows, macOS or Linux
  • NVIDIA GPUs, with a fast path for them
  • CPU-only machines
  • Live apps, phone calls and speakers, using streaming
Title: Top jobs
Use case | Who | What they get back
Voiceover files | Content producers | A WAV file for each text
Batch jobs | Developers | One speech result per text, in order
Live speech | App builders | Audio chunks to play as they arrive

How to set it up:

  • Python on your computer
  • The ema-lightning package from the Python package index
  • An NVIDIA GPU for the fast path, though a CPU also works
  1. Install the package.
  2. Create one EMA object and keep it for the whole program.
  3. The first run downloads the model files.
pip install ema-lightning

The Hugging Face record also lists a plain file download.

pip install -U huggingface_hub
hf download canberkkkkkk/ema-lightning

How to use it: One EMA object gives you speech in two ways. The say call returns the whole audio when it is ready, for one text or a list. The stream call gives audio piece by piece for one text per call.

Title: Two calls
Tool | What it does
say() | Returns the whole audio, for files, voiceovers and batch jobs
stream() | Returns audio as it is made, for speakers, calls and live apps
from ema_lightning import EMA

tts = EMA()                                     # downloads ema.pt and decoder.pt, uses the GPU if there is one
speech = tts.say("Merhaba, size nasıl yardımcı olabilirim?", path="merhaba.wav")
print(speech.duration, speech.sample_rate)      # seconds of audio, 48000

Pass a list to say and the texts are made in shared batches, with the clips saved into a folder.

speeches = tts.say(["Günaydın.", "Siparişiniz yola çıktı.", "İyi günler dileriz."], path="clips")

For streaming, write each chunk to an audio output as it arrives.

import sounddevice as sd                        # pip install sounddevice

with sd.OutputStream(samplerate=48000, channels=1, dtype="float32") as speaker:
    for chunk in tts.stream("Merhaba! Bu ses siz dinlerken üretiliyor. İlk kelimeyi duyduğunuzda, "
                            "cümlenin geri kalanı çoktan hazır."):
        speaker.write(chunk)

On NVIDIA GPUs, the card offers a fast path.

tts = EMA().lightning()

Example: You call say with a Turkish greeting and a file name. You get back a Speech object holding the audio, a sample rate of 48000 and the duration in seconds, and a WAV file appears. The audio is a mono float32 array.

For newcomers and experts: If you are new, run the first snippet with one Turkish sentence and play the WAV file. Nothing else needs setting up.

For experts, the pipeline encodes text per letter, places it on a word and letter timeline, and aligns one condition per frame. A DiT then generates latents in four steps, and a vocoder decodes them to 48 kHz audio. A scheduler called Playhead runs the work from many threads together on the GPU.

Text is encoded per letter
A duration predictor sets the timeline
A DiT makes latents in four steps
The vocoder outputs 48 kHz audio

Good to know:

  • Language: Turkish only.
  • Reported accuracy: the card gives 0.92% word error rate on its own Freya-TR-Eval test.
  • Streaming: on a GPU, the first second of audio arrives after roughly 4 ms.
  • License: Apache 2.0.
  • Cost to run: no key or account is needed. On a rented RTX 4090, the card puts the price near $0.0085 for a million characters.
  • Data it reaches: it downloads model files on first use, and the card says no text or audio leaves the machine.
  • Not for: languages other than Turkish.
Title: Speed against real time on an RTX 4090
Single stream: 440 x faster
With batching: 1316 x faster

On Hugging Face, 13 November 2026

  • Task: text to speech
  • Downloads in the last 30 days: 89,173
  • Likes: 461
  • License: apache-2.0
  • Languages: tr
  • Quantized versions: 8
  • Fine-tunes: 3
  • Tags: ema-lightning, text-to-speech, turkish, speech-synthesis, flow-matching

Links

Get the model

Download its files with Hugging Face's command line:

pip install -U huggingface_hub
hf download canberkkkkkk/ema-lightning

Then follow the usage in its model card. Nothing in this kit runs by itself.

Files
README.md  6 KB

1 file, 6 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-13

Compare with similar

Listed Hugging Face models in the same category that share the most tags with this one.

ProductDownloads, last 30 daysLikesParametersLicenseLast change
EMA Lightning This page89,173461—apache-2.0
AhenkShares turkish · text-to-speech029—cc-by-4.0
Supertonic 3Shares speech-synthesis · text-to-speech92,3591,043—openrail
ZeroTTSShares speech-synthesis · text-to-speech8,09154—mit
Maya 2 NativeShares speech-synthesis · text-to-speech5,7741702.5Bapache-2.0
Confucius4-TTSShares speech-synthesis · text-to-speech2,19046—apache-2.0
Numbers as Mindket last read them, from 2026-11-12 to 2026-11-13.

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

Searched

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Developer

See all in Developer

Claude Code Skills & Plugins

alirezarezvani · Skill

Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…

New29.8k

buzz

block · Kit

Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…

New37.3k

plannotator

backnotprop · Kit

Opens your AI coding agent's plans, specs and code changes in a browser so you can annotate or comment on them and send the feedback straight back to the agent.

New10.5k