更新
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 要寫都寫得出,只不過懶得做。undefined
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,下圖是轉換繁中字幕的效果(未經人手修改),準確度都算不錯。
不過都有少許問題,例如明珠台的美劇繁體中文字幕,經常會將兩個人的短對白以空格分開放在同一行字幕,轉換後會失去空格,感嘆號(!)經常誤認為(’)或失去,(…)就從未試過認到出來!
英文方面,下圖是未經人手修改的轉換效果,錯得很多,不能接受!
以上測試,來源檔是由機頂盒錄影出來的 *.trp,經 SmartCutter 剪接後再由 ProjectX 分拆出來的 *.sup.idx 字幕。
有時 ProjectX 分拆出來的字幕檔,時間軸跟影片有很大距離,我會先用 KMPlayer 同時開影片和字幕,留意第一句字幕出現時間及第一句對白出現時間,計出差距,然後在 KMPlayer 畫面上 Right click→字幕配置→同步字幕→字幕同步設定(或者按 Alt-Y,我不記得這個是原裝的 Keyboard shortcut 還是我自己加入的),輸入差距時間,再自行微調時間,直到影片跟字幕同步(通常較到 +/- 200ms 已經可以接受)。例如計出相距時間是 1 分 7 秒,可先試輸入 67000,然後再每 200 一級的嘗試。
記下這個時間,然後我會用我自己寫的 Word VBA 程式去修改 *.sup.idx 入面的 timestamp。
按這裡可下載我的程式。打開 IdxSubTime.doc 後,先跟下圖啟用巨集與ActiveX。
然後在方格中輸入差距時間(秒),例如之前試出 67400 毫秒,就輸入 67.4(本來應該跟 KMPlayer 用毫秒,不過懶得再改寫程式),按 Enter 後就可以選擇要修改的 *.sup.idx 檔案。原本的檔案會以 yyyymmdd-hhmmss-*.sup.idx 檔名備份,yyyymmdd 及 hhmmss 時備份時的日期和時間。
我選擇用 Word VBA 是為了貪方便,因為我常用的幾部電腦都已經裝有 MS Office,不用另外再裝 S/W。如果不用我這個程式,也可以用其它程式去改 timestamp。
不過無論用什麼程式去改 timestamp,應該先更改 *.sup.idx,然後才用 IdxSubOcr 轉字幕格式,確保轉出來的 *.srt 字幕已是修正了的時間軸。