ただ、もう前半の手順を忘れてしまったので、自分の備忘録のために、復習をしながらここに書くことにします。
最初に、DVDSubEditを起動し、対象となるDVD-VideoのVOBファイルを指定します。
ReadOnlyのために編集できないというエラーメッセージが出ますが、今回は関係ないので、そのまま進みます。
右のSubpic Colorの指定を、Use automatic CLUTに、中央のzoon指定を「1x zoon」または「2x zoom」にす
ると字幕画像の出力に便利です。
字幕の言語と再生時のスクリーンサイズは上部で、字幕や背景色は下部の四角の部分で変更できます。
ここでは説明のために文字の縁を黄色にしましたが、実際にはグレーくらいが後のOCRではいいのではないかと思います。
右下の"run OCR"のボタンを押すと、OCRが行われ、認識結果がウインドウに表示されます。近くにある"<" ">"ボタンか、中央部の"<" ">"ボタンのいずれかを押すことで、順に認識結果を見ることができます。
この時点でOCRの間違いを見つけても修正することはできないようです。残念!
右下の"Save as srt"ボタンを押せば、SRTファイルとして保存されます。
この時点での問題点は、
1 誤認識が多い(画面上で見えていても修正ができない)。
2 OCRは日本語には対応していない。
3 VOBファイル毎にSRTファイルが作られる。2番目以降のVOBファイルに対応したSRTファイルの時間も冒頭からではなく、各VOBファイルの先頭からの時間になっている。(単に字幕をテキスト化したいのなら、あとで繋ぐだけのことなので、この点は問題にならない。)
の3点です。
1については、「あとで修正する」しかありません。
修正方法としては、
11)目で追いながら、あるいはwordの校正機能なども利用して修正します。
(2)次に述べる、読取革命によるOCRで認識させる。(DVDSubEditを使う意味があまりなくなってしまいますが、タイミングの記録が取れます。)
の2つが考えられます。
2のために、読取革命を使います。日本語字幕では必須ですし、英語などでもフォントの形などによっては誤認識が多いことが考えられるので、この方法を使うといいかも知れません。
読取革命でOCRを行うために、字幕データ(画像)を、字幕数だけの独立した画像ファイルとして出力をします。
メニューの「ファイル」から、"Save subpics of all selected SPUs as bitmaps"を選びます。
SPUとはSubPicture Unitのことのようですが、例えば英語だけSelectしたつもりでも(OCRではその結果英語しか表示されていなくても)、出力されるBMPには日本語と英語が混在しています。
ちょっと大変ですが、読取革命で読み取る前に、不要な言語のBMPファイルは削除しておいた方が良さそうです。
読取革命で保存されたファイルをまとめて読み取り、認識結果をまとめて一つのテキストファイルに保存をします。
単にDVD-Videoの字幕をテキスト化したいだけなら、これで完了です。
この後は、問題点3の対応です。
エクセルを開き、DVDSubEditで保存をしたSRTファイルを貼り付けます。左の赤枠の部分です。
この隣に、読取革命で認識・保存した字幕の内容を、黄色の核の部分に貼り付けます。字幕番号やタイミングの部分が詰まっているので、必要なだけ隙間を空けて順に下に移動させます。
このときに、間違いは多くてもDVDSubEditが認識した内容が参考になります。(日本語を無理矢理、認識させた場合はどうなるか…)
位置が決まったら、右の緑色の枠の中に、
(a)字幕番号とタイミングは、赤枠から
(b)字幕の内容は黄枠から
読み取ります。
これで、読取革命でOCRをした文字を含むSRTファイルができます。
このようにして、字幕を持つVOBファイルの数だけ、SRTファイル
を作ります。
さて、VOBファイルの数だけ分割されたSRTではなく、全体を通したSRTファイルを作ります。
http://plaza.rakuten.co.jp/blacktigercat/diary/201502160000/
の
1)VSRipを使いVideo.TS内のVobファイルからidx/Subファイルを抜き出す。
2)SubToSupを使ってidx/SubファイルをSupファイルへ変換。
3)SUPReadを使ってSupファイルから時間タイミングのSRTファイルを取得する。
4)Subtitle Workshopを使いタイミングSRTをタイミングTTSファイルを作る。
5)Excelを使いOCR字幕csvファイルからテキスト字幕ファイルを作る。
6)サクラエディタを使ってタイミングTTSとテキスト字幕ファイルを結合。
7)Subtitle Workshopを使い、結合TTSファイルをSRT字幕ファイルへ変換して完成。
に倣います。
最初に、VSRipで、
1)VSRipを使いVideo.TS内のVobファイルからidx/Subファイルを抜き出す。
と、処理をして
VTS_01_0.idx
VTS_01_0.sub
の2つを出力します。
2)SubToSupを使ってidx/SubファイルをSupファイルへ変換。
SubTitle-ID_en_0x24.sup
というファイルができました。
3)SUPReadを使ってSupファイルから時間タイミングのSRTファイルを取得する。
最後の字幕は368番目だと分かります。
これを、SRTファイルとして保存します。
school.srt
Excelを開き、
(a) 赤枠の中に、全編を通したSRTファイル(school.srt)を貼り付けます。最後の番号は368で、タイミングは 01:14:48,851 --> 01:14:53,345 です。文字データはなく、代わりに「line 368」というダミーの文字列が入っています。
(2) 隣の黄枠の中に、DVDSubEditで4つのVOBファイルから作った4つのsrtフォーマットのデータを上から順に貼り付けます。4つめのSRTファイルの最後の番号は81で、タイミングは00:09:01,250 --> 00:09:05,754 です。読取革命でOCRをした文字データが入っています。
このとき、(1)と位置を揃えられるように、2行以上の字幕は1行にしておきます。
例えば、
368
01:14:48,851 --> 01:14:53,345
Salome still follows him
wherever he goes.
は
368
01:14:48,851 --> 01:14:53,345
Salome still follows him\nwherever he goes.
というふうに、改行位置に特別な文字を入れて、文字の行を1行にまとめておきます。
(3)簡単な式を使って、緑枠の中に、(1)の通し番号とタイミング、(2)の文字データを表示します。
この(3)が、全編のSRTファイルとなります。(\nを再び改行コードに戻します。)
school_all(en).srt
元の字幕と比べてみます。
オリジナルの字幕表示です。
今回作ったSRTファイルを読み込ませてみます。、
色もサイズもフォントも異なる文字で字幕表示をします。
-------
資料
DVDSubEditで作った4つのSRTファイル。
school01.srt
school02.srt
school03.srt
school04.srt
OCR用に出力をした、画像ファイル(の一つ)…本来はBMPファイルですが、PNGフォーマットに変更した物です。
ただし、実際はBMPファイルです。↓(ブラウザによっては見えないかもしれません。)
通し番号やタイミングのない、字幕のみのデータです。
school_all(en).txt
(間違いを含む可能性があります。)