Ali Can GündüzAI · LLMs · Inference
  • About
  • Projects
  • Talks
  • Blog
  • Places I Work
Say hi
Ali Can GündüzAli Can GündüzAI · LLMs · Inference
All projects

Project · Text-to-speech · October 2026~/projects/nefes

NefesNefes 0.50.5

Expressive Turkish text-to-speech that laughs, sighs and whispers on cue.

PreviewApache 2.0TurkishPythonVoxCPM2
Model card 36Walkthrough, narrated by Nefes

~/projects/nefes

Nefes 0.5 logo

01

Listen

  • [gül]

    laughs, then keeps talking in the same voice

  • [iç çek]

    sighs or takes a deep breath, then continues

  • [fısılda]

    whispers the following text

  1. Kahveyi yine dökmüşüm. [gül] Bugün benim günüm değil galiba.

    0:06
  2. Sabahtan beri bu raporla uğraşıyorum. [iç çek] Bitmek bilmiyor.

    0:06
  3. [fısılda] Kimseye söyleme ama bu akşam sana bir sürprizim var.

    0:05
  4. [gül] Bunu gerçekten sen mi yaptın? Harika olmuş!

    0:04
  5. [gül] Tamam, tamam, kabul ediyorum, haklıydın. [iç çek] Ama bir dahaki sefere beni de dinle.

    0:10

Every sample is an automatic output, with no manual editing.

02

Why

Open Turkish text-to-speech reads correctly, but like a news anchor: no laughter, no sighs, no whispers. Open models that can laugh speak English only, and the services that do both are closed, paid cloud APIs.

The root cause is data: there is no open, licensed dataset of expressive Turkish speech to train on. Nefes 0.5 sidesteps that gap without training anything. It borrows a real laugh, sigh or whisper from an English expressive model and lets a Turkish-capable model continue from it, in one consistent voice, exactly where you put the tag.

Good for
Voice-overs for videos and ads, game and story characters, audiobooks and podcasts, and expressive Turkish speech for research.
Not for
Real-time assistants: it is slow by design.

03

How it works

Training-free: no model weights are trained or changed. Nefes steers open models at inference time.

  1. 01Text with tags

    Write a tag where the emotion should happen.

  2. 02Segments

    The text is split at each tag; a tag becomes a short real clip from an 18-clip nonverbal bank, generated once with Maya1 and approved by ear.

  3. 03Chained generation ×6

    VoxCPM2 continues in Turkish from the audio right before it, so the laugh is real and the voice stays the same. A lookahead cut keeps natural intonation before each tag.

  4. 04Rerank

    Six candidates are scored for voice similarity (WavLM-SV), intelligibility (Whisper) and naturalness (a small preference model trained on my own listening ratings).

  5. 05Best take

    The highest-scoring candidate is returned: 48 kHz mono audio.

04

Results

voice similarity, 9/10 sentences ≥ 0.80 (WavLM-SV)
0.86
word error rate, 6/10 sentences at 0% (Whisper large-v3)
11%
per 6-second sentence, best of 6
≈30 s
peak GPU memory
14.9 GB

Measured on 10 unseen sentences never used for tuning, default settings, best of 6 picked automatically, no cherry-picking. WER covers the whole utterance, so a laugh Whisper transcribes as a word counts as an error. Weakest case: a whisper starting mid-sentence (50% WER).

05

Built on

  • VoxCPM2speech generation
  • Whisper large-v3word timing and intelligibility
  • WavLM-SVvoice similarity
  • Maya1nonverbal prompt bank, offline only

06

Try it

$ pip install git+https://huggingface.co/alicangunduz/nefes-0.5$ nefes "Kahveyi yine dökmüşüm. [gül] Bugün benim günüm değil galiba." -o out.wav

Needs: NVIDIA GPU with ~16 GB VRAM, Python ≥ 3.10

07

Roadmap

  1. Nefes 0.5preview

    Training-free system

  2. Nefes 1upcoming

    Open-weight model distilled from Nefes 0.5: one pass, no extra models

  3. Nefes 2+planned

    More emotions and voices

08

Limits

  • Turkish only, one voice, three tags.
  • Whispering is the weakest tag: the voice can drift slightly.
  • Slow by design: quality comes from trying several takes.
  • Long paragraphs need splitting into sentences.

Responsible useThe Nefes voice is synthetic, designed with Maya1, and belongs to no real person. No recorded human speech is included, and there is no voice cloning, by design.