Transkript, istifadəyə hazır altyazı faylının sadəcə başlanğıcıdır.
Yaxşı bir SRT üçün hələ də düzgün zamanlama, rahat oxunan sətir bölgüsü, keyfiyyət yoxlaması və təhvil verməzdən əvvəl səhvləri görəcək bir insan lazımdır.
Mən də bu prosesi təkrarlana bilən vahid audio-to-SRT axınına çevirmək üçün SRT Subtitle Pipeline layihəsini hazırladım.
Layihə müsahibə, epizod, dərs, təlim və ya digər danışıq əsaslı audio faylları işləyən, sadəcə xam transkript yox, yoxlanıla bilən və təhvilə hazır SRT istəyənlər üçün nəzərdə tutulub.
Audio fayldan yoxlanıla bilən altyazıya
Pipeline faylları prosesin mərhələlərinə uyğun olaraq ayrı qovluqlarda təşkil edir:
inbox
processing
review
delivery
archive
Əvvəlcə audio mətnə çevrilir.
Daha sonra altyazılar maksimum iki sətir olacaq şəkildə formatlanır və SRT faylı ilə birlikdə ayrıca QC hesabatı yaradılır.
Nəticə birbaşa təhvil verilmir.
Fayl əvvəlcə review qovluğuna düşür. Orada bir nəfər SRT-ni və keyfiyyət hesabatını yoxlayır, sonra isə faylı təhvil üçün açıq şəkildə təsdiqləyir.
Bu son mərhələ vacibdir.
Nitqin tanınması sistemləri adları, üst-üstə düşən danışığı, zəif səslənən sözləri və ya durğu işarələrini səhv anlaya bilər.
Alət təkrarlanan formatlama və fayl idarəetməsi işlərini avtomatlaşdırır, amma avtomatik yaradılmış transkripti heç vaxt son nəticə kimi qəbul etmir.
Transkripsiya yolunu seçmək
Standart iş axını söz səviyyəli zamanlama üçün faster-whisper istifadə edir.
Əgər OpenAI API açarı əlavə olunubsa, pipeline yazı səhvlərini, böyük-kiçik hərfləri və durğu işarələrini təmizləmək üçün OpenAI-dan istifadə edə bilir.
Burada vacib bir qoruma mexanizmi var.
Sistem düzəldilmiş mətnlə orijinal mətni leksik olaraq müqayisə edir.
Əgər model:
söz əlavə edirsə
söz silirsə
sözü dəyişirsə
və ya sözlərin sırasını dəyişirsə
pipeline düzəldilmiş variantı qəbul etmir və orijinal transkript sətrini saxlayır.
Yəni dil modeli burada mətnə sərbəst şəkildə müdaxilə etmir.
Onun rolu daha çox yazı və durğu işarələrini təmizləməkdir.
Layihədə iki Gemini rejimi də var.
hybrid-gemini Whisper-ın zamanlama strukturunu saxlayır və Gemini-dan yalnız həmin zaman aralıqlarındakı mətni yaxşılaşdırmağı istəyir.
gemini-only isə həm transkripti, həm də zamanlamanı Gemini-a həvalə edir.
Bu rejimdə fərqli model seçimləri üçün keyfiyyət və qənaət yönümlü preset-lər mövcuddur.
Quraşdırma və işə salma
Hazır quraşdırma prosesi Windows üçün nəzərdə tutulub.
Lazım olanlar:
Python 3.11 və ya daha yeni versiya
PATH daxilində əlçatan FFmpeg
Əvvəlcə repository-ni klonlayın:
git clone https://github.com/alesmcgregor/srt-subtitle-pipeline.git
cd srt-subtitle-pipelineSonra virtual mühiti yaradın və asılılıqları quraşdırın:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
Copy-Item .env.example .envİstifadə edəcəyiniz servis və rejimə uyğun API açarını .env faylına əlavə edin.
NVIDIA GPU ilə inference istifadə etmək istəyənlər üçün repository daxilində ayrıca PowerShell quraşdırma script-i və doctor komandası da var.
GPU məcburi deyil.
CPU üzərindən də transkripsiya mümkündür.
Audio faylı 01_INBOX qovluğuna yerləşdirin və məsələn bu komandanı işə salın:
python -m srt_pipeline.cli process --input "01_INBOX\example.mp3" --project "SeriesName" --episode "S01E01" --language "en" --device auto --model mediumProses bitdikdən sonra nəticələr 03_REVIEW qovluğunda görünür.
Burada SRT faylını və QC hesabatını yoxladıqdan sonra faylı təhvil üçün təsdiqləyə bilərsiniz:
python -m srt_pipeline.cli approve --review-file "03_REVIEW\...srt"Uğurla işlənən inbox faylları avtomatik olaraq:
01_INBOX\PROCESSEDqovluğuna daşınır.
Beləliklə növbəti batch zamanı eyni fayl yenidən emal olunmur.
Kompüterinizdən hansı məlumatın çıxdığını bilin
Bu hissə vacibdir.
Whisper ilə edilən transkripsiya lokal olaraq işləyir.
Yəni standart Whisper mərhələsində audio faylınız xarici servislərə göndərilmir.
Amma OpenAI cleanup funksiyası aktivdirsə, transkript mətni OpenAI API-yə göndərilir.
Gemini rejimlərində isə mənbə audio faylı Google Gemini API-yə göndərilir.
Bu implementasiyada 20 MB-dan böyük inline audio fayllar qəbul edilmir.
Buna görə hansı rejimi istifadə edəcəyinizi yalnız keyfiyyətə görə yox, aşağıdakı amillərə əsasən də seçmək lazımdır:
məxfilik
dil keyfiyyəti
qiymət
emal müddəti
API istifadəsi seçdiyiniz provayderdən asılı olaraq ödənişli ola bilər.
Bu layihə kimlər üçün faydalıdır?
Bu pipeline xüsusilə mütəmadi olaraq danışıq əsaslı audio materiallarla işləyənlər üçün faydalıdır.
Məsələn:
podcast və epizod arxivləri
müsahibələr
təlim materialları
dərs qeydləri
video altyazıları
seriya şəklində yayımlanan kontent
Hər faylda eyni qovluq strukturu, fayl adlandırması, qısa altyazı sətirləri, QC hesabatları və aydın insan təsdiqi mərhələsindən istifadə etmək prosesi xeyli daha səliqəli edir.
Amma mənim üçün ən vacib hissə budur:
Bu sistemin məqsədi insanı prosesdən çıxarmaq deyil.
Əksinə, maşının yaxşı bacardığı təkrarlanan işləri avtomatlaşdırıb son qərarı insanda saxlamaqdır.
Kodları, quraşdırma detallarını və layihənin strukturunu GitHub-dakı açıq mənbəli repository üzərindən nəzərdən keçirə bilərsiniz.
← KOD