Seçili işlere dön
YouTube dublaj deneyi · 2025 · Prototip

Dublör

YouTube videolarını mevcut altyazıdan, altyazı yoksa yerel konuşma tanımadan işleyen; çevrilmiş ses parçalarını SRT zamanlarına göre videoyla eşleyen yayınlanmamış hibrit dublaj prototipi.

dublor.lab
04:18 / 12:42
Kaynak altyazı
Çevrilen ses parçası
SRTTRVOICE
Prototypeyayın durumu
2 yolaltyazı / speech-to-text
SRTzamanlama temeli
01 / BAĞLAM

Neden yaptım?

Problem

Video çevirisinde yalnızca doğru metni üretmek yetmiyor. Her videoda altyazı bulunmuyor; çeviri ve ses üretimi de kaynak konuşmadan farklı sürelerde tamamlanıyor. Bu nedenle hem altyazısız içerik için bir geri dönüş yoluna hem de üretilen sesi görüntüyle aynı zaman çizgisinde tutacak bir yapıya ihtiyaç vardı.

Yaklaşım

İki yollu bir akış kurduk. Mevcut altyazı bulunduğunda ytdl-core üzerinden erişilen YouTube kaynak bilgisiyle altyazı izini alıyor, SRT parçalarının metnini DeepL API ile çeviriyor ve gTTS ile seslendiriyorduk. Altyazı bulunmadığında videonun sesini FFmpeg ile uygun parçalara hazırlıyor, whisper.cpp ile yerelde metne çevirip zaman damgalı SRT üretiyor; ardından aynı çeviri ve seslendirme hattına bağlıyorduk. Üretilen ses parçalarını SRT başlangıç zamanlarına göre sıraya koyarak işlem süresinden doğan gecikmeyi tahminle değil, kaynak zaman çizelgesini koruyarak yönetiyorduk.

02 / MİMARİ

Parçalar değil,
veri akışı.

Her katman tek bir sorumluluğu taşıyor; ürün davranışı sınırların arasında kaybolmuyor.

01Chrome Extension · oynatıcı ve kullanıcı arayüzü
02ytdl-core · YouTube kaynak ve altyazı erişimi
03Hızlı yol · mevcut altyazı/SRT
04Fallback · FFmpeg ses hazırlığı + whisper.cpp
05SRT cue'ları · başlangıç/bitiş zamanları
06DeepL API · parça bazlı çeviri
07gTTS · çevrilmiş ses üretimi
08FFmpeg + zamanlayıcı · parça hazırlığı ve eşleme
03 / PROBLEM ÇÖZME

Zor kısımlar.

CHALLENGE 01

Altyazı varsa aynı işi tekrar etmemek

Mevcut altyazıyı hızlı yol olarak kullanıp konuşma tanıma maliyetini atladık. Yalnızca altyazı bulunmayan videolarda FFmpeg ile hazırlanan sesi whisper.cpp üzerinden geçirerek zaman damgalı SRT ürettik.

CHALLENGE 02

Metin zamanı ile yeni sesin süresi aynı değil

Çevrilmiş bir cümlenin seslendirme süresi kaynak konuşmayla birebir örtüşmüyor. SRT cue'larını zamanlama sözleşmesi olarak koruyup sesleri parça parça ürettik; FFmpeg ile oynatılabilir biçime getirdiğimiz parçaları başlangıç zamanlarına göre yerleştirerek kaymayı ve üst üste binmeyi kontrol ettik.

CHALLENGE 03

Yerel işlem ile dış servisleri birleştirmek

Konuşma tanımayı whisper.cpp ile yerelde tutarken çeviri ve ses üretimini DeepL API ile gTTS üzerinden yürüttük. Her adımı bağımsız ele almak, bir servis yavaşladığında veya altyazı bulunmadığında bütün akışı değiştirmeden alternatif yola geçebilmemizi sağladı.

04 / STACK

Doğru iş için
doğru araç.

01
ytdl-core

YouTube kaynak bilgisini ve uygun medya akışını Node.js hattına almak; altyazı bulunduğunda konuşma tanıma adımını atlayacak hızlı yolu başlatmak için.

02
whisper.cpp

Altyazısız videolarda konuşmayı yerelde çözüp sonraki adımların da kullanabileceği zaman damgalı SRT çıktısı üretmek için.

03
DeepL API

SRT cue metinlerini başlangıç ve bitiş zamanlarını uygulama tarafında koruyarak hedef dile çevirmek için.

04
gTTS

Çevrilmiş her metin parçasını ayrı bir ses çıktısına dönüştürüp zaman çizelgesinde bağımsız yönetebilmek için.

05
FFmpeg

Kaynak sesi whisper.cpp için hazırlamak, üretilen ses dosyalarını ortak biçime getirmek ve oynatılacak parçaları düzenlemek için.

06
SRT zaman damgaları

İşlem gecikmesini gizlemek yerine her dublaj parçasını kaynak konuşmanın başladığı ana bağlayan ortak zamanlama sözleşmesi olarak.

05 / RETROSPECTIVE

Öğrendiklerim.

01

Hibrit yaklaşım yalnızca yerel ve bulut araçlarını birleştirmek değil, kaynağın sunduğu veriye göre en ucuz işlem yolunu seçmektir.

02

SRT zamanlarını çeviri boyunca korumak, dublajı sonradan tahminle hizalamaktan daha güvenilir bir temel sağlar.

03

Toplam gecikme; medya hazırlığı, gerektiğinde konuşma tanıma, çeviri, ses üretimi ve oynatma hazırlığının birlikte ele alınmasını gerektirir.

06 / FUTURE PLANS

Bir sonraki sürüm.

Ses süresi uyarlamasını iyileştirmekÇeviri ve ses parçalarını önbelleklemekFarklı video kaynakları