9月28日、Shittu Olumideが「Gemini 3.5 Transcribe vs OpenAI's GPT-Transcribe」と題した記事を公開した。GoogleとOpenAIがほぼ同時期にリリースした音声文字起こしモデルを、実コードつきで比較・解説している。両者を分ける最大の軸は精度や速度ではなく、話者分離(ダイアリゼーション)がビルトインか否かという一点だ。
4週違いでリリースされた2つのモデル
Gemini 3.5 Transcribeは2026年8月26日、GPT-Transcribeは同年7月28日にリリースされた。わずか4週差という近さが、この比較を意味のあるものにしている。世代が異なるモデル同士を比べても参考にならないが、今回は正真正銘の同世代対決だ。
さらに、両社とも同じ構成を採っている点が見逃せない。ストリーミング用と録音済み音声用の2モデル構成を揃えており、比較の土台が揃っている。
Gemini 3.5 Transcribeの強みは「話者分離込み」
Gemini 3.5 TranscribeはGoogleの前モデルChirp 3の後継で、文字起こし完了までの時間がChirp 3比70%短縮されている。
モデルIDは2つに分かれる:
gemini-3.5-transcribe-live:Live API経由のリアルタイムストリーミング用gemini-3.5-transcribe:録音済み音声・会議・通話ログ用
精度の数字(Artificial Analysis計測)は、ストリーミングで4.0% WER(単語誤り率)、非ストリーミングで2.6% WER。多言語ベンチマークFLEURSではそれぞれ5.50%と5.04%。
エンジニアにとって最も実用的なのが、話者分離(ダイアリゼーション)と単語レベルのタイムスタンプが標準装備という点だ。最大3話者まで安定して対応し、追加モデル不要でそのまま使える。85言語以上に対応し、カスタム語彙の認識もサポートする。
複数話者の会議録音を処理するコード
from google import genai
client = genai.Client(api_key="YOUR_GOOGLE_API_KEY")
with open("meeting_recording.mp3", "rb") as f:
audio_bytes = f.read()
response = client.models.generate_content(
model="gemini-3.5-transcribe",
contents=[
{"text": "Transcribe this meeting with speaker labels and timestamps."},
{"inline_data": {"mime_type": "audio/mp3", "data": audio_bytes}},
],
)
print(response.text)
音声バイト列と自然言語の指示を一緒に送るだけで、Speaker 1 / Speaker 2 / Speaker 3のラベルとタイムスタンプが付いたトランスクリプトが返ってくる。通話後分析のパイプラインにそのまま流せる出力形式だ。
GPT-Transcribeはライブキャプションで真価を発揮
GPT-TranscribeはWhisper→gpt-4o-transcribeと続いてきたOpenAIの文字起こしラインの最新モデル。OpenAI自身が録音音声の文字起こしにwhisper-1やgpt-4o-transcribeより推奨している。
精度はCommon Voice(22言語)でのベンチマークで、whisper-1の40.37% WERをほぼ半減させ19.27% WERを達成。料金はファイル文字起こしが**$0.0045/分、ストリーミング(gpt-live-transcribe)が$0.017/分**で、前モデルより25%安い。
一方、話者分離と単語レベルのタイムスタンプは非対応。話者分離には別途gpt-4o-transcribe-diarize、タイムスタンプには旧来のwhisper-1が必要になる。
ライブキャプション用WebSocketストリーミングのコード
import asyncio
import websockets
import json
async def stream_captions(audio_chunks):
uri = "wss://api.openai.com/v1/realtime?intent=transcription"
headers = {"Authorization": "Bearer YOUR_OPENAI_API_KEY"}
async with websockets.connect(uri, extra_headers=headers) as ws:
await ws.send(json.dumps({
"type": "transcription_session.update",
"session": {"input_audio_transcription": {"model": "gpt-live-transcribe"}},
}))
for chunk in audio_chunks:
await ws.send(json.dumps({
"type": "input_audio_buffer.append",
"audio": chunk,
}))
message = await ws.recv()
event = json.loads(message)
if event.get("type") == "conversation.item.input_audio_transcription.delta":
print(event["delta"], end="", flush=True)
リクエストのたびに接続を張り直すのではなく、WebSocket接続を維持したまま音声チャンクを逐次送り込む。話者が話している最中にdeltaイベントとして部分テキストが返ってくるため、ライブキャプション表示に必要な「話者に追いつく」挙動を実現できる。
数字で見る比較
| 項目 | Gemini 3.5 Transcribe | GPT-Transcribe |
|---|---|---|
| リリース日 | 2026年8月26日 | 2026年7月28日 |
| 前モデル | Chirp 3 | gpt-4o-transcribe |
| ストリーミングモデル | gemini-3.5-transcribe-live | gpt-live-transcribe |
| 録音済みモデル | gemini-3.5-transcribe | gpt-transcribe |
| WER ※1 | 4.0%(ストリーミング)/ 2.6%(非ストリーミング) | 約19.27%(Common Voice) |
| 言語対応 | 85言語以上 | 22言語以上でベンチマーク済み |
| 話者分離(組み込み) | あり(最大3話者安定) | なし(別モデル必要) |
| 単語レベルタイムスタンプ | あり(組み込み) | なし(whisper-1が必要) |
| ストリーミング料金 | 非公開 | $0.017/分 |
| ファイル料金 | 非公開 | $0.0045/分 |
※1 WERの測定条件に注意:GeminiのWERはArtificial Analysisによる計測、GPT-TranscribeのWERはCommon Voice(22言語)によるベンチマークであり、データセットおよび測定条件が異なるため、両者の数値を直接比較することはできない。
どちらを選ぶか
会議録音・通話ログ・複数話者が混在するコンテンツを扱うならGemini 3.5 Transcribe一択だ。話者分離がビルトインされているため、OpenAIのスタックでは別途必要になるモデル呼び出しをそのまま省ける。
シンプルな1話者の文字起こしやライブキャプションで、料金と統合コストを抑えたいならGPT-Transcribeが適している。話者属性が不要なユースケースであれば、安価で導入しやすい選択肢だ。ただし、Gemini側の料金は執筆時点で未公開であり、「GPT-Transcribeのほうがコスト面で有利」とは現時点では断言できない。Geminiの料金が公開された時点で改めてコスト比較を行う必要がある。
詳細はGemini 3.5 Transcribe vs OpenAI's GPT-Transcribeを参照していただきたい。




