Google Apps Script(GAS)の翻訳機能を使った字幕ファイル(.srt形式)翻訳ヘルパー

Google Apps Scriptの翻訳機能を使って字幕ファイル(.srt形式)の翻訳を自動化するものです。もちろん翻訳結果をそのまま 字幕として使うには無理がありますが、外国語音痴の私にとっては辞書で調べる手間が大幅に減って大助かりです。あとは出力された.srtファイルを 映像に流して表現の修正や翻訳の誤りを修正するだけ(実はそれが一番手間なんですが…)です。

使用者独自のGAS翻訳アプリが必須です。 GAS翻訳アプリの作成方法は GAS(Google Apps Script)で翻訳アプリを作成する方法などを参照してください。これがないと話になりません。

subautotrans_v0.8.33_src.zip
Pythonスクリプトのみ(OS共通)
Python3環境のほかrequests及びchardetモジュールのインストールが必要です。
適当なディレクトリに解凍してpython3 subtitle_autotrans.pyで実行します。 面倒ですがユーザーの管理下で実行できるので安心感があるでしょう。

subautotrans-0.8.33.tar.gz
pythonのsdist形式(Linux)
Python3環境が必要です。インストールは pip install subautotrans_v0.8.3.tar.gz です。 実行方法は端末から subautotrans で起動できるはずです。削除する場合は pip uninstall subautotrans です。
依存するたのモジュールもインストールされます。
pythonの仮想環境にインストールした方が安心でしょう。

subautotrans-0.8.33.zip
pythonのsdist形式(windows) ※圧縮形式が違うだけで上の.tar.gzと同じです。インストールで.tar.gzを.zipに置き換えるだけです。

subautotrans_v0.8.33_x64_win10.zip
windows10_64bit用の実行形式
解凍してできたsubautotransディレクトリ内のsubautotransを実行してください。 実行に必要なpython3環境やモジュールも含んでいるのでただ実行するだけです。

subautotrans_v0.8.33_x64_win10_exe.zip
Windows10_64bit用の実行形式ですが、上記と違って1つのexeファイルとなっています。たぶん大丈夫だと思います。

■変更履歴
  • (2025.9.22)v0.8.32-->v0.8.33 ブロックの前後にあるスペースを除去するようにした。
  • (2025.9.9)v0.8.31-->v0.8.32 挿入したブロック区切り文字の先頭のアンダーバー(_)が翻訳後に消える場合があるのでブロック区切り文字の前にスペースを加えた
  • (2025.9.2)v0.8.3-->v0.8.31 音符符号の追加が適当だったので修正。さらに、ブロック末(先頭)の識別記号を追加した。
  • (2025.9.1)v0.8.2-->v0.8.3 ブロック末(先頭)の識別記号を追加した。
    ブロックの先頭に音符記号がつく場合は歌の歌詞とみなしてブロック末に文末記号がなくても文末記号があるとみなすことにした。
  • (2025.8.20)v0.8.1-->v0.8.2 ブロック末の識別記号を追加した。
    会話以外の字幕ブロックが連続した場合、翻訳後のテキストが正しいブロックに表示されない場合があったが、これが原因かどうかは分からない。
  • (2024.10.26)v0.7.3-->v0.8.0 複数ブロックを同時に翻訳するように変更した。その他バグフィックス。
    同時翻訳数は5ブロックで固定していますが、増減したい場合はsubtitle_autotrans.pyの57行目のMULTICNTを調整 してください。
  • (2022.11.2)v0.7.2-->v0.7.3 バグフィックス及びビジュアル一部変更
  • (2022.10.30)v0.7.1-->v0.7.2 バグフィックス(動作に影響なし)
  • (2022.10.23)v0.7-->v0.7.1 対象言語の追加、文末処理の修正(元言語が英語以外でも文末検知できるようにしたつもり)、文末を意識しないモードの追加、バグフィックス
■不具合など
  • 翻訳できていないブロックがたまにある。原因不明。
  • 会話以外の字幕が連続すると翻訳後のテキストが正しいブロックに表示されない場合がある
過去のファイル

image-00
image-00

image-01
image-01

image-02
image-02

>

image-03
image-03

image-04
image-04

image-05
image-05

各ボタンの説明

「.srtファイルを指定して通常スタート」ボタン

このボタンを押すとファイル選択ダイアログが表示され、そこで選択された字幕ファイル(.srt)を 「言語の選択(現在:..)」ボタンに表示されている言語ですぐに翻訳がスタートします。スタートすると 意図的に中断しない字幕ファイルの最後まで作業を続けます。 翻訳中の画面は「image-01」のとおりです。各行の翻訳結果が順次出力されます。

すべての行の翻訳が終わると「image-05」のメッセージが表示されます。
2種類のファイル(原文と訳文を併記したファイルと訳文だけのファイル)を.srt形式で出力するという意味です。
このメッセージのあとにファイル選択ダイアログで出力ファイル名を指定します。指定したファイル名が'file'だとすると、 '1_file'が原文と訳文を併記したファイルで、'2_file'が訳文だけのファイルとなります。


「(現在:文末を意識して翻訳する)」ボタン

字幕データが1つの文が複数のブロックに分かれている場合に、1つの文に結合したうえで翻訳するか、文末を意識せずに単にブロック毎に 翻訳するかの選択を行います。ボタンに表示されているのが現在のモードです。このボタンを押すと(現在:文末を--意識せずに--翻訳する)モードと トグルで変更されます。


「翻訳作業を中断する」ボタン

翻訳中の作業を途中終了します。翻訳作業中にこのボタンを押すとおもむろに「image-02」のメッセージが表示されます。
ここで「Yes」を選ぶと指定されたファイルに途中保存します。すべて翻訳が完了した場合でも、中断の場合でも、 保存せずに終了すると翻訳結果は破棄されます。


「中断ファイルを読み込んで翻訳を再開する」ボタン

「翻訳作業を中断する」で途中保存したファイルを読み込んで作業を再開します。


「中断ファイルから.srtを出力する」ボタン

中断した時点までの内容で.srtファイルを出力します。


「言語の選択(現在:...)」ボタン

ボタンを押すと「image-03」が表示されて原文と訳文の言語を変更します。 当然.srt原文と異なる言語が選択されると翻訳も失敗します。


「GAS翻訳URLを編集する」ボタン

ボタンを押すと「image-04」が表示されてURLを編集します。正しい値を返すURLでないと登録できません。


「終了」ボタン

翻訳作業中に押すと「翻訳作業を中断する」ボタンと同じ動作をします。 翻訳作業中でない場合は終了します。

注意
複数行(複数ブロック)にまたがる字幕データの扱いは、文の終わりを’.’ピリオド等の有無で判断しています。 複数行にまたがる字幕データは文末のあるブロックに翻訳文をまとめています。文末が確認できなかったブロックには 後送りしている印として'_F_L_W_'を挿入しるので、後で翻訳文の振り分けをする必要があります。 なお、文末の判断は厳密ではありません。
GAS翻訳アプリを利用した姉妹ツール: python: Google Apps Scriptを活用した翻訳支援スクリプト
連絡先:renraku@subautotrans.inblank.net