[更新:2013-06-01]繁體中文版 IdxSubOcr(圖片式字幕轉文字式字幕)

本帖最後由 C_Law 於 2013-6-1 01:30 編輯

更新
2013-06-01
我用 VB Express 2010 寫了個程式改 *.idx 的 Timestamp,詳情請按這裡,無需再用 Word VBA。

2013-03-25
無 M$ Office XP~2007 的用戶,可以裝 SharePoint Designer 2007,內有 M$ Office 2007 的 MODI(OCR Engine)。
安裝 SharePoint Designer 2007(方法 2)
下載 SharePoint Designer 2007
不過,如果要用我個 Word VBA 去改 *.idx 的 Timestamp,仍然需要較新的 M$ Word,太舊版的 VBA 無 FileDialog 功能,不能在程式中開出選擇開啟檔案的視窗,印象中好似 XP 還是 2003 才開始有這功能,其實在 2000 要寫都寫得出,只不過懶得做。



IdxSubOcr 原作者主頁
下載原裝簡體版 IdxSubOcr

之前提過用 IdxSubOcr 將圖片式字幕轉文字式字幕。IdxSubOcr 本身是簡體中文軟件,我發覺在繁中 Win XP/7 經 AppLocale 以 GBK 碼執行的話,轉出來的 srt 字幕檔是 GBK 碼,而且用 ConvertZ 把這 srt 檔轉回 Big5/UTF-8 時,部份字會變"?"問號;如果在繁中 WinXP/7 直接執行的話,轉出來 srt 檔已是 Big5 碼,不過,程式介面會出亂碼。詳情可看這個舊 Post

我現把 IdxSubOcr 的介面改為繁體中文,可直接在繁中 WinXP/7 內執行,不會有亂碼。
按這裡下載繁體中文版

IdxSubOcr 需使用 MS Office 2003(我用 2007) 附帶的 OCR Engine,下圖是轉換繁中字幕的效果(未經人手修改),準確度都算不錯。
cht.gif
2012-4-7 21:32


不過都有少許問題,例如明珠台的美劇繁體中文字幕,經常會將兩個人的短對白以空格分開放在同一行字幕,轉換後會失去空格,感嘆號(!)經常誤認為(’)或失去,(…)就從未試過認到出來!
error.gif
2012-4-7 18:16


英文方面,下圖是未經人手修改的轉換效果,錯得很多,不能接受!
eng.gif
2012-4-7 21:35


以上測試,來源檔是由機頂盒錄影出來的 *.trp,經 SmartCutter 剪接後再由 ProjectX 分拆出來的 *.sup.idx 字幕。

有時 ProjectX 分拆出來的字幕檔,時間軸跟影片有很大距離,我會先用 KMPlayer 同時開影片和字幕,留意第一句字幕出現時間及第一句對白出現時間,計出差距,然後在 KMPlayer 畫面上 Right click→字幕配置→同步字幕→字幕同步設定(或者按 Alt-Y,我不記得這個是原裝的 Keyboard shortcut 還是我自己加入的),輸入差距時間,再自行微調時間,直到影片跟字幕同步(通常較到 +/- 200ms 已經可以接受)。例如計出相距時間是 1 分 7 秒,可先試輸入 67000,然後再每 200 一級的嘗試。
resync.gif
2012-4-7 22:43


記下這個時間,然後我會用我自己寫的 Word VBA 程式去修改 *.sup.idx 入面的 timestamp。按這裡可下載我的程式。打開 IdxSubTime.doc 後,先跟下圖啟用巨集與ActiveX。
IdxSubTime1.gif
2012-4-7 23:05


然後在方格中輸入差距時間(秒),例如之前試出 67400 毫秒,就輸入 67.4(本來應該跟 KMPlayer 用毫秒,不過懶得再改寫程式),按 Enter 後就可以選擇要修改的 *.sup.idx 檔案。原本的檔案會以 yyyymmdd-hhmmss-*.sup.idx 檔名備份,yyyymmdd 及 hhmmss 時備份時的日期和時間。
IdxSubTime2.gif
2012-4-7 23:10


我選擇用 Word VBA 是為了貪方便,因為我常用的幾部電腦都已經裝有 MS Office,不用另外再裝 S/W。如果不用我這個程式,也可以用其它程式去改 timestamp。

不過無論用什麼程式去改 timestamp,應該先更改 *.sup.idx,然後才用 IdxSubOcr 轉字幕格式,確保轉出來的 *.srt 字幕已是修正了的時間軸。

回復 1# C_Law

我平日用開 SubToSrt 把圖形字幕轉做文字字幕。明珠台字幕常有專名號 (underlined),用 SubToSrt 很難處理,不知用 IdxSubOcr 效果如何?

TOP

本帖最後由 C_Law 於 2012-4-7 22:52 編輯

IdxSubOcr 會省去專名號,但它有文字替換功能,可自己補回專名號,例如:陳大文→<u>陳大文</u>。

replace.gif
2012-4-7 19:18


下圖是用 KMPlayer 播片時擷取的畫面。最底一行是原裝圖片式中文字幕,中間一行是原裝圖片式英文字幕,最頂一行標階體是經 IdxSubOcr 轉成 srt 的文字式字幕,並且已人手加入專名號。

Clipboard01.jpg
2012-4-7 22:49

TOP

本帖最後由 cwchan3618 於 2012-4-7 19:00 編輯

回復 3# C_Law
dxSubOcr 會省去專名號,但它有文字替換功能,可自己補回專名號,例如:陳大文→<u>陳大文</u>。

這正是我想要的。多謝分享。

TOP

主要都係補番D標點符號, 點都會有D錯字, 但而可慳好多時間........
用WORD VBA改時間 , 好複雜WOR ............

TOP

剛發現如果在一部未裝有 MODI(Microsoft Office Document Imaging)的電腦內執行 IdxSubOcr 會出現一個亂碼的 Message box,已修正。

TOP

回復 5# xyz#

對於一些自己能力範圍做得到的小修改,與其上網找其它程式去做,我寧願自己寫程式去做,有時自己寫程式,寫完試完所花的時間,比上網做功課找其它程式去做又要下載安裝,來得更省時間。

VBA 是我最常用的程式語言,主要是貪大部份電腦都已裝 MS Office,但缺點是 Office 為了防止病毒散播,開啟帶有 VBA 程式的 Office file 時,預設是關閉巨集與 ActiveX,要人手去開啟。

有試過 VB .Net Express,可 Compile 做獨立執行程式,但要裝 .Net framework,並不是每部電腦都有裝,而且 VB Compile 出來的獨立執行的小程式雖然可能只是幾十 kB,看似體積很小,但其實要裝過百 MB 的 .Net framework 去執行,有點「妹仔大個主人婆」的感覺。

TOP