# ses-tasarimi

Adopt this skill: https://proskills.md/skills/other/alexturkey-voxcpm2-turkce-ses-tasarimi-claude-skills-ses-tasarimi

Page: https://proskills.md/skills/other/alexturkey-voxcpm2-turkce-ses-tasarimi-claude-skills-ses-tasarimi
This document is the public skill bundle for that page. It contains SKILL.md and every helper file the catalog carries. No login is required.

## File: .claude/skills/ses-tasarimi/SKILL.md
size: 8457
sha: 2607829ceffe6065d935ba1c5fa3df66d83c7a6d
upstream: https://github.com/alexturkey/voxcpm2-turkce-ses-tasarimi/blob/main/.claude/skills/ses-tasarimi/SKILL.md

````text
---
name: ses-tasarimi
description: "Design a new synthetic voice with VoxCPM2 in this repo and read long text with it consistently, in any of the 30 VoxCPM2 languages (all tested; bundled voices: tr, en, fr, de, es, ru, zh, ja): the user describes the voice, the skill writes the English voice prompt and the design text, designs several variants (one seed each), lets the user listen to each variant reading real text with its own reference and seed, fixes the chosen one, then reads long text sentence by sentence. Use when the user says 'design a voice', 'new voice', 'narrator voice', 'ses tasarla', 'yeni ses', 'şöyle bir ses istiyorum', 'read this text', 'seslendir', or asks for a voice in another language."
---

# Ses tasarımı / Voice design (VoxCPM2, 30 languages)

Türkçe özet aşağıda. / Turkish summary below.

This skill drives the repo's own code: `ses_tasarim/tasarla.py` (design), `ses_tasarim/oku.py` (reference-based
reading), `ses_tasarim/okunus.py` (text preparation per language). Install first (`AGENTS.md`); every command below
needs a working `ayarlar.json`. Quality is fixed: 16 steps, cfg 2.0 (`motor.FIXED`); never lower it, never suggest
another model. Run one GPU job at a time. Voices are synthetic: do not imitate a real, identifiable person (`ETHICS.md`).

## Why this flow

The voice is carried by a **reference recording**, not by the description. A design run turns the description into a
short recording; every later reading gives the engine that recording (as `audio` and `voice_ref`), its exact transcript
(`reference_text`) and the variant's own seed. Same reference + same seed + same transcript = the same timbre and
style every time. VoxCPM2 is not stable for one long generation (roughly above 30 seconds): rhythm speeds up and the
voice can drift. So long text is always read **one sentence per line**; each line is a short generation with the same
reference and seed, and the voice stays consistent from the first line to the last.

## Steps

1. **Ask and write the form.** The user describes the voice in their own words (who, age, gender, tone, pace, use).
   First look for a close example: `python -m ses_tasarim.ornekler --dil <code> --tam` (144 examples, 18 roles × 8
   languages, `docs/ornek_tarifler.md`). If one fits, start from it (`--ornek <id>` fills prompt, text, language and
   name) and only change what the user asked for. Otherwise write:
   - `tarif`: the voice prompt, **always in English**, short, no parentheses (the engine treats `(` as the prompt
     boundary). Main axes: gender, age, nationality/native accent, tone, emotion, pace, recording quality. Example used
     for our French narrator: `A deep-voiced French man in his fifties, native French speaker from Paris with a natural
     Parisian accent, calm, warm and soulful documentary storytelling, unhurried pace, rich resonant voice, close-mic
     clean studio recording, no background noise`. For a non-Turkish voice name the native speaker and city/accent.
   - `metin`: the design text, **in the voice's own language**, one or two natural sentences in the voice's role,
     no digits (write numbers as words). Turkish: no quotes or apostrophes. Aim for 8-30 seconds of speech; the result
     becomes the reference recording.
   - `dil`: language code (`tr en fr de es ru zh ja`).
   - Ask how many variants (default 3; each variant = its own random seed).
   Show the prompt and text to the user before running.
2. **Design the variants** (one seed each):
   ```
   python -m ses_tasarim.tasarla --ad <name> --dil <code> --tarif @tarif.txt --metin @metin.txt --cesit 3
   ```
   Output: `sesler/<name>/cesit_NN/{referans.wav, ses.json}`; the card stores prompt, transcript, seed and `dil`.
3. **Reference-based audition.** Do not choose by the design recordings alone. For every variant read 3-5 sentences
   of the user's **real text**, exactly as production will, with that variant's own reference and seed:
   ```
   python -m ses_tasarim.oku --ses <name>/1 --metin @deneme.txt --cikti cikti/deneme_1
   python -m ses_tasarim.oku --ses <name>/2 --metin @deneme.txt --cikti cikti/deneme_2
   ```
   Give the user the `okuma.wav` files, numbered by variant. Lesson from our Spanish narrator: a variant whose
   reference had extra sound at its end read long text badly, though its design recording sounded fine; only the
   reference-based audition showed it.
4. **The user picks one.** That variant (reference + seed + prompt + transcript in its `ses.json`) is now fixed. Do not
   redesign it, do not change its seed; reading always uses `okuma_tohumu` from the card. To keep it, leave the folder
   as is or copy it next to `hazir_sesler/` voices.
5. **Read long text sentence by sentence.** One sentence per line; `|| paragraf` at the end of a line = longer pause.
   ```
   python -m ses_tasarim.oku --ses <name>/<variant> --metin @metin.txt --cikti cikti/okuma
   ```
   `--dil` is taken from the voice card; give it only to override. If the run prints `hız kapısı / speed gate: satır
   [...]`, listen to those lines: their characters-per-second is far from the median (cut, stretched or padded).
   Shorten or reword the line and read again.

## Per-language notes

- Turkish (`tr`): the pronunciation dictionary `ayarlar/okunus_sozlugu.tsv` and Turkish quote/apostrophe rules apply.
- Other languages: the Turkish dictionary is **not** applied (it would damage foreign words); apostrophes stay
  (`l'eau`, `don't`); double quotes are removed; digits are rejected (write numbers as words in that language).
- Chinese and Japanese: one sentence per line works the same; full-width punctuation is fine.
- Video subtitles in Cyrillic or CJK need a font that has those glyphs (we used Forum for Cyrillic, Noto Serif SC/JP
  for Chinese/Japanese).
- Ready-made voices to start from: `hazir_sesler/anlatici_<code>` (en fr de es ru zh ja) and the Turkish voices.

## Do not

- Do not read a long text as one block. Do not lower steps/cfg. Do not give a reading seed other than the card's.
- Do not clone a real person's voice through this skill; cloning is the separate, consent-gated `klonla` section.

---

## Türkçe

Bu beceri repodaki kodu kullanır: `ses_tasarim/tasarla.py` (tasarım), `ses_tasarim/oku.py` (referanslı okuma),
`ses_tasarim/okunus.py` (dile göre metin hazırlığı). Kalite sabit: 16 adım, cfg 2.0; düşürülmez, başka model önerilmez.

Neden böyle: sesi tarif değil **referans kayıt** taşır. Tasarım, tarifi kısa bir kayda çevirir; sonraki her okumada
motora bu kayıt, birebir metni ve çeşidin kendi tohumu verilir; aynı referans + aynı tohum = her seferinde aynı tını ve
tarz. VoxCPM2 tek seferde uzun üretimde (yaklaşık 30 saniye üstü) kararlı değildir; bu yüzden uzun metin **cümle cümle**
okunur ve ses ilk satırdan son satıra kadar tutarlı kalır.

1. **Tarif al, formu yaz.** Kullanıcı sesi kendi sözleriyle anlatır. Önce yakın bir örnek aranır:
   `python -m ses_tasarim.ornekler --dil <kod> --tam` (144 örnek, `docs/ornek_tarifler.md`); uyan varsa `--ornek <id>`
   ile ondan başlanır, yalnız kullanıcının istediği değiştirilir. Yoksa beceri yazar: İngilizce ses yaratıcı istem
   (`--tarif`, parantezsiz, kısa; yabancı dilde yerli konuşan ve şehir/aksan yazılır), sesin kendi dilinde tasarım
   metni (`--metin`, rakamsız, 8-30 sn), dil kodu (`--dil`). Çeşit sayısını sorar (varsayılan 3).
2. **Çeşitleri tasarla:** her çeşit kendi tohumuyla (`python -m ses_tasarim.tasarla ... --dil <kod> --cesit 3`).
3. **Referanslı dinletme:** her çeşide gerçek metinden 3-5 cümle, üretimdeki gibi kendi referansı ve tohumuyla okutulur
   (`python -m ses_tasarim.oku --ses <ad>/<çeşit> ...`), numaralı olarak dinletilir. Ders (İspanyolca anlatıcı):
   referans kaydının sonunda fazladan ses olan çeşit uzun okumada bozuldu; bunu yalnız referanslı dinletme gösterdi.
4. **Kullanıcı birini seçer.** O çeşit (referans + tohum + istem + metin) sabittir; yeniden tasarlanmaz, tohumu
   değişmez.
5. **Uzun metin cümle cümle:** satır = cümle; `|| paragraf` uzun durak. Çıktıda "hız kapısı" satırı çıkarsa o
   satırları dinle, kısalt ya da yeniden yaz.

Dil notları: Türkçede okunuş sözlüğü uygulanır; başka dillerde uygulanmaz, kesme işareti kalır, rakam yazıyla
yazılır. Hazır başlangıç sesleri: `hazir_sesler/anlatici_<kod>` ve Türkçe sesler.
````

## File: README.md
upstream: https://github.com/alexturkey/voxcpm2-turkce-ses-tasarimi/blob/main/README.md

````text
# voxcpm2-turkce-ses-tasarimi

**Turkish voice design with VoxCPM2 on a 4 GB GPU.** Describe a voice in English, let the model create it, pick the
variant you like, then read any Turkish text with that voice. Includes a one-command installer, a patched
[audio.cpp](https://github.com/0xShug0/audio.cpp) engine that fits a GTX 1050 Ti (4 GB), a tiny local web UI and fourteen
ready-made synthetic voices: seven Turkish and seven native narrators in English, French, German, Spanish,
Russian, Chinese and Japanese.

- The app reads in 30 languages; the interface is in 30 languages too.
- 14 ready-made voices: 7 Turkish, plus one each in English, French, German, Spanish, Russian, Chinese and Japanese.

[Türkçe README](README.tr.md) · [How it fits in 4 GB](docs/4gb.md) · [Ubuntu / Linux](docs/linux.md) · [macOS](docs/mac.md) · [Install guide for AI agents](AGENTS.md) · [Responsible use](ETHICS.md)

> The bundled voices are synthetic, designed from a text description. The voice cloning section is only for your own
> voice or a voice used with its owner's explicit permission; the UI asks you to confirm that permission. Impersonation,
> fraud and deception are prohibited. Label what you generate as AI-generated. See [ETHICS.md](ETHICS.md).

## 30 languages

We made one Cappadocia documentary video in 8 languages: Turkish, English, French, German, Spanish, Russian, Chinese
and Japanese. Each language has its own **native narrator**, designed with VoxCPM2 from an English description. All of
it was generated fully locally on a 4 GB GTX 1050 Ti, with the same fixed quality (16 steps, cfg 2.0). The seven
narrators are bundled here, with their prompt, design text, seed and reference recording.

| Code | Language | Voice | Listen | Video |
|---|---|---|---|---|
| `tr` | Turkish | `hazir/belgesel_hanim` (and 6 more) | [sample](hazir_sesler/belgesel_hanim/ornek_okuma.mp3) | |
| `en` | English | `hazir/anlatici_en` | [sample](hazir_sesler/anlatici_en/ornek_okuma.mp3) | [video](https://x.com/i/status/2113791986763440439) |
| `fr` | French | `hazir/anlatici_fr` | [sample](hazir_sesler/anlatici_fr/ornek_okuma.mp3) | [video](https://x.com/i/status/2113790681575804962) |
| `de` | German | `hazir/anlatici_de` | [sample](hazir_sesler/anlatici_de/ornek_okuma.mp3) | [video](https://x.com/i/status/2113791351645262249) |
| `es` | Spanish | `hazir/anlatici_es` | [sample](hazir_sesler/anlatici_es/ornek_okuma.mp3) | [video](https://x.com/i/status/2113807365611122705) |
| `ru` | Russian | `hazir/anlatici_ru` | [sample](hazir_sesler/anlatici_ru/ornek_okuma.mp3) | [video](https://x.com/i/status/2113801574136848884) |
| `zh` | Chinese (Mandarin) | `hazir/anlatici_zh` | [sample](hazir_sesler/anlatici_zh/ornek_okuma.mp3) | [video](https://x.com/i/status/2113802229606121794) |
| `ja` | Japanese | `hazir/anlatici_ja` | [sample](hazir_sesler/anlatici_ja/ornek_okuma.mp3) | [video](https://x.com/i/status/2113800742100176923) |

```powershell
# the language is detected from the text (voice card if unsure); --dil is optional
.venv\Scripts\python.exe -m ses_tasarim.oku --ses hazir/anlatici_fr --metin @hazir_sesler/anlatici_fr/ornek_okuma_metni.txt --cikti cikti\fr
.venv\Scripts\python.exe -m ses_tasarim.oku --ses hazir/anlatici_ja --metin @text_ja.txt --cikti cikti\ja
# design a voice in another language: English prompt, design text in that language
.venv\Scripts\python.exe -m ses_tasarim.tasarla --ad narrator_es --dil es --cesit 3 --tarif "A deep-voiced Spanish man ..." --metin @texto.txt
```

**Why sentence by sentence.** VoxCPM2 is not stable for a single long generation (roughly above 30 seconds): the rhythm
speeds up and the voice can drift. Here the voice is carried by a fixed reference recording and seed, and long text is
read one sentence per line, so timbre and style stay the same from the first sentence to the last. For languages other
than Turkish the Turkish pronunciation dictionary is not applied. All 30 languages VoxCPM2 supports were tested and work; use
`--dil <code>` for the ones without a bundled voice. Per-language commands and the lessons we learned:
[docs/cok_dilli.md](docs/cok_dilli.md). Claude Code skill for the whole design flow:
[.claude/skills/ses-tasarimi/SKILL.md](.claude/skills/ses-tasarimi/SKILL.md).

**144 example prompts to start from.** 18 roles (documentary narrator, news anchor, commercial voice, audiobook,
grandmother storyteller, podcast host, teacher, movie trailer, meditation guide, sports commentator and more, male and
female) in each of the 8 languages. The prompt is English with the speaker's nationality and native accent; the text
read while the voice is created comes with it, in that language and matched to the role. Pick one, listen to the
variants, keep the one you like: `python -m ses_tasarim.tasarla --ornek fr_sesli_kitap_kadin --cesit 3`, or choose
*Example prompt* in the web UI. Full list: [docs/ornek_tarifler.md](docs/ornek_tarifler.md).

**Dub your videos with your own voice.** [DubWorld](https://github.com/alexturkey/dubworld) is our local video dubbing
program; it installs this repository as its VoxCPM2 voice engine. A voice you design here is used there with
`ses.voxcpm2_ses = "<name>/<variant>"`.

## Quick start (Windows, 3 steps)

1. **Download** the code: [voxcpm2-turkce-ses-tasarimi-main.zip](https://github.com/alexturkey/voxcpm2-turkce-ses-tasarimi/archive/refs/heads/main.zip).
   The ready-made engine package for your card is fetched by the installer in step 3:
   NVIDIA → [CUDA package](https://github.com/alexturkey/voxcpm2-turkce-ses-tasarimi/releases/download/v0.1.1/voxcpm2-turkce-ses-tasarimi-motor-v0.1.1-win64-cuda12.8.zip),
   AMD / Intel → [Vulkan package, experimental](https://github.com/alexturkey/voxcpm2-turkce-ses-tasarimi/releases/download/v0.1.1/voxcpm2-turkce-ses-tasarimi-motor-v0.1.1-win64-vulkan.zip)
   (already downloaded one? add `-HazirZip <path to the zip>` to the command below).
2. **Extract** the zip, open the `voxcpm2-turkce-ses-tasarimi-main` folder, type `powershell` in the Explorer address
   bar and press Enter.
3. **Run** the installer (needs 64-bit Python 3.10–3.13; NVIDIA driver ≥ 570 for CUDA), then double-click **`baslat.bat`**:
   ```powershell
   powershell -NoProfile -ExecutionPolicy Bypass -File scripts\kur.ps1 -Kok C:\vox
   ```
   AMD / Intel: add `-Vulkan` at the end. The UI opens at http://127.0.0.1:8765/.

The engine zip is not a standalone app (its exe needs the model and DLLs that the installer sets up). Details, GPU
list and common problems: "Quick install" below.

## Ubuntu / Linux (NVIDIA CUDA, experimental)

Build the patched engine with `bash scripts/kur-linux.sh`, or use `Dockerfile.linux` to build and run in an
Ubuntu 24.04 / CUDA 12.8.1 environment. Requires an NVIDIA GPU and a compatible driver; the native installer also
needs the CUDA toolkit and Python 3.10–3.13. The UI stays loopback-only, including on remote servers (SSH forwarding).
Prerequisites, commands, architecture selection and validation scope: [docs/linux.md](docs/linux.md).

## Quick start (macOS, Apple Silicon)

Needs Xcode Command Line Tools (`xcode-select --install`) and [Homebrew](https://brew.sh):
```bash
brew install cmake python@3.12
git clone https://github.com/alexturkey/voxcpm2-turkce-ses-tasarimi.git
cd voxcpm2-turkce-ses-tasarimi
bash scripts/kur.sh
```
The installer downloads the model, builds the patched engine with Metal (~1 min) and sets everything up under `~/vox`.
Then double-click **`baslat.command`**. On a MacBook Air M4 16 GB: ~2 s of compute per 1 s of speech, same seed gives
byte-identical audio, peak ~5.3 GB RAM, no thermal slowdown over 12 min of continuous reading. Details and
measurements: [docs/mac.md](docs/mac.md).

**Native Mac app (no Python, Homebrew or Terminal):** [macos/README.md](macos/README.md). It bundles the same
patched engine and downloads the model on first launch; for now it is built from source with Xcode.

## For Mac (Apple Silicon) users

There is also an independent, community
````
