Open-source Text-to-Speech engine with streaming inference, low latency, modular architecture, and support for modern neural TTS models.
Python
3
4 commits
updated Jul 22, 2026
Bu proje, VoxCPM ve Trendyol TTS modelleri temel alınarak geliştirilmiş, düşük gecikmeli (low-latency) ve yüksek verimli (high-throughput) bir ses sentezleme sistemidir. Geleneksel TTS sistemlerinin aksine, metnin tamamının sentezlenmesini beklemeden ilk anlamlı cümleyi üretir üretmez akıtmaya (streaming) başlar.
VoxCPMEnginePool). Gelen istekler boştaki en uygun GPU'ya atanır.Sistemi en ufak ayrıntısına kadar eksiksiz kurmak için aşağıdaki adımları sırasıyla uygulayın:
Terminal (veya Komut İstemcisi / PowerShell) üzerinden projenin bulunduğu dizine gidin:
cd yol/TTS
Bağımlılıkların sisteminizdeki diğer projelerle çakışmaması için bir sanal ortam oluşturun ve aktifleştirin:
Windows için:
python -m venv venv
venv\Scripts\activate
Linux / macOS için:
python3 -m venv venv
source venv/bin/activate
Sistem, kurulum işlemlerini tek tıkla halledebilmeniz için setup_env.py adlı bir betik ile gelmektedir. Bu betiği çalıştırdığınızda şu adımlar otomatik olarak gerçekleşir:
requirements.txt içindeki temel bağımlılıklar (FastAPI, uvicorn, websockets, numpy, vb.) indirilir.VoxCPM motoru ve kendi bağımlılıkları yüklenir.Trendyol-TTS klasörüne indirilir (model.safetensors, audiovae.pth).Piper-TTS-Model klasörüne indirilir.Betiği çalıştırmak için şu komutu girin:
python setup_env.py
Not: İndirme işlemi internet hızınıza ve modellerin boyutuna (örn. Trendyol-TTS) bağlı olarak birkaç dakika sürebilir. Komut çıktısında
[+] Kurulum işlemleri tamamlandı!mesajını görmeden işlemi yarıda kesmeyin.
tts_config.json)Sisteminizin davranışını tts_config.json dosyası üzerinden en ince detayına kadar ayarlayabilirsiniz:
model_path: Kullanılacak TTS modelinin yerel dizini (Varsayılan: "./Trendyol-TTS").inference_timesteps: Sentezleme kalitesi ve hızı arasındaki dengeyi belirler (Varsayılan: 8).adaptive_timesteps: Metin uzunluğuna göre dinamik adım atılıp atılmayacağı.cfg_value: Modelin Classifier-Free Guidance değeri (Varsayılan: 2.8).chunk_duration_ms: İstemciye gönderilecek her bir ses paketinin milisaniye cinsinden süresi.output_format: Çıktı formatı, genellikle "pcm16_le" (16-bit PCM Little Endian).enable_lookbehind: Sentezleme akıcılığını artırmak için önceki sesi referans alma durumu.lookbehind_mode: Bağlantı noktası referans modu ("anchor" vb.).sentence_delimiters: Metni cümlelere ayırmak için kullanılan noktalama işaretleri (.?!…,;\n).flush_timeout_ms: Tam bir cümle oluşmadığında bile bekleyen metnin zorla sentezlenmesi için geçmesi gereken süre (ms).min_chars: Bir ses akışının başlaması için geçmesi gereken minimum karakter sayısı.voxcpm_gpu_ids: Modele ayrılacak GPU ID'leri dizisi (Örn: [0] veya birden fazla GPU için [0, 1]).use_torch_compile: PyTorch derlemesini aktifleştirerek performansı artırır (GPU gerektirir).piper_fallback_enabled: CPU fallback motorunun aktif olup olmayacağı (true/false).piper_fallback_queue_threshold: GPU kuyruğunda kaç istek biriktiğinde sistemin otomatik olarak Piper CPU motoruna döneceği (Varsayılan: 10).cors_allowed_origins, cors_allowed_methods, cors_allowed_headers) barındırır.Tüm kurulum ve yapılandırma adımlarından sonra servisi ayağa kaldırmak için ana dizindeyken şu komutu çalıştırın:
python -m service.main
Bu komut, yapılandırmanıza göre modelleri belleğe yükleyecek (GPU ve CPU) ve FastAPI & WebSocket sunucusunu başlatacaktır.
Servis ayağa kalktıktan sonra, WebSocket üzerinden asenkron metin gönderip, ses verisini stream (akış) olarak alabilirsiniz. Proje dizininde veya farklı bir projede örnek bir bağlantı için client.py dosyasını inceleyebilirsiniz.
Sistem, istemci ile Multiplexed WebSockets üzerinden konuşur:
PCM16 ses verisi taşır. Bu sayede iOS, Android, .NET veya Java gibi farklı istemciler bu byteları alıp doğrudan donanım ses kuyruğuna yazabilirler.Sistem mimarisi, kurumsal standartlarda OOP ve SOLID prensiplerine sadık kalınarak tasarlanmıştır. Geliştirdiğimiz özgün mimarinin detayları şunlardır:
streaming.py içindeki RingBuffer dinamik genişleme yapmaz, bellek adreslemesi baştan sabit yapılır. Head/Tail işaretçileri kaydırılarak tam olarak O(1) hızında bellek erişimi sunar.PCM16 Little-Endian dönüşümleri, ağır Python for döngülerinden arındırılarak NumPy tabanlı SIMD operasyonları ile donanım hızında (O(N) optimum) gerçekleştirilir.5'e kadar (veya daha fazla) GPU'yu yatay olarak yönetebilen Object Pool Pattern (VoxCPMEnginePool) uygulanmıştır. Gelen bir istek asenkron bir kuyruk (asyncio.Queue) üzerinden bekletilmeden boştaki uygun GPU'ya kilitlenir. Hiçbir istek birbirini bloke etmez.
Diyelim ki sistemde yüksek bir yük var, GPU'ların tamamı meşgul ve kuyruk konfigürasyondaki eşik değerini (piper_fallback_queue_threshold = 10) geçti. Bu durumda sistem, istek reddetmek yerine talebi eşzamanlı olarak CPU üzerinde çalışan ultra hızlı Piper TTS motoruna yönlendirir. İstemci bu yönlendirmeyi hissetmez ve sunucu her koşulda "hizmet kesintisi" (Denial of Service) olmadan çalışmaya devam eder.
Projeyi daha da ileriye taşımak için mimarimize eklenecek sıradaki özellikler şunlardır:
[!NOTE] Geliştirme Notu En yeni özellikler ve devam eden geliştirmeler için
devbranch'ini inceleyebilirsiniz. Deneysel değişiklikler ve yeni özellikler önce burada geliştirilip test edildikten sonramainbranch'ine aktarılır.
4 commits
Python
97.4%
HTML
2.6%
Open-source Text-to-Speech engine with streaming inference, low latency, modular architecture, and support for modern neural TTS models.
Python
3
4 commits
updated Jul 22, 2026
Bu proje, VoxCPM ve Trendyol TTS modelleri temel alınarak geliştirilmiş, düşük gecikmeli (low-latency) ve yüksek verimli (high-throughput) bir ses sentezleme sistemidir. Geleneksel TTS sistemlerinin aksine, metnin tamamının sentezlenmesini beklemeden ilk anlamlı cümleyi üretir üretmez akıtmaya (streaming) başlar.
VoxCPMEnginePool). Gelen istekler boştaki en uygun GPU'ya atanır.Sistemi en ufak ayrıntısına kadar eksiksiz kurmak için aşağıdaki adımları sırasıyla uygulayın:
Terminal (veya Komut İstemcisi / PowerShell) üzerinden projenin bulunduğu dizine gidin:
cd yol/TTS
Bağımlılıkların sisteminizdeki diğer projelerle çakışmaması için bir sanal ortam oluşturun ve aktifleştirin:
Windows için:
python -m venv venv
venv\Scripts\activate
Linux / macOS için:
python3 -m venv venv
source venv/bin/activate
Sistem, kurulum işlemlerini tek tıkla halledebilmeniz için setup_env.py adlı bir betik ile gelmektedir. Bu betiği çalıştırdığınızda şu adımlar otomatik olarak gerçekleşir:
requirements.txt içindeki temel bağımlılıklar (FastAPI, uvicorn, websockets, numpy, vb.) indirilir.VoxCPM motoru ve kendi bağımlılıkları yüklenir.Trendyol-TTS klasörüne indirilir (model.safetensors, audiovae.pth).Piper-TTS-Model klasörüne indirilir.Betiği çalıştırmak için şu komutu girin:
python setup_env.py
Not: İndirme işlemi internet hızınıza ve modellerin boyutuna (örn. Trendyol-TTS) bağlı olarak birkaç dakika sürebilir. Komut çıktısında
[+] Kurulum işlemleri tamamlandı!mesajını görmeden işlemi yarıda kesmeyin.
tts_config.json)Sisteminizin davranışını tts_config.json dosyası üzerinden en ince detayına kadar ayarlayabilirsiniz:
model_path: Kullanılacak TTS modelinin yerel dizini (Varsayılan: "./Trendyol-TTS").inference_timesteps: Sentezleme kalitesi ve hızı arasındaki dengeyi belirler (Varsayılan: 8).adaptive_timesteps: Metin uzunluğuna göre dinamik adım atılıp atılmayacağı.cfg_value: Modelin Classifier-Free Guidance değeri (Varsayılan: 2.8).chunk_duration_ms: İstemciye gönderilecek her bir ses paketinin milisaniye cinsinden süresi.output_format: Çıktı formatı, genellikle "pcm16_le" (16-bit PCM Little Endian).enable_lookbehind: Sentezleme akıcılığını artırmak için önceki sesi referans alma durumu.lookbehind_mode: Bağlantı noktası referans modu ("anchor" vb.).sentence_delimiters: Metni cümlelere ayırmak için kullanılan noktalama işaretleri (.?!…,;\n).flush_timeout_ms: Tam bir cümle oluşmadığında bile bekleyen metnin zorla sentezlenmesi için geçmesi gereken süre (ms).min_chars: Bir ses akışının başlaması için geçmesi gereken minimum karakter sayısı.voxcpm_gpu_ids: Modele ayrılacak GPU ID'leri dizisi (Örn: [0] veya birden fazla GPU için [0, 1]).use_torch_compile: PyTorch derlemesini aktifleştirerek performansı artırır (GPU gerektirir).piper_fallback_enabled: CPU fallback motorunun aktif olup olmayacağı (true/false).piper_fallback_queue_threshold: GPU kuyruğunda kaç istek biriktiğinde sistemin otomatik olarak Piper CPU motoruna döneceği (Varsayılan: 10).cors_allowed_origins, cors_allowed_methods, cors_allowed_headers) barındırır.Tüm kurulum ve yapılandırma adımlarından sonra servisi ayağa kaldırmak için ana dizindeyken şu komutu çalıştırın:
python -m service.main
Bu komut, yapılandırmanıza göre modelleri belleğe yükleyecek (GPU ve CPU) ve FastAPI & WebSocket sunucusunu başlatacaktır.
Servis ayağa kalktıktan sonra, WebSocket üzerinden asenkron metin gönderip, ses verisini stream (akış) olarak alabilirsiniz. Proje dizininde veya farklı bir projede örnek bir bağlantı için client.py dosyasını inceleyebilirsiniz.
Sistem, istemci ile Multiplexed WebSockets üzerinden konuşur:
PCM16 ses verisi taşır. Bu sayede iOS, Android, .NET veya Java gibi farklı istemciler bu byteları alıp doğrudan donanım ses kuyruğuna yazabilirler.Sistem mimarisi, kurumsal standartlarda OOP ve SOLID prensiplerine sadık kalınarak tasarlanmıştır. Geliştirdiğimiz özgün mimarinin detayları şunlardır:
streaming.py içindeki RingBuffer dinamik genişleme yapmaz, bellek adreslemesi baştan sabit yapılır. Head/Tail işaretçileri kaydırılarak tam olarak O(1) hızında bellek erişimi sunar.PCM16 Little-Endian dönüşümleri, ağır Python for döngülerinden arındırılarak NumPy tabanlı SIMD operasyonları ile donanım hızında (O(N) optimum) gerçekleştirilir.5'e kadar (veya daha fazla) GPU'yu yatay olarak yönetebilen Object Pool Pattern (VoxCPMEnginePool) uygulanmıştır. Gelen bir istek asenkron bir kuyruk (asyncio.Queue) üzerinden bekletilmeden boştaki uygun GPU'ya kilitlenir. Hiçbir istek birbirini bloke etmez.
Diyelim ki sistemde yüksek bir yük var, GPU'ların tamamı meşgul ve kuyruk konfigürasyondaki eşik değerini (piper_fallback_queue_threshold = 10) geçti. Bu durumda sistem, istek reddetmek yerine talebi eşzamanlı olarak CPU üzerinde çalışan ultra hızlı Piper TTS motoruna yönlendirir. İstemci bu yönlendirmeyi hissetmez ve sunucu her koşulda "hizmet kesintisi" (Denial of Service) olmadan çalışmaya devam eder.
Projeyi daha da ileriye taşımak için mimarimize eklenecek sıradaki özellikler şunlardır:
[!NOTE] Geliştirme Notu En yeni özellikler ve devam eden geliştirmeler için
devbranch'ini inceleyebilirsiniz. Deneysel değişiklikler ve yeni özellikler önce burada geliştirilip test edildikten sonramainbranch'ine aktarılır.
4 commits
Python
97.4%
HTML
2.6%