Kokoro ile Yerel, CPU Dostu ve Yüksek Kaliteli TTS (Metinden Sese) Geliştirme
İçindekiler
Giriş ve Yerel Ses Sentezi
Sadece birkaç yıl öncesine kadar, yerel donanımda çalışan gerçekçi metinden sese (TTS) sistemleri hayal bile edilemezdi. Bugün ise elde edilen ses kalitesi olağanüstü düzeyde olup, tamamen çevrimdışı çalışabilmesi veri gizliliğini korumaktadır. Yazılım geliştiriciler için bu, pahalı bulut API'lerine (OpenAI veya Google TTS gibi) bağımlı kalmadan projelerine yüksek kaliteli ses özellikleri entegre etme fırsatı sunar.
Ariya Hidayat'ın makalesindeki örnek çalışmada, ses sentezi tamamen CPU üzerinde gerçekleştirilmektedir. Geliştirme ortamında harici bir GPU (GTX 1080 Ti) bulunsa dahi, bu GPU tamamen LLM (Büyük Dil Modeli) çıkarımı için ayrılmış; TTS işlemi ise CPU tarafından üstlenilmiştir. Bu durum, donanım kaynaklarını optimize etmek isteyen yazılımcılar için mükemmel bir mimari yaklaşımdır.
Kokoro Modeli ve Kurulum
Sentez işleminde kullanılan model Kokoro'dur. Sadece 82 milyon (82M) parametreye sahip olmasına rağmen İngilizce, Mandarin ve Hintçe gibi dillerde son derece doğal konuşmalar üretebilir. Özellikle prototip geliştirmek ve yerel uygulamalara entegre etmek için harika bir seçenektir.
Bir Kokoro sunucusu kurmak oldukça kolaydır. En pratik yöntem, hazır ses modellerini barındıran ve Docker/Podman ile çalıştırılabilen Kokoro-FastAPI konteynerini kullanmaktır.
Sunucuyu başlatmak için aşağıdaki Docker/Podman komutunu çalıştırabilirsiniz:
podman run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu
Sistemin çalıştığını doğrulamak için tarayıcınızdan localhost:8880/web adresine giderek basit web arayüzünü test edebilirsiniz.
API Entegrasyonu ve Kod Örnekleri
Bu konteyner, OpenAI TTS API'si ile tamamen uyumlu bir uç nokta sunar. Mevcut kodlarınızı neredeyse hiç değiştirmeden yerel sunucunuza yönlendirebilirsiniz. github.com/remotebrowser/speak deposunu klonlayarak hızlıca test edebilirsiniz.
JavaScript ile çalıştırmak için:
export TTS_API_BASE_URL=http://127.0.0.1:8880/v1
./speak.js "Good morning! How are you today?"
Python ile çalıştırmak için:
export TTS_API_BASE_URL=http://127.0.0.1:8880/v1
./speak.py "Good morning! How are you today?"
Oluşturulan ses dosyası MP3 olarak kaydedilir. TTS_VOICE ortam değişkeniyle farklı bir ses profili seçmek de oldukça kolaydır:
export TTS_API_BASE_URL=http://127.0.0.1:8880/v1
export TTS_VOICE="am_eric"
./speak.js "Good morning! How are you today?"
Kullanılabilir tüm seslerin listesine Hugging Face üzerindeki resmi Kokoro sayfasından erişebilirsiniz.
Performans Analizi ve Sonuçlar
Modelin performansını ölçmek amacıyla kısa bir paragraf üzerinde testler yapılmıştır:
Jupiter is the largest and most massive planet in our solar system. This gas giant, made mostly of hydrogen and helium, is known for its Great Red Spot—a massive storm observed for centuries.
Farklı CPU mimarilerinde elde edilen sentez süreleri şu şekildedir:
- Intel Core i7-4770K: 4.7 saniye
- Apple M2 Pro: 4.5 saniye
- AMD Ryzen 7 8745HS: 1.5 saniye
Listede yer alan ilk işlemcinin 12 yıllık olduğu düşünüldüğünde, Kokoro'nun eski donanımlarda bile ne kadar verimli çalıştığı görülüyor. Geliştiriciler açısından bu, düşük maliyetli sunucularda veya uç (edge) cihazlarda bile yüksek kaliteli ses sistemleri çalıştırılabileceğini kanıtlar.
Alternatif bir çözüm olarak hem OpenAI uyumlu TTS hem de Whisper (STT) modelini içeren Speaches (speaches.ai) tercih edilebilir. Speaches, çift yönlü ses projelerinde tek noktadan çözüm sağlar.
Bu tür yerel TTS çözümlerini yerel LLM'lerle entegre etmek, uygulamalarınızda kullanıcı deneyimini zenginleştirerek metinleri okumak yerine dinleme imkanı sunar.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →