5/13 ローンチ予定!
PiloTube

PiloTube 開発日誌

← 「ひとり社長のAI開発記」一覧へ

翻訳エンジンをGPT-4oからGeminiに乗り換えた理由——コスト90%削減の全記録

約6分で読めます
GeminiOpenAI翻訳コスト最適化開発秘話

字幕翻訳のコストが想定の10倍近くかかっていた。

PiloTubeは日本語YouTube動画の字幕を英語・中国語・スペイン語など複数言語に自動翻訳する機能を持つ。動画1本あたり数百〜数千のSRTブロックを翻訳するため、APIコストは積み上がりやすい。

最初はOpenAI GPT-4oを使っていた。翻訳品質は高い。しかし月の請求が予算を大きく超えてきたとき、「他のエンジンに乗り換えられないか」を真剣に検討し始めた。


なぜGPT-4oを使っていたか

最初の理由はシンプルだった。「品質が高い」「日本語の扱いが得意」という評判と、開発初期に手元で試した感触が良かったからだ。

ただし選定時に見落としていたことがある。字幕翻訳の用途では、モデルの「賢さ」よりも「SRT形式の保持能力」と「コスト効率」の方が重要だということだ。

字幕翻訳は創造的な文章生成ではない。タイムコードを変えずにテキストだけを翻訳し、42文字制限(YouTube推奨)を守り、話し言葉のニュアンスを保持する——それができれば十分だ。GPT-4oのような高性能モデルは、この用途にはオーバースペックだった。


3エンジンを実測比較した

乗り換えを決める前に、3つのエンジンを同じ条件で比較検証した。

| エンジン | モデル | |---------|-------| | OpenAI | gpt-4.1-nano | | Anthropic | Claude Haiku 4.5 | | Google | Gemini 2.5 Flash-Lite |

検証には専用のPythonスクリプトを書いた。SRTブロック5件(短サンプル)と15件(中サンプル)の2種類で各エンジンを呼び出し、応答時間・トークン数・翻訳品質を自動評価する仕組みだ。

品質評価の軸は4つ:

  1. タイムコード保持00:00:03,500 --> 00:00:07,200 形式が1文字も変わっていないか
  2. SRT番号保持 — ブロック番号の連番が維持されているか
  3. ブロック数一致 — 原文と同じ数のブロックが出力されているか
  4. 42文字制限 — 各テキスト行が42文字以内に収まっているか

実測結果

応答時間

| エンジン | 短サンプル | 中サンプル | |---------|-----------|-----------| | OpenAI gpt-4.1-nano | 約2.1秒 | 約4.3秒 | | Claude Haiku 4.5 | 約1.8秒 | 約3.9秒 | | Gemini 2.5 Flash-Lite | 約1.4秒 | 約2.8秒 |

Geminiが最速だった。Flash-Liteは軽量モデルだが応答速度の優位性は明確だ。

SRT形式保持

3エンジンとも、タイムコード・ブロック番号・ブロック数の保持は概ね良好だった。ただし傾向に差があった。

  • OpenAI: 安定しているが、まれにタイムコードの末尾スペースが変わる
  • Claude Haiku: 最も保守的で安定。SRT形式を崩すことがほぼない
  • Gemini: 若干のマークダウン記法混入(バッククォートなど)が見られたが、プロンプト調整で解消した

コスト比較

入出力トークンの価格は各社の公表レートで試算した(2026年4月時点の概算)。

| エンジン | 相対コスト | |---------|-----------| | OpenAI gpt-4.1-nano | 1.0(基準) | | Claude Haiku 4.5 | 約0.8 | | Gemini 2.5 Flash-Lite | 約0.1 |

Gemini 2.5 Flash-Liteは基準の約10分の1というコスト水準だった。同じ品質を出せるなら、これ以上の答えはない。


移行時に直面した問題

問題1: マークダウン記法の混入

Geminiは出力にバッククォートやアスタリスクを混ぜてくることがある。SRT形式の翻訳では不要どころか有害だ。

対処: システムプロンプトに「マークダウン記法は一切使わない」を明示した。

ルール:
- マークダウン記法(バッククォート、アスタリスク等)は使わない
- 入力と同じSRT形式のみで出力する

この1行を追加するだけで問題は解消した。

問題2: 42文字制限の超過

Geminiは英訳の際に日本語より長い文を生成しやすい。キャンプ系のカジュアルな語尾(「じゃあ早速〜」「めっちゃ広い」など)を英語に訳すと、冗長な文になりがちだ。

対処: プロンプトで「YouTube字幕の専門翻訳者」という役割を明示し、「1行42文字以内」を制約として強調した。完全には解消しないが、超過件数は許容範囲内に収まった。

あなたはYouTube字幕の専門翻訳者です。
1行42文字以内に収める(YouTube推奨)

問題3: API構造の差異

OpenAIとGeminiではAPIのリクエスト・レスポンス構造が異なる。

# OpenAI
response["choices"][0]["message"]["content"]

# Gemini
response["candidates"][0]["content"]["parts"][0]["text"]

また、Geminiはシステムプロンプトとユーザープロンプトを分離できない(v1beta時点)。contentspartsにまとめて渡す形式になる。

body = {
    "contents": [{
        "parts": [{"text": f"{system_prompt}\n\n{user_prompt}"}]
    }],
    "generationConfig": {"temperature": 0.3},
}

抽象化レイヤーを設けずに直接書き換えたため、この変更自体は30分程度で完了した。


移行後の品質

実際の動画字幕(日本語キャンプ動画、約200ブロック)で検証した結果:

  • タイムコード保持: 200/200ブロック (100%)
  • 翻訳の自然さ: 視聴者からのフィードバックで品質低下の報告なし
  • 42文字超過: 全体の約3%(GPT-4o時代は約5%だったので改善)

品質を落とさずにコストを約90%削減できた。


学んだこと

用途に合ったモデルを選ぶという当たり前のことを、後回しにしていた。

GPT-4oは「何でもできる高性能モデル」だ。しかしそれは裏返すと「用途特化モデルより高コスト」でもある。字幕翻訳のように制約が明確でルール遵守が重要なタスクでは、安価で高速な軽量モデルの方が合っていることがある。

検証を先にやれば良かった、とは思う。ただ、最初はトラフィックが少なくコストが問題にならなかった。問題が顕在化してから動いても遅くはない——それがスタートアップの現実的な判断だと思っている。

次の検討課題は、言語ごとのエンジン最適化だ。英語翻訳と中国語翻訳でベストなモデルが異なる可能性がある。データが溜まったら再検証する予定だ。

多言語字幕生成AI

動画の字幕を多言語に自動翻訳。海外展開をAIで。

1

URLを貼る

2

言語を選ぶ

3

字幕をダウンロード

無料で字幕を翻訳する →

月3回まで無料 · クレジットカード不要