Linuxで字幕を作成する

 英語圏の人にはあまり馴染みがないかもしれないが、世界のそれ以外の地域の人にとって字幕とは、映画を本当に楽しむことができるか、あるいは映像を見ながら何が起こっているのかを単に推測するだけに留まるのかの違いを生み出すものだと言っても良いだろう。Windowsには字幕を扱うためのツールが幅広く揃っているが、実はLinux用のアプリケーションでもそのような作業を行うことができる。本稿では、編集やリッピングや変換などを行う便利なツールを紹介する。

subtitle2_thumb.png
Gnome Subtitles

 おそらくLinux上で最も優れた字幕編集用アプリケーションは Gnome Subtitles だろう。Gnome Subtitlesは、単にテキストとして字幕を自分の言語に迅速に翻訳する作業を手助けしてくれるだけでなく、ビデオプレイヤと連携してファイル内のテキストを映画の中の音声と同期させることができる。したがって一時停止と翻訳を繰り返していけば良いだけだ。テキストを太字や斜体にしたりテキストに下線を付けたりするのもボタンをクリックするだけで可能だ。さらに映画内の希望の再生位置に移動することができる検索/置換機能も提供されている。また最近の映画で広く使用されている各フレームレート(23.976、24、25、29.97、30)をサポートしている。

 Gnome Subtitlesのウィンドウの字幕編集領域の左側には、行番号を示す欄と並んでFromToという名前の欄がある。字幕テキストは、これら2つの値で指定したタイミングで画面上に表示される。画面の指定方法としては、フレームによる指定と時間による指定のどちらかを選ぶことができる。時間指定では、映画内で字幕が表示される位置を時/分/秒/ミリ秒で表わすので、操作がより簡単だ。

subtitle1_thumb.png
KSubtile

  KSubtile はGnome Subtitlesと同じ目的のKDEアプリケーションだが、Gnome Subtitlesと比べると直観的な使いやすさという点でやや劣る。KSubtileではビデオの表示にMPlayerを使用する。字幕を読み込むとすぐに、ファイル内の行数と合計時間とが情報タブ内に表示される。KSubtileでは、映画のある部分の字幕行を別の場所に切り貼りすることが可能だ。KSubtileの難点としては、UTF-8をサポートしていないという点がある。一方便利な点としてはズーム機能があり、これはテキストを迅速に見つけたい時に役に立つ。字幕テキストは、KSubtileのウィンドウのNavigatorの中の縦の線で表わされる。この縦線の幅が広ければ広いほど、字幕が長時間画面に表示されることを示している。エディタには中央にテキストボックスが2つあって、その左右にある矢印を使って移動したい位置に移動することができる。もしくはSelect(選択)ボタンを押して、編集したいテキストがある位置に直接的に移動することもできる。

 KSubtileではMPlayerを利用するが、これら2つのアプリケーションは同期を取らないのであまり便利ではない。映画が先に進んでもエディタ内の字幕は変化しないので、映像を見てビデオファイルの位置を確認しながら編集することができない。

 また別のアプリケーションである SubtitleEditor は軽量なアプリケーションだが、他のツールよりも高速に翻訳するのに役立つかもしれない。メインウィンドウには字幕テキストとともに、開始時刻、終了時刻、行番号、表示時間などが表示される。表示されている字幕テキスト行をクリックしさえすれば、その場で編集することができる。ISO-8859-15とUTF-8とをサポートしていて、対応する動画ファイルはMPlayerやVLCやその他の好きなビデオプレイヤで表示することができる。また便利なことに映画内の音声をグラフで表示するので、編集の際に参考にすることができる。

 SubtitleEditorのメインウィンドウは複数の表示モードで表示することができる。例えば「詳細モード」では、最低限必要な各欄に加えて、フォントの情報や行ごとの文字数を表示する欄も表示することができる――これは特定のフォントサイズで画面上に表示する際に、テキストの長さを見積もるのに便利だ。また「翻訳モード」では、元のテキストと、その右隣りに入力可能な空行が表示される。翻訳が終わればSRT、SUB、TXT、ASS、SSAなどのファイルとして保存することができる。

字幕作成入門
 字幕とは、ビデオファイルの中の会話、ナレーション、音楽、効果音などをテキストで表わしたもののことだ。字幕用の形式は複数存在する。主に4種類に分類することができ、テキストベース(SUB、SRT、SSA)、HTMLベース(SMIなど)、XML(USFファイル)、画像ベース(Vobsub SUB/IDXファイル)の各形式がある。中でももっともよく使用されている形式はSUBとSRTで、どちらも改行をサポートしている。なおMPSub SUBファイルとSubViewer SUBファイルはメタデータ情報もサポートしているが、MicroDVD SUBファイルやSubRip SRTファイルはサポートしていない。

 また字幕の形式によってタイミングの指定方法が異なっている。ビデオと字幕テキストの同期のために、例えばMicroDVD SUBファイルやSAMI SMIファイルではフレーム番号を指定するが、その他の多くの形式ではビデオファイル内での経過時間を指定して字幕テキストの参照場所として使用可能なマークを付ける。

 その他にもLinux用の字幕編集用アプリケーションとしては、 Gaupol GSubEdit Jubler などがあるので試してみると良いだろう。

 Linux用の字幕ツールは、編集用のアプリケーションだけではない。SUBファイルをSRT形式に変換したい場合には、Perlスクリプトの sub2srt を利用することができる。sub2srtは、MicroDVDファイルとSUBRipperファイルをSubViewer形式に変換することが可能だ。さらに-fオプションを使用すればフレームレートを変更することもできる。

  Subtitles は、字幕に関連するさまざまな用途に使用可能なプログラムだ。例えばSubtitlesを使うと字幕ファイルの時間を変更したり、字幕ファイルを様々な形で変換することができる。例えばビデオファイルよりも3秒遅れで表示される字幕ファイルがある場合には、コマンドラインで「subs -i -b 3 subtitle_file.sub」と実行するだけで修正することができる。

 また例えば、24fpsのフレームレートの字幕をダウンロードしたが、動画ファイル自体が25fpsだという場合には、「subs -i -a 24/25 subtitle_file.sub」を実行すれば変換することができる。さらには、2つの字幕ファイルをマージして1つめの字幕ファイルの時間情報と、2つめの字幕ファイルのテキストを持つようなファイルを作成することも「subs -z subtitle_file1.sub subtitle_file2.sub」を実行するだけで可能だ。

 一部の映画の字幕には、聴覚障害を持つユーザ向けのコメント(「(笑い)」や「(遠鳴り)」など)が含まれているものがあるが、「subs -e 's/[\s-]*\[.*\]\s*\n*//gs' subtitle_file.sub」を実行すれば、これらのコメントを削除することができる。その他にもSubtitlesを使えば、指定した時間でファイルを2分割したり、複数のファイルを1つの字幕ファイルに連結したりすることができる。

 リッピング(DVDの中から画像の字幕を取り出しSRT形式のテキストファイルに変換すること)について言えば、まず何らかのDVDリッピングツールを使用してハードディスク上に/vobディレクトリを作成しておき、その後 transcode パッケージをインストールして、「tccat -i /home/user/rip/vob | tcextract -x ps1 -t vob -a 0x22 > subs-en」 を実行すれば良い。この例の「0x22」は「英語」を意味している。他の言語の字幕のリッピングを行うためにはまず「mplayer -dvd-device /space/st-tng/disc1/ -dvd 1 -vo null -ao null -frames 0 -v 2>&1 | grep sid」を実行して利用可能な言語を確認してから、対応する出力番号を16進数で「0x20」に加えれば良い。つまり例えばイタリア語の字幕ファイルのSIDが「7」の場合であれば「tccat -i /home/user/rip/vob | tcextract -x ps1 -t vob -a 0x27 > subs-it」を実行すれば良い。

 DVDの字幕は画像として埋め込まれているので、取り出すには「subtitle2pgm -o english -c 255,0,255,255 < subs-en」を実行する。画像ファイル内のテキストを検出するためには別途OCRアプリケーションが必要だ。gocrを使用すればうまく取り出すことができるので「pgm2txt english」を実行する。 最後にsrttoolを使って、「srttool -s -w < english.srtx > english.srt」 を実行すれば、SRTファイルを作成することができる。なお作成後には、すべての文字が正しく検出されてちゃんとした文章になっているかどうかを確認しておこう。その際にはOpenOffice.orgのスペルチェック機能を使用すると便利かもしれない。

 字幕のリッピングをより簡単に行いたい場合には、 subtitleripper のフロントエンドである KSubtitleRipper を利用することもできる。KSubtitleRipperでは、統一的で分かりやすいGUIを使って上記のCLIの例と同じ取り出し/変換作業を行うことができる。KSubtitleRipperではgocrが一部の文字を認識することができない場合、手動で置き換えるかどうかをユーザに尋ねる。.vobファイルと .subファイルを取り扱うことができ、内部的なスペルチェック機能がある。

 以上で、シンプルで能率的なユーティリティを使って、字幕ファイルのリッピング、変換、翻訳、操作ができるようになった。

Razvan T. Colojaは雑誌やオンラインメディアで150以上のIT関連の記事を執筆している。ルーマニアの雑誌の編集者であり、ルーマニアのLinux/OSSポータル/コミュニティwww.mylro.orgのメンテナ/編集者の一人でもある。

Linux.com 原文