Colab uretim hatti: reading-library belgelerini Step-Audio-EditX ile seslendirir. Whisper ile kalite denetimi, kendi kendini onaran CUDA/bagimlilik kurulumu, Drive'a yazip kaldigi yerden devam etme.
0
stars
11
commits
Python
primary language
Aug 5, 2026
updated
adzetto/reading-library belgelerini
Step-Audio-EditX ile seslendiren, Google Colab için tasarlanmış üretim hattı.
Tek dosya, sıfır kurulum: bağımlılıkları, CUDA kütüphanelerini ve model indirmelerini kendisi halleder; çıktıyı Google Drive'a yazdığı için oturum koparsa kaldığı yerden devam eder.
Yeni bir hücreye yapıştır, çalıştır:
import os, subprocess; os.environ["TTS_DOC_ID"] = "aesop-fables"; subprocess.run("rm -rf /content/rltts && git clone -q https://github.com/adzetto/reading-library-tts /content/rltts", shell=True, check=True); exec(open("/content/rltts/colab_tts_pipeline.py", encoding="utf-8").read())
Her çalıştırmada depoyu silip yeniden klonlar, yani her zaman en güncel sürümü çalıştırır.
Ayarları os.environ["TTS_..."] ile geçebilirsin:
os.environ["TTS_DOC_ID"] = "*" # depodaki TÜM belgeler
os.environ["TTS_SMOKE_TEST"] = "3" # sadece ilk 3 parça (deneme koşusu)
os.environ["TTS_STEP_MOTOR"] = "transformers" # vllm'i hiç deneme
os.environ["TTS_KALITE_ASR_MODEL"] = "small" # daha hızlı kalite denetimi
Yerelde / terminalde CLI de var:
python colab_tts_pipeline.py --doc_id "*" --drive_modu output
python colab_tts_pipeline.py --kuru_kosu # model yüklemeden doğrulama
Step-Audio-EditX gövde metninde iyi çalışıyor ama noktalamasız kısa başlıklarda durma işareti bulamayıp token tavanına kadar uyduruyor. Kalite kapısı bu parçaları zaten tespit ettiği için, yalnızca onları ElevenLabs'e devrediyoruz:
| karakter | |
|---|---|
| Tüm kütüphane (10 belge, 1366 parça) | 365.168 |
| Bunun Step'in tökezlediği kısmı | 12.630 (%3) |
Yani ücretsiz bir ElevenLabs kotası, kütüphanenin tamamını tamamlamaya yeter.
os.environ["ELEVENLABS_API_KEY"] = "sk_..." # virgülle birden fazla verilebilir
os.environ["TTS_DOC_ID"] = "*"
# KALITE_YEDEK_MOTOR zaten "elevenlabs" (kapatmak için "")
Birden fazla anahtar verirsen biri kotayı doldurduğunda otomatik olarak
diğerine geçilir (ELEVENLABS_API_KEYS_FILE ile dosyadan da okunur).
Step'in bilinen kayıp deseni (kısa + noktalamasız metin) doğrudan yedeğe yönlendirilir; üç deneme boşa gitmez. Ölçüm: kütüphanedeki 1366 parçanın 127'si bu desende, toplam 2.207 karakter — ve ~2.1 saat kazandırıyor. API çıktısı zaten tutarlı olduğu için ASR geri okuması atlanır (boş/sessiz/ kırpık dosya kontrolü yine çalışır).
Sadece ElevenLabs ile üretmek için: TTS_MODEL_TIPI="elevenlabs".
reading-library/narration/<doc>.json
│
├─ metni cümle sınırlarından dilimle
├─ Step-Audio-EditX ile klonlanmış sesle sentezle (vllm | transformers)
├─ KALİTE DENETİMİ: süre mantığı + whisper ile geri okuma
│ └─ tutmazsa parametreleri uyarlayıp yeniden üret
├─ WAV → OPUS (ffmpeg, paralel)
└─ manifest.json + manifest.js + zip → Google Drive
vllm (hızlı) çalışmazsa aynı ağırlıklarla transformers
köprüsüne düşer — koşu kaybedilmez.DOC_ID="*" ile tüm depo tek koşuda, model bir kez yüklenerek.Dosyanın başındaki blok ya da TTS_<AYAR> ortam değişkeni ile:
| Ayar | Varsayılan | Açıklama |
|---|---|---|
DOC_ID | aesop-fables | Belge kimliği, a,b,c listesi veya * (hepsi) |
DRIVE_MODU | output | off / output / full |
STEP_MOTOR | auto | auto / vllm / transformers |
MODEL_TIPI | step | step / higgs / elevenlabs |
KALITE_YEDEK_MOTOR | elevenlabs | Kaliteden geçemeyen parçayı devret ("" = kapalı) |
KALITE_YEDEK_DENETIM | False | Yedek motor çıktısını ASR ile de denetle |
YEDEK_DOGRUDAN_KISA | True | Kısa + noktalamasız parçayı doğrudan yedeğe ver |
ELEVEN_SES | George | Anlatıcı sesi (21 ses mevcut) |
STEP_SICAKLIK | 0.3 | Örnekleme sıcaklığı (depo sabit 0.7 kullanır) |
STEP_GPU_KULLANIM | 0.45 | vllm gpu_memory_utilization |
KALITE_DENETIM | True | ASR ile içerik doğrulama |
KALITE_ASR_MODEL | large-v3 | tiny/base/small/medium/large-v3 |
KALITE_BENZERLIK | 0.55 | Kabul eşiği (0-1) |
SMOKE_TEST | 0 | >0 ise sadece ilk N parça |
SESSIZ_MOD | True | Üçüncü parti günlük gürültüsünü kıs |
Colab 2026.04+ ortamında karşılaşılan ve hattın otomatik hallettiği sorunlar:
| Belirti | Sebep | Çözüm |
|---|---|---|
ImportError: libcudart.so.13 | PyPI'daki vllm CUDA 13 ile derli; torch 2.11 CUDA çalışma zamanını statik bağlıyor, dosya hiçbir pakette gelmiyor | nvidia-cuda-runtime kurulur, ctypes ile RTLD_GLOBAL ön-yüklenir (LD_LIBRARY_PATH çalışan süreçte işe yaramaz) |
libnvrtc.so.13 / torchcodec | torchaudio 2.9+ load/save işini torchcodec'e devrediyor | Eksik kütüphane kurulur; olmazsa load/save soundfile'a çevrilir |
'<=' not supported between 'int' and 'str' | transformers v5'te apply_chat_template artık BatchEncoding döndürüyor | Tokenizer sarılıp düz [int] listesine indirilir |
use_alibi_sqrt is not supported by backend FLASH_ATTN | Step1 ALiBi-sqrt kullanıyor; vllm 0.26'da sadece triton_attn destekliyor | attention_backend="TRITON_ATTN" enjekte edilir |
UnsupportedOperation: fileno | Colab'da sys.stdout ipykernel nesnesi, vllm fileno() istiyor | Motor kurulumu boyunca gerçek dosya tanımlayıcısına bağlanır |
No module named 'sox' | Depo pyproject'inde var ama Colab'da yok | Eksik modül hata mesajından tespit edilip kurulur |
| Kurulumdan sonra OOM | Başarısız vllm motoru VRAM'i bırakmıyor | cleanup_dist_env_and_memory() ile geri alınır |
python -m pytest tests -q # veya: for f in tests/test_*.py; do python $f; done
Testler GPU veya Colab gerektirmez; kurulum onarımını, kalite kapısını ve sürüm uyumluluk yamalarını gerçek hata metinleri üzerinde doğrular.
stepfun-ai/Step-Audio-EditX + Step-Audio-Tokenizer11 commits
Python
100.0%
Colab uretim hatti: reading-library belgelerini Step-Audio-EditX ile seslendirir. Whisper ile kalite denetimi, kendi kendini onaran CUDA/bagimlilik kurulumu, Drive'a yazip kaldigi yerden devam etme.
0
stars
11
commits
Python
primary language
Aug 5, 2026
updated
adzetto/reading-library belgelerini
Step-Audio-EditX ile seslendiren, Google Colab için tasarlanmış üretim hattı.
Tek dosya, sıfır kurulum: bağımlılıkları, CUDA kütüphanelerini ve model indirmelerini kendisi halleder; çıktıyı Google Drive'a yazdığı için oturum koparsa kaldığı yerden devam eder.
Yeni bir hücreye yapıştır, çalıştır:
import os, subprocess; os.environ["TTS_DOC_ID"] = "aesop-fables"; subprocess.run("rm -rf /content/rltts && git clone -q https://github.com/adzetto/reading-library-tts /content/rltts", shell=True, check=True); exec(open("/content/rltts/colab_tts_pipeline.py", encoding="utf-8").read())
Her çalıştırmada depoyu silip yeniden klonlar, yani her zaman en güncel sürümü çalıştırır.
Ayarları os.environ["TTS_..."] ile geçebilirsin:
os.environ["TTS_DOC_ID"] = "*" # depodaki TÜM belgeler
os.environ["TTS_SMOKE_TEST"] = "3" # sadece ilk 3 parça (deneme koşusu)
os.environ["TTS_STEP_MOTOR"] = "transformers" # vllm'i hiç deneme
os.environ["TTS_KALITE_ASR_MODEL"] = "small" # daha hızlı kalite denetimi
Yerelde / terminalde CLI de var:
python colab_tts_pipeline.py --doc_id "*" --drive_modu output
python colab_tts_pipeline.py --kuru_kosu # model yüklemeden doğrulama
Step-Audio-EditX gövde metninde iyi çalışıyor ama noktalamasız kısa başlıklarda durma işareti bulamayıp token tavanına kadar uyduruyor. Kalite kapısı bu parçaları zaten tespit ettiği için, yalnızca onları ElevenLabs'e devrediyoruz:
| karakter | |
|---|---|
| Tüm kütüphane (10 belge, 1366 parça) | 365.168 |
| Bunun Step'in tökezlediği kısmı | 12.630 (%3) |
Yani ücretsiz bir ElevenLabs kotası, kütüphanenin tamamını tamamlamaya yeter.
os.environ["ELEVENLABS_API_KEY"] = "sk_..." # virgülle birden fazla verilebilir
os.environ["TTS_DOC_ID"] = "*"
# KALITE_YEDEK_MOTOR zaten "elevenlabs" (kapatmak için "")
Birden fazla anahtar verirsen biri kotayı doldurduğunda otomatik olarak
diğerine geçilir (ELEVENLABS_API_KEYS_FILE ile dosyadan da okunur).
Step'in bilinen kayıp deseni (kısa + noktalamasız metin) doğrudan yedeğe yönlendirilir; üç deneme boşa gitmez. Ölçüm: kütüphanedeki 1366 parçanın 127'si bu desende, toplam 2.207 karakter — ve ~2.1 saat kazandırıyor. API çıktısı zaten tutarlı olduğu için ASR geri okuması atlanır (boş/sessiz/ kırpık dosya kontrolü yine çalışır).
Sadece ElevenLabs ile üretmek için: TTS_MODEL_TIPI="elevenlabs".
reading-library/narration/<doc>.json
│
├─ metni cümle sınırlarından dilimle
├─ Step-Audio-EditX ile klonlanmış sesle sentezle (vllm | transformers)
├─ KALİTE DENETİMİ: süre mantığı + whisper ile geri okuma
│ └─ tutmazsa parametreleri uyarlayıp yeniden üret
├─ WAV → OPUS (ffmpeg, paralel)
└─ manifest.json + manifest.js + zip → Google Drive
vllm (hızlı) çalışmazsa aynı ağırlıklarla transformers
köprüsüne düşer — koşu kaybedilmez.DOC_ID="*" ile tüm depo tek koşuda, model bir kez yüklenerek.Dosyanın başındaki blok ya da TTS_<AYAR> ortam değişkeni ile:
| Ayar | Varsayılan | Açıklama |
|---|---|---|
DOC_ID | aesop-fables | Belge kimliği, a,b,c listesi veya * (hepsi) |
DRIVE_MODU | output | off / output / full |
STEP_MOTOR | auto | auto / vllm / transformers |
MODEL_TIPI | step | step / higgs / elevenlabs |
KALITE_YEDEK_MOTOR | elevenlabs | Kaliteden geçemeyen parçayı devret ("" = kapalı) |
KALITE_YEDEK_DENETIM | False | Yedek motor çıktısını ASR ile de denetle |
YEDEK_DOGRUDAN_KISA | True | Kısa + noktalamasız parçayı doğrudan yedeğe ver |
ELEVEN_SES | George | Anlatıcı sesi (21 ses mevcut) |
STEP_SICAKLIK | 0.3 | Örnekleme sıcaklığı (depo sabit 0.7 kullanır) |
STEP_GPU_KULLANIM | 0.45 | vllm gpu_memory_utilization |
KALITE_DENETIM | True | ASR ile içerik doğrulama |
KALITE_ASR_MODEL | large-v3 | tiny/base/small/medium/large-v3 |
KALITE_BENZERLIK | 0.55 | Kabul eşiği (0-1) |
SMOKE_TEST | 0 | >0 ise sadece ilk N parça |
SESSIZ_MOD | True | Üçüncü parti günlük gürültüsünü kıs |
Colab 2026.04+ ortamında karşılaşılan ve hattın otomatik hallettiği sorunlar:
| Belirti | Sebep | Çözüm |
|---|---|---|
ImportError: libcudart.so.13 | PyPI'daki vllm CUDA 13 ile derli; torch 2.11 CUDA çalışma zamanını statik bağlıyor, dosya hiçbir pakette gelmiyor | nvidia-cuda-runtime kurulur, ctypes ile RTLD_GLOBAL ön-yüklenir (LD_LIBRARY_PATH çalışan süreçte işe yaramaz) |
libnvrtc.so.13 / torchcodec | torchaudio 2.9+ load/save işini torchcodec'e devrediyor | Eksik kütüphane kurulur; olmazsa load/save soundfile'a çevrilir |
'<=' not supported between 'int' and 'str' | transformers v5'te apply_chat_template artık BatchEncoding döndürüyor | Tokenizer sarılıp düz [int] listesine indirilir |
use_alibi_sqrt is not supported by backend FLASH_ATTN | Step1 ALiBi-sqrt kullanıyor; vllm 0.26'da sadece triton_attn destekliyor | attention_backend="TRITON_ATTN" enjekte edilir |
UnsupportedOperation: fileno | Colab'da sys.stdout ipykernel nesnesi, vllm fileno() istiyor | Motor kurulumu boyunca gerçek dosya tanımlayıcısına bağlanır |
No module named 'sox' | Depo pyproject'inde var ama Colab'da yok | Eksik modül hata mesajından tespit edilip kurulur |
| Kurulumdan sonra OOM | Başarısız vllm motoru VRAM'i bırakmıyor | cleanup_dist_env_and_memory() ile geri alınır |
python -m pytest tests -q # veya: for f in tests/test_*.py; do python $f; done
Testler GPU veya Colab gerektirmez; kurulum onarımını, kalite kapısını ve sürüm uyumluluk yamalarını gerçek hata metinleri üzerinde doğrular.
stepfun-ai/Step-Audio-EditX + Step-Audio-Tokenizer11 commits
Python
100.0%