SRT 字幕の確認と修正の方法
機械が作った字幕は 100% 正しくはないので、公開前に校正が必要です。SRT はテキストなので、形式とよくある誤りの種類を知っていれば、10 分の動画の校正もそれほど時間がかかりません。時間コードのないプレーンテキスト(動画の文字起こし)がほしい場合の方法も、最後に載せています。
SRT の形式は 4 つの要素だけ
1 件の字幕は、番号、時間コード、文字、空行でできています。
1 00:00:00,020 --> 00:00:01,240 本日は、あなたにお見せしたいと思います Today I want to show you 2 00:00:01,240 --> 00:00:03,470 小規模なチームが有用な製品を構築する方法 how a small team can build a useful product
- 時間コードは
時:分:秒,ミリ秒 --> 時:分:秒,ミリ秒と書きます。ミリ秒の前はカンマです。 - バイリンガル字幕は、文字の部分が 2 行以上になっているだけです。
- 字幕と字幕のあいだには、空行を 1 つ入れる必要があります。
何で直すか
- テキストエディタ:誤字をいくつか直すだけなら、macOS 標準の「テキストエディット」(プレーンテキストで保存)や、どんなコードエディタでも足ります。
- 編集ソフト:SRT を読み込んで、映像を見ながら直し、書き出します。スタイルも整えたい人に向いています。
- 字幕専用のエディタ:件数が多い、時間軸を大きく動かすといったときに使います。たとえばオープンソースの Aegisub です。
Twinsubs は今のところファイルを作るだけで、エディタは内蔵していません。範囲を絞るための方針で、校正は使い慣れたツールに任せます。
保存するときは 2 点を守ります。文字コードは UTF-8 のまま、拡張子は .srt のままにします。テキストエディットがリッチテキストで保存する設定になっているときは、先にプレーンテキストに切り替えてください。そうしないと、ファイルに書式の情報が混ざります。
機械の字幕で多い 5 種類の誤り
- 固有名詞人名、会社名、製品名、専門用語。認識で発音の近い別の語になったり、翻訳で直訳されたりします。最初に確認するのはここです。
- 数字と単位年、金額、割合。数字を 1 桁聞き違えると意味が変わるので、必ず動画と照らします。
- 同音の語と抜け背景音楽が声にかぶる箇所では、文の半分が抜けたり、同音の別の語になったりしやすくなります。
- 区切りの位置文の途中で終わる字幕は読みにくくなります。件を結合したり分割したりして直します。
- 時間の重なりと短すぎる表示2 件の時間帯が交差している、または 1 秒未満しか出ない字幕は、読み切れません。重なりがあると読み込みを拒否する編集ソフトもあります。
時間を節約できる校正の順番
- まず固有名詞を検索するエディタで全体を検索して置換し、同じ語の誤りを一度に直します。
- 次に数字を見る数字を含む件だけを見て、動画と照らします。
- 最後に通して見るIINA などのプレーヤーに字幕を読み込んで最初から再生し、読みにくいところだけで止めます。
長い動画でも、一語ずつ聞き通す必要はありません。この順番なら、誤りの大半は最初の 2 つの手順で片づきます。
バイリンガル字幕で、どちらの行が間違いか見分ける
バイリンガル SRT は 1 件が 2 行で、翻訳先の言語が 1 行、元の言語が 1 行です。読みにくいところは、まず元の言語の行が合っているかを見ます。
- 元の言語の行がもう間違っている:認識の聞き間違いです。元の言語の行を直し、対応する翻訳先の行もあわせて直します。
- 元の言語は合っていて、翻訳先が不自然:翻訳の問題です。翻訳先の行だけを直します。
- どちらの行も合っているのに意味がつながらない:ひとつの意味が区切りで分かれていることが多いです。隣り合う 2 件を結合するか、境目を動かします。
SRT をプレーンテキストにする(動画の文字起こし)
ほしいのは字幕ではなく、番号も時間コードもない文字起こしです。たとえばインタビューや講義のメモの整理に使います。Twinsubs は動画に対して SRT だけを出力するので、先に SRT を作り、そこから番号の行と時間コードの行を取り除きます。どちらの方法でも構いません。
方法 1:ターミナルのコマンド 1 本(macOS 標準のツール)
まずファイルを選びます。1 言語だけにしたいときは 1 言語のファイル(Interview.ja.srt など)を使います。バイリンガルのファイルを使うと、2 つの言語が両方残ります。そのあと、ターミナルで次を実行します(ファイル名は自分のものに変え、空白を含むときは引用符で囲みます)。
tr -d '\r' < Interview.ja.srt | grep -vE '^[0-9]+$|-->' | sed '/^$/d' > Interview.txt
やることは 3 つです。Windows の改行コードを取り除き、数字だけの番号の行と --> を含む時間コードの行を削除し、空行を削除します。結果は Interview.txt として保存され、元の SRT は変わりません。
注意:1 行が数字だけの字幕の文字(たとえば単独の「2024」の行)も、番号と見なされて削除されます。変換したあと、数字が出てくる箇所をざっと確認してください。
方法 2:テキストエディタの正規表現による置換
- バックアップ:先に SRT をコピーし、コピーのほうで作業します。
- 時間コードの行を削除:正規表現に対応したエディタ(VS Code、Sublime Text など)で
^\d\d:\d\d:\d\d,\d\d\d --> .*\nを検索し、何も入れずに置換します。 - 番号の行を削除:
^\d+\nを検索し、何も入れずに置換します。 - 余分な空行を削除:
\n{2,}を検索し、\nに置換します。
変換後は 1 行が字幕 1 件で、段落にはなっていません。段落につなげたいときは、あとで隣り合う行を結合します。発言が動画のどこにあったかを知りたいなら、変換せずに SRT のまま残してください。
リアルタイム翻訳には別の道があります。会議のあとに、リアルタイム翻訳のセッションをテキストファイルとして自分で保存できます。オンライン会議のバイリンガル字幕をご覧ください。
字幕は参考用です。公開前にご自身で校正してください。利用規約第 3 条をご覧ください。
よくある質問
SRT をプレーンテキストの文字起こしにできますか?
できます。SRT はテキストなので、番号の行と時間コードの行を取り除けば文字起こしになります。「SRT をプレーンテキストにする」の節に、ターミナルのコマンド 1 本と、テキストエディタでの方法を載せています。
バイリンガルの SRT から 1 言語だけ残せますか?
いちばん簡単なのは、Twinsubs が同時に出力する 1 言語のファイル(.ja.srt など)を使うことで、中身は翻訳先の言語だけです。バイリンガルのファイルしかないときは、エディタの検索と置換で、片方の言語を行ごとに削除します。
SRT を開くと文字化けします。
たいていは文字コードの問題です。テキストエディタで UTF-8 として開き直すか、保存し直してください。Twinsubs の出力は UTF-8 です。
字幕全体が音声より早い、または遅いです。
まず字幕がその動画から作られたものか確認します。本当に全体がずれているなら、1 件ずつ時間コードを直すのではなく、字幕専用のエディタ(Aegisub の時間をまとめてずらす機能など)で一度にずらします。
時間の重なりとは何ですか?
次の字幕の開始が、前の字幕の終了より早い状態です。重なりがあると読み込みを拒否する編集ソフトがあります。前の字幕の終了を、後ろの字幕の開始より前に直せば解決します。
更新日:2026-10-12。 Twinsubs のトップへ戻る