Introduction

Turkish just got a properly open voice. On October 17, developer Ozgur Guler

, an open-weight Turkish text-to-speech release that reads numbers, dates, prices, and phone numbers correctly, lifts its pitch on "mı" questions, and can speak angry, cheerful, or surprised on command. It even laughs. There are two models: Ahenk, a LoRA adapter for OpenBMB's VoxCPM2 that needs a GPU, and Ahenk Cep, a tiny 8.6M-parameter model that runs on a CPU or right in your browser. Both ship under CC BY 4.0, and you can try the small one today with nothing installed.

What Shipped

Ahenk, the big model

According to the Ahenk model card, it's a Turkish LoRA on top of VoxCPM2:

  • 2B base model plus a 36.2M-parameter LoRA, generating 48 kHz audio.
  • One designed female voice called f022. It was created from a text description in VoxCPM2, so it isn't a real person, and all of the training audio was synthetic too.
  • Six emotions plus laughter: angry, cheerful, sad, calm, empathetic, and surprised, steered with a short Turkish or English instruction like (Calm, slow and soothing.).
  • No reference clip needed. The voice lives inside the LoRA.

On the creator's own TR-Zor benchmark of 155 hard Turkish sentences, Ahenk scores a 2.54 word error rate against 3.98 for Trendyol-TTS. The card is honest about the trade-offs: it trails on predicted naturalness for long sentences (UTMOS 3.14 versus 3.73) and on speed, running slower than real time on an A100 80 GB (RTF 2.28).

Ahenk Cep, the pocket model

Ahenk Cep ("cep" means pocket) is a student model that learned the same f022 voice:

  • 8.6M parameters, 34 MB in fp32, built on the EMA Lightning architecture, with ONNX files included (fp16 and int8 too).
  • About 0.2 real-time factor on two CPU threads, so it speaks roughly five times faster than playback on an ordinary processor.
  • Seven styles: neutral, angry, calm, cheerful, empathetic, sad, and surprised. No laughter in this one.
  • Trained on one laptop GPU (an RTX 5060 with 8 GB), at a stated cost of $0.

In a blind listening round with one native listener, the big Ahenk won 8 of 10 sentences and Ahenk Cep won the other 2, both questions, beating the EMA Lightning and Antalia-2 Mini baselines.

The text normalizer

The quiet hero is trnorm, an Apache-2.0 Python normalizer in the Ahenk GitHub repo. It turns written Turkish into spoken form, so "99,99 TL" becomes "doksan dokuz lira doksan dokuz kuruş" and the suffixes still agree. It covers numbers, dates, times, money, percentages, abbreviations, and phone numbers, and it has no dependencies. The repo also includes the TR-Zor and TR-Soru benchmarks for anyone building Turkish speech.

Try It

The fastest test is the Ahenk Cep browser demo. The model runs on your device, so your text never goes to a server.

To run the CPU model locally:

pip install torch ema-lightning==1.1.2 "git+https://github.com/ozguradmin/ahenk-turkish-tts"

import sys
import soundfile as sf
from huggingface_hub import snapshot_download

d = snapshot_download("ozgurguler/ahenk-cep-tr", allow_patterns=["*.pt", "ahenk_cep.py"])
sys.path.insert(0, d)
from ahenk_cep import AhenkCep

tts = AhenkCep(f"{d}/student.pt", f"{d}/decoder.pt")  # CPU by default
audio, sr = tts.say("Randevunuz 14.10.2026 saat 09:30'da; ücret 1.250 TL.")
sf.write("randevu.wav", audio, sr)
audio, sr = tts.say("Ne kadar uğraştıysam da yetişemedim.", style="sad")
sf.write("uzgun.wav", audio, sr)

Feed it normal written Turkish. trnorm handles the conversion for you, so don't spell numbers out yourself. If you have a GPU and want the emotions and laughter, the big model's card has a say(text, "angry") helper that wraps VoxCPM2 with the LoRA.

My tip: questions that should rise at the end without "mı" ("Yarın geliyorsun?") don't rise in either model yet, so add "mı" when you want a clear question. And if your sentence starts with a "c" word, use a Turkish instruction rather than an English one, or the "c" may come out the English way.

Why It Matters for Makers

Most open TTS models treat Turkish as one language among dozens, and numbers and suffixes are where they stumble. Ahenk is the opposite: one language, done carefully, with the benchmarks and the normalizer published alongside the weights. The 34 MB model is the exciting part for app builders, since it means Turkish narration, game dialogue, or accessibility voices that run offline on ordinary hardware. The catch is that you get one voice, and the license asks for attribution. The card also asks you to label the output as AI-generated (it cites EU AI Act Article 50) and says there's no built-in watermark. If you want multilingual, directable open TTS instead, see our coverage of Fish Audio Drama 3's open weights.

Conclusion

Ahenk brings open, emotional Turkish speech in two sizes: a 2B VoxCPM2 LoRA with six emotions and laughter, and an 8.6M-parameter model that runs at about 0.2 real-time factor on a CPU, both CC BY 4.0. Open the browser demo, type a sentence with a price and a date in it, and listen to how cleanly it reads. Kulaklarınızın tadını çıkarın!

Original source:

https://huggingface.co/ozgurguler/ahenk-tts-tr

Small model: Ahenk Cep · Code: GitHub · Announcement:

—Anabel ♡