Skip to main content

seslen-tts

English: An open Turkish text-to-speech model that runs on CPU, without PyTorch and without internet: 6 voices × 9 emotions, correct Turkish lexical stress and question intonation, automatic emotion per sentence and reading style per text. ONNX Runtime only (~330 MB model, downloaded from Hugging Face on first use). Real-time factor ≈ 0.2–0.4 on a laptop CPU.

İşlemcide çalışan, duygulu, vurguyu bilen açık Türkçe ses modeli. GPU, internet ve PyTorch gerekmez.

from seslen_tts import Seslen, wav_yaz

s = Seslen()                                    # model ilk kullanımda Hugging Face'ten iner (~330 MB)
wav_yaz("merhaba.wav", s.tum("Merhaba! Yarın bize gelecek misiniz? Dikkat edin, yol kaygan.", ses="zeynep"))
seslen-tts "Bir varmış bir yokmuş, ormanda meraklı bir sincap yaşarmış." -s ayse -o masal.wav
seslen-tts --sesler

Neler yapar

  • 6 ses, 9 duygu: nötr, neşeli, heyecan, uyarı, merak, özür, üzgün, kızgın, fısıltı.
  • Türkçe vurgu doğru okunur: "ANkara", "geLİyor", "GELmedi". Okunuş turkce-vurgu ile çıkarılır; sayılar, tarihler, saatler, para ve kısaltmalar turkce-normalize ile okunur hâle gelir ("14:30'da" → "on dört otuzda").
  • Soru ezgisi: evet/hayır sorusunda ezgi soru ekinden önceki sözcüğün vurgulu hecesinde yükselir ("yardımcı olaBİLİR misin?").
  • Otomatik duygu: her cümlenin tonu metinden seçilir: soru merakla, uyarı uyarıyla, sevinç neşeyle okunur. turkce-duygu gerekir (pip install "seslen-tts[duygu]").
  • Otomatik üslup: haber tempolu ve düz, masal yavaş ve hareketli, tarif adım adım okunur. turkce-uslup gerekir (pip install "seslen-tts[uslup]").

Kurulum

pip install seslen-tts               # temel: sesler, vurgu, soru ezgisi
pip install "seslen-tts[hepsi]"      # + otomatik duygu ve üslup

Python 3.9+, Windows / Linux / macOS. Model SESLEN_TTS_MODEL ortam değişkeniyle yerel bir klasörden de okunur.

Sesler

Ses Kim Doğallık (UTMOS)
ayse olgun kadın (~45), orta-kalın, güven veren 4,04
zeynep genç kız (~17), ince, canlı 3,95
koca iri kalın dev, gürleyen ama sevimli (çizgi karakter) 3,90
fatma yaşlı kadın (~70), ince, şefkatli nine 3,53
emre genç erkek (~18), orta, enerjik 2,93
hasan yaşlı erkek (~72), kalın, bilge dede 2,78

Örnek sesler: Hugging Face model sayfası.

Kullanım

s = Seslen()
for p in s.seslendir(metin, ses="emre", ton="otomatik", uslup="otomatik"):   # cümle cümle, akış hâlinde
    print(p.ton, p.cumle)            # p.ses: 24 kHz float32 dizi; p.sessizlik_ms: sonraki duraklama

s.tum(metin, ses="fatma", ton="uzgun")        # bütün metin tek tonda
s.tum(metin, ses="hasan", hiz=0.9, perde=1.05) # hız ve ses perdesi
s.tum(metin, ses="zeynep", ton="neseli", yogunluk=0.6)   # duygu şiddeti (0-1, 1 = tam ton)

Alt düzey: s.model.konus(cumle, s.model.stil("ayse", "merak")) tek cümleyi seslendirir.

Ölçümler

  • Anlaşılırlık (Whisper medium, 6 ses × 4 yeni cümle): %100. Whisper sayıları rakamla yazdığı için ("onda" → "10'da") ham ölçüm %93,2 görünür.
  • Doğallık: UTMOS 2,8–4,0 (tablo). UTMOS İngilizce dinleyicilerle eğitildi; Türkçe vurguyu yargılayamaz, yapaylığı yakalar.
  • Hız (i7-12700H, 6 iş parçacığı): gerçek zaman oranı ≈ 0,2–0,4. Yani 5 saniyelik cümle 1–2 saniyede üretilir. Windows'un arka plan süreçlerine uyguladığı enerji kısıtı paket tarafından kapatılır (yoksa 4–5 kat yavaşlıyordu).

Nasıl yapıldı

StyleTTS2 (iSTFTNet çözücü) öğrenci modeli. Ses ve duygu verisini öğretmen model VoxCPM2 üretti: sesler tariften tasarlandı, gerçek bir kişinin sesi değildir. Eğitim üç aşamalıdır: temel, difüzyon ve çekişmeli ince ayar, son olarak vurgu işaretli okunuş ile Türkçe PL-BERT. Eğitim tek RTX 4090'da yapıldı. Ağlar ONNX'e aktarıldı; aktarımın sesi değiştirmediği sınandı (log-mel farkı, modelin kendi iki çalıştırması arasındaki farkın altında).

Sınırlılıklar

  • Ses klonlama yok. Bu bilerek böyle: açık modelle başkasının sesini taklit etmek mümkün olmasın diye yalnız hazır sesler var.
  • Yalnız Türkçe. Yabancı sözcükler Türkçe okunuşla okunur.
  • Uzun yabancı adlarda, kısaltma yığınlarında ve çok uzun cümlelerde okunuş hataları olabilir.
  • Duygular seslere göre farklı belirginliktedir (ölçülenler arasında en belirgin: Ayşe ve Zeynep).

Lisans ve kullanım koşulları

  • Kod: MIT (LICENSE).
  • Model ağırlıkları ve sesler: CC BY-SA 4.0. Türkçe PL-BERT Vikipedi metniyle eğitildi; öğretmen VoxCPM2 Apache-2.0, StyleTTS2 MIT.
  • Kullanım koşulu (öğretmen modelin ve StyleTTS2'nin koşullarından):
    • Üretilen sesin yapay zekâ sesi olduğu dinleyiciye belirtilmelidir.
    • Gerçek bir kişiyi taklit etmek, dolandırıcılık ve dezenformasyon için kullanmak yasaktır.

Ticari ürün sesleri, özel ses tasarımı, stüdyo arayüzü ve kurum içi kurulum: Seslen (iletişim).

Kardeş projeler

turkce-normalize · turkce-vurgu · turkce-duygu · turkce-uslup · turkce-plbert · turkce-tts-sinav

Metadata

Release files for seslen-tts 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for seslen-tts 0.1.0
File Size Uploaded
seslen_tts-0.1.0.tar.gz 15.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for seslen-tts 0.1.0
File Interpreter ABI Platform
seslen_tts-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.7 kB

Release files / seslen_tts-0.1.0.tar.gz

Download URL seslen_tts-0.1.0.tar.gz
Size 15.5 kB
Tags Source
SHA-256 checksum
How to use checksums
532bb2d65c5cea152d46d60a78a8b7553c9e71fb78bc9d436f0dc14408504584
BLAKE2b-256 checksum
How to use checksums
afc03ecd27cedd719dd44912c568c7498b18668345f2720f1636b85546536c6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / seslen_tts-0.1.0-py3-none-any.whl

Download URL seslen_tts-0.1.0-py3-none-any.whl
Size 13.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c11a538559ac6700f2ee7537a50b9c5382aaefaf8cde99098e04a0aea62cb13b
BLAKE2b-256 checksum
How to use checksums
96778282b87c2502189639f795aceee1dc8d0b2b366ffedf9c94e32388281d5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page