Download README.md from elphi-si/elphi: direct link, hf CLI and curl.
- Browser
- Download file 5.9 kB
-
https://huggingface.co/elphi-si/elphi/resolve/main/README.md
- Command line
-
hf download hf://elphi-si/elphi/README.md
-
curl -L -o README.md https://huggingface.co/elphi-si/elphi/resolve/main/README.md
license: apache-2.0
language:
- tr
pipeline_tag: text-to-speech
library_name: coreml
base_model: canberkkkkkk/ema-lightning
tags:
- text-to-speech
- tts
- turkish
- coreml
- on-device
- ema-lightning
Elphi Türkçe — EMA Lightning for Core ML
Elphi Türkçe is the Core ML distribution of EMA Lightning for the Elphi app. It lets Elphi read Turkish answers aloud on iPhone, iPad and Mac entirely on the device: once downloaded it works offline, and no text or audio is sent anywhere.
We did not train the underlying text-to-speech model. EMA Lightning was created by Canberk Aslan. This repository holds his published weights converted to Core ML for Apple devices — nothing more. The Core ML conversion, packaging and validation were done by Bosphorus Intelligence LLC.
This distribution is not affiliated with, sponsored by or endorsed by the author of EMA Lightning.
The original model
| Model | EMA Lightning by Canberk Aslan |
| Hugging Face | canberkkkkkk/ema-lightning |
| GitHub | canberk7/ema-lightning |
| Weights converted | canberkkkkkk/ema-lightning at revision 7a6ba1ad216bb2f1da9863f80ac8770a6a807632 (ema.pt SHA-256 95aec03dafbe0e1d69bca774ab597c779464729a14bc99bfcb52480090c7dfe6, decoder.pt SHA-256 9595819b173f411340f63d11332695121a97f8bf1f6d8b6fef0b21cf99c7ad67) |
| Code followed | canberk7/ema-lightning at commit 12797c5f4dbcced8e4b3392b12bba2fe8b9f5ec6 (v1.0.4) |
| License | Apache License 2.0, for the weights and the code (see LICENSE) |
How the model was designed and trained is described in the original model card; this repository makes no claims beyond it.
Files
| File | Bytes | SHA-256 |
|---|---|---|
EMADecoder.mlpackage/Data/com.apple.CoreML/model.mlmodel |
171,303 | a952147fbfe0bd43e878a61eae3d8718e2307dcf8475664e8d75c06ca2883ce5 |
EMADecoder.mlpackage/Data/com.apple.CoreML/weights/weight.bin |
11,984,304 | ed8e4a1701ae8b7b2c1298db38ce34d83fbf107f13f82b77281c1a87f6fcbab9 |
EMADecoder.mlpackage/Manifest.json |
617 | bbf2a573a9fc80dddc5d80f03e9a35d33b6d2a291dfa741aa1fd6bd8290b1acd |
EMASound.mlpackage/Data/com.apple.CoreML/model.mlmodel |
275,635 | b38839114c7b430312881e27d007f955273697ede50739d2e8fcfed90e965b65 |
EMASound.mlpackage/Data/com.apple.CoreML/weights/weight.bin |
15,319,296 | 3081db93ad88e7ed0fbe3864e66c3e0cbd8723adac88e0eada64a41ebe92b827 |
EMASound.mlpackage/Manifest.json |
617 | e558217deb6ec55e3aaf91f587fc0743e1596c257db76de43797b4f7e951d872 |
EMAText.mlpackage/Data/com.apple.CoreML/model.mlmodel |
29,210 | 24ec2f1acc76eb34fa8979e34e2b29d6fb668533794050957e251ac8e2b3b1ee |
EMAText.mlpackage/Data/com.apple.CoreML/weights/weight.bin |
4,792,000 | f2ec3166e629929b159fbe12b06cb445a202a5a16e35e78b3b5c30dbefa60db3 |
EMAText.mlpackage/Manifest.json |
617 | 94ca43b45ecdbefc8d250ded9b325132ecb241ce4df42c5d17ee4c67003b755b |
voice.json |
1,443 | fba9baf368a1176f9b43d9c37c56a8497684c0d0c14c4ef074732523f14300d8 |
32,575,042 bytes in all.
EMAText.mlpackage— the text stage: letter ids → letter features and per-letter durations.EMASound.mlpackage— the sound stage: the aligner and the four flow-matching steps → 64-dimensional latents at 25 Hz.EMADecoder.mlpackage— the original decoder: latents → 48 kHz mono audio.voice.json— the alphabet, the constants and the pinned sources.
Core ML ML Programs with float32 weights, for iOS, iPadOS and macOS 26 and later; Elphi runs them on the CPU.
Changes from the original
As the Apache License 2.0 asks, the changes made to the original:
- The acoustic model was split into a text stage and a sound stage; the decoder is unchanged. The index math the original computes inside its forward pass (word timeline, letter and frame positions, the aligner's window) is computed by the app, exactly as the original computes it.
- The stages were traced with PyTorch 2.7.0 and converted with coremltools 9.0 to ML Programs, then packaged deterministically (the same bytes on every build).
- The weights' values are unchanged: no retraining, no fine-tuning, no quantization.
Validation
Against the original PyTorch model on the CPU, with identical noise, on 12 reference pieces: identical frame timelines, and audio within 48.0–67.4 dB SNR of the original (median 61.3 dB) — rounding-level differences. On an iPhone 11 (A13): first audio in 60–80 ms, speech made about 20× faster than it plays.
How Elphi uses it
Elphi downloads these files only when the person asks for Elphi Türkçe, checks every file against its pinned size and SHA-256, compiles the models on the device and keeps them there. The download sends no text. Text normalization (numbers, dates, amounts) uses normalizer-tr 0.4.0 by Erdem Tuna (Apache License 2.0), which ships inside the app and is not part of this repository.
Responsible use
EMA Lightning makes synthetic speech, and — as the original model card asks — people who hear it should know that. Elphi presents Elphi Türkçe as an AI-generated voice. Do not present it as a real person's voice or use it for impersonation or scams. Numbers, dates and abbreviations go through automatic normalization, which can misread unusual input.
License and attribution
Apache License 2.0 — LICENSE is the original's license text; NOTICE carries the attribution. Provided "as
is", without warranty of any kind.
Citation of the original model
@misc{aslan2026emalightning,
title = {EMA Lightning: Tiny, Fast and Accurate Turkish Text to Speech},
author = {Aslan, Canberk},
year = {2026},
howpublished = {\url{https://huggingface.co/canberkkkkkk/ema-lightning}}
}