Automatyzowany pipeline do generowania YouTube Shorts z odcinków anime
System przekształca poziomy odcinek anime w pionowe filmy Shorts o długości do 60 sekund. Na wejściu podaje się plik wideo, na wyjściu otrzymuje się gotowy clip z dynamicznym kadraniem, napisami i metadanych. Kluczowy podejście: architektura modułowa z pośrednimi artefaktami zamiast modelu end-to-end. Pozwala to izolować etapy, ponownie uruchamiać je niezależnie i integrować zwrotną informację z metryk oglądania.
Pipeline dzieli się na kontur produkcyjny do generacji, kontur R&D do analizy metryk oraz kontur społecznościowy do interakcji z audiencją. Każdy odcinek przechowywany jest w katalogu z artefaktami:
episode_001/
source.mp4
transcript.json
audio_features.json
scene_cuts.json
faces.json
candidates.json
crop_path.json
subtitles.srt
metadata.json
final_short_01.mp4
Taka struktura przyspiesza debugowanie: ponowne obliczenie crop_path nie wymaga ponownej transkrypcji.
Transkrypcja i analiza dźwięku
Pierwszy etap – wyodrębnienie tekstu z mowy z czasem. Transkrypt segmentowany jest do napisów i oceny treści. Jednak tekst nie wystarczy: emocje często są wyrażane przez ścieżkę dźwiękową.
Analiza dźwięku oblicza sygnał kompozytowy:
def extract_audio_signal(window):
speech_density = measure_speech_density(window)
loudness_peak = detect_loudness_peak(window)
energy_delta = detect_energy_change(window)
return (
0.45 * speech_density +
0.35 * loudness_peak +
0.20 * energy_delta
)
W praktyce dodano normalizację, progi i filtry od szumów. Sygnał łączy się z tekstem do znalezienia momentów o wysokiej gęstości emocjonalnej: krótkie repliki + wypływy dźwiękowe.
- Gęstość mowy: udział mowy w oknie.
- Pik głośności: szczyty głośności.
- Zmiana energii: zmiany energii, w tym muzyka i pauzy.
To eliminuje neutralne fragmenty, gdzie dominuje wizualizacja.
Wizja komputerowa do scen i twarzy
Moduł CV wykrywa zmiany scenerii, twarze i ich skupienie:
def analyze_frame(frame):
faces = detect_faces(frame)
scene_score = detect_scene_change(frame)
face_focus_score = estimate_face_focus(faces, frame)
return {
"faces": faces,
"scene_score": scene_score,
"face_focus_score": face_focus_score,
}
Dane wykorzystywane do dynamicznego kadrzenia 16:9 → 9:16. Zamiast środkowego kropu system symuluje ruch kamery: śledzi pozycję twarzy, utrzymując kluczowych postaci w centrum. W scenach z wieloma bohaterami naprzemiennie zmienia klatki, unikając utraty kompozycji.
Kandydatów tworzy się na podstawie kombinacji sygnałów:
| Sygnał | Ocena | Cel |
|--------|--------|------|
| Transkrypt | Gęstość replik | Przyciągający sens |
| Dźwięk | Piki emocjonalne | Dynamika |
| Twarz | Położenie twarzy | Skupienie pionowe |
| Scena | Zmiana scenerii | Wizualna nasycenie |
| Tempo | Tempo fragmentu | Rytm |
Skoring ranguje fragmenty według sumy wag, odrzucając spowolnione lub rozdarte kawałki.
Dynamiczne kadrzenie i postprodukcja
Po wyborze kandydatów generowany jest crop_path – trajektoria wirtualnej kamery. System płynnie przesuwa okno, skupiając się na twarzach i kluczowych elementach. Napisy nakładane są w .srt z optymalizacją pozycji: minimalny nakład, szybka czytelność.
Postprodukcja obejmuje stabilizację, korektę kolorów i metadane (tytuł, opis, tagi). Ostateczny render – przetwarzanie partii dla kilku clipów z jednego odcinka.
Zwrotna informacja i ulepszenia
Kontur R&D parsuje YouTube Analytics: wyświetlenia, retention, CTR. Metryki aktualizują wagi skoringu i słowniki wyzwalające (np. emocjonalne frazy z udanych clipów).
Kontur społecznościowy automatyzuje odpowiedzi na komentarze, ogrzewa audiencję poprzez podobne rekomendacje.
Co jest ważne
- Modułowość z artefaktami przyspiesza iteracje 5–10 razy w porównaniu do monolitycznego skryptu.
- Kombinacja sygnałów (tekst + dźwięk + CV) podnosi jakość kandydatów o 40–60% w porównaniu do jednostronnego podejścia.
- Dynamiczne kadrzenie utrzymuje skupienie w 90% scen z wieloma postaciami.
- Zwrotna informacja z metryk pozwala na samotuning bez ręcznego dopasowania.
- Skalowalność: jeden odcinek → 10–50 Shorts w partii.
— Editorial Team
Brak komentarzy.