動画編集では、字幕を追加することがよくあります。特に、動画編集ソフト(例えばPremiere Pro)で使用されるSRT形式の字幕ファイルを作成することが求められます。このブログ記事では、ChatGPTを活用して手軽にテキストファイルをSRT形式に変換する方法と、Pythonスクリプトを使った自動化方法を紹介します。
SRT形式とは?
まず、SRT形式について簡単に説明します。SRTファイルは、字幕の表示時間と内容を含むシンプルな形式です。以下のような構造になります。
1
00:00:01,000 --> 00:00:05,000
こんにちは、今日は素晴らしい日です。
2
00:00:06,000 --> 00:00:10,000
はい、天気が良くて気分も最高です。
SRTファイルの主な要素は、字幕の番号、表示開始時間と終了時間、そして字幕のテキストです。
ChatGPTを使ってSRT形式に変換する方法
次に、ChatGPTを使ってテキストをSRT形式に変換する方法を紹介します。ChatGPTは、タイムコードを自動的に生成し、テキストをSRT形式に変換してくれるため、手間を大幅に削減できます。
ステップ 1: テキストをChatGPTに入力
ChatGPTに変換したいテキストを入力します。たとえば、次のような内容です:
こんにちは、今日は素晴らしい日です。
はい、天気が良くて気分も最高です。
ステップ 2: タイムコードの設定
次に、ChatGPTに「各字幕は4秒表示したい」と指定します。例えば:
このテキストをSRT形式に変換してください。各字幕を4秒表示する設定でお願いします。
ステップ 3: SRT形式の出力
ChatGPTは、指定された時間に基づいてSRTファイルを生成します。出力例は以下のようになります。
1
00:00:01,000 --> 00:00:05,000
こんにちは、今日は素晴らしい日です。
2
00:00:06,000 --> 00:00:10,000
はい、天気が良くて気分も最高です。
ステップ 4: SRTファイルの保存
生成された字幕をコピーして、テキストエディタに貼り付け、.srtという拡張子で保存します。これで、SRTファイルが完成です。
Pythonを使って自動化する方法
Pythonを使えば、テキストファイルを自動的にSRT形式に変換できます。これにより、特に長いテキストファイルや多くの字幕を処理する際に便利です。以下はそのためのスクリプトです。
Pythonコード例
以下のコードを使うと、テキストファイルを読み込み、SRT形式に自動変換できます。この例では、字幕が4秒間表示されるように設定されています。
import re
def convert_text_to_srt(text_file, output_file):
# テキストファイルを読み込む
with open(text_file, 'r', encoding='utf-8') as file:
lines = file.readlines()
# SRT形式に変換するための変数
srt_content = []
start_time = 0 # 時間コードの開始時間(秒)
# テキストをSRT形式にフォーマット
for i, line in enumerate(lines):
line = line.strip()
if line:
# タイムコード(開始時間と終了時間)
start_time_str = f'{start_time // 3600:02}:{(start_time % 3600) // 60:02}:{start_time % 60:02},000'
end_time_str = f'{(start_time + 4) // 3600:02}:{((start_time + 4) % 3600) // 60:02}:{(start_time + 4) % 60:02},000' # 4秒表示
srt_content.append(f"{i + 1}\n{start_time_str} --> {end_time_str}\n{line}\n")
start_time += 4 # 次の字幕の開始時間を4秒後に設定
# SRTファイルとして保存
with open(output_file, 'w', encoding='utf-8') as srt_file:
srt_file.write("\n".join(srt_content))
print(f"SRTファイルが'{output_file}'として保存されました。")
# 使用例
convert_text_to_srt('input.txt', 'output.srt')
- 上記のコードをconvert_to_srt.pyとして保存します。
- 同じディレクトリに変換したいテキストファイル(input.txt)を置きます。
- コマンドライン(ターミナル)で以下のコマンドを実行します。
python convert_to_srt.py
これで、input.txtが自動的にSRT形式に変換され、output.srtとして保存されます。
Premiere ProでSRTファイルを使用する方法
SRTファイルが作成できたら、Premiere Proにインポートして字幕を追加できます。以下の手順で、SRTファイルをPremiere Proに追加できます。
1. Premiere Proを開きます。
2. プロジェクトパネルで右クリックし、「インポート」を選択します。
3. 作成したSRTファイルを選択してインポートします。
4. インポートしたSRTファイルをタイムラインにドラッグ&ドロップして、字幕を追加します。
ChatGPTとPythonを併用するメリット
- 時間短縮:手動でタイムコードを設定せずに、ChatGPTやPythonを使って自動的に字幕を作成できます。
- 自動化:特に大量のテキストや長時間の動画に対応する際、Pythonでの自動化が非常に便利です。
- カスタマイズ可能:ChatGPTでタイムコードや字幕内容を柔軟にカスタマイズでき、Pythonでさらに細かい調整が可能です。
まとめ
今回は、ChatGPTを使ったSRT形式への変換方法と、Pythonを使って自動化する方法を紹介しました。どちらも字幕作成の効率化に役立ちます。特にPythonを使用すると、長いテキストや大量の字幕を一気に処理でき、時間を大幅に節約できます。動画編集作業を効率化したい方は、ぜひ試してみてください!
関連情報👇