Izdvojeno > Tutorijali za izradu titlova

OCR skripta za SW

<< < (2/68) > >>

pesekan:
Kugi care, hvala! :)

pejafor3:
Kugi is back.

kugi001:

evo jos jedne vrlo korisne skripte, c/p sa SW foruma
preporuka za one koji prevode preko eng. titla tj. samo
promijene eng. riječi s našima.

Skripta provjerava koji titlovi imaju više od 25 znakova po sekundi
(uključite mod prevođenja u SW jer tamo stavlja log za te titlove)

Cilj skripte je lakše čitanje titlova, znači da se isprave oni koji
prekratko traju/imaju previše znakova ili riječi u odnosu na trajanje


--- Kod: ---// --= CPS Comment (in translation) =--
// Add info about the Readability Rythm
// of the original sub (Characters per second)
// as a comment [...] in the Translation.
// ------------------------------------
// Made by Buzcatcher - feb.2007
// http://subtitle-spotting.blogspot.com/

program CPScomment;

// -------------------------------------

const
//FYI: 25cps = 40ms spotting for each char ; 20cps=50ms/char. etc.
  CPSlimit = 25;  //Change as you see fit.
  CRLF = ''#13''#10;

var
  i, j, n, pln, p1, p2 : Integer;
  duration, sublength, cps : Integer;
  subtxt, subtrans, report : String;

begin
  if not IsTranslatedloaded then
    exit;

  n := GetSubtitleCount-1;

  for i := 0 to n do
  begin
    subtxt := GetSubtitleText(i);
    sublength := length(subtxt);
    duration := GetSubtitleFinalTime(i) - GetSubtitleInitialTime(i);
   
    //pure stripped text length doesn't count the CRLF in 2 line subs
    pln := pos(''#13''#10, subtxt);
    if (pln>0) then
      sublength := sublength - 2;
   
    cps := round((sublength * 1000)/ duration);   //spotting spead.
   
    if (cps > CPSlimit) then
    begin
      // To update rather than double the cps info.
      subtrans := GetSubtitleTrans(i);
      p1 := pos('[*', subtrans);
      p2 := pos('*]', subtrans);
      while ((p1>0) and (p2>0)) do
         begin
           subtrans := copy(subtrans, p2+2, length(subtrans)-p2);
           p1 := pos('[*', subtrans);
           p2 := pos('*]', subtrans);
         end;
      SetSubtitleTrans(i, subtrans);
   
      //Adding [*xx C/sec*] in the translation text.
      report := '[*' + IntToStr(cps) + ' Car/s*]';
      subtrans := report + GetSubtitleTrans(i);
      SetSubtitleTrans(i, subtrans);
      j := j + 1;
    end;
 
  end;

  MsgBox(IntToStr(j) + ' Subtitles over ' + IntToStr(CPSlimit) + ' char/sec' + CRLF + 'Noted in Translation File', '&Ok', '', '', $20);
end.


--- Kraj koda ---

MilanRS:
Da bi se ispravljala greška postojanja crtice u titlu sa jednim redom, u SW pod Alati, Informacije i greske, kliknite na Podesavanja.
Pod tabom Proveri i pod tabom Sredi
treba da bude čekirano
"-" u titlovima sa jednom linijom.
(To je u srpskom prevodu SW)

Ispravio sam neke greške koje sam napravio prošli put.
Dodao sam neke nove elemente.

Briše liniju u prvom redu titla koji ima dva reda
Npr. (isječak iz Supernaturala)
- Ravnopravnost.
-Mislim da je riječ.
Biće:
Ravnopravnost.
-Mislim da je riječ.

Uklanja i razmak iza početne crte u drugom redu:
Npr.
Ravnopravnost.
- Mislim da je riječ.
Biće:
Ravnopravnost.
-Mislim da je riječ.

Ako u titlu postoji crtica koja ne označava promjenu govornika,
nego stoji umjesto zareza, neće biti privučena tekstu.
Npr.
Doći će - rekao je.

Ako tekst drugog govornika počinje u prvom redu, takođe se koriguje crtica tako da je ispred nje razmak, a iza nje nema razmaka. Preduslovi: Tekst prvog govornika završava sa ? ili ! ili . dok tekst drugog počinje velikim slovom (logično!). Ako je razmak iza crtice, biće obrisan.
Npr.
Oh, čovječe! Stari. - To su moja
sestra i moja cura.
Biće:
Oh, čovječe! Stari. -To su moja
sestra i moja cura.

Izmijenjena skripta (update) je u postu broj 2 odozgo. Sve selektujete i kopirate, pa na kompu pod Program Files, Urusoft, SubtitleWorkshop, OCRScripts otvorite Default u Notepadu i zamijenite tekst.

Biće još dorade kad nađem vremena. Neće biti brzo. Juče sam cijelo poslijepodne potrošio na izučavanje pravila i semantike za OCR.  ;)

pejafor3:
Super skripta. Tenks.

Navigacija

[0] Lista Poruka

[#] Slijedeća stranica

[*] Prethodna stranica

Idi na punu verziju