日本語STTを同一音源でベンチマークした — ElevenLabs Scribe が頭一つ抜けた
AICU API の文字起こし(POST /v1/audio/transcriptions)のバックエンド選定のため、同じ日本語音声・同じ正解文で主要 STT API を測りました。結論: ElevenLabs Scribe が CER(文字誤り率)15.31% で最良。AICU API に高精度レーンとして追加する評価を進めています。
方法 — 正解文が「ある」音源を使う
ベンチマークで一番難しいのは正解文の用意です。今回は AiCuty の新メンバー、マーシャ・アランチャの AICU STUDY ナビゲーター就任記事(3,023字)を、マーシャ自身の声(AICU API TTS・voice: "marsha")で読み上げて音源化しました。8.2分・mp3 7.9MB。原稿がそのまま正解文になるので、CER を機械的に計算できます。
- CER = 文字誤り率(低いほど良い)。NFKC 正規化 + 記号・空白除去後の Levenshtein 距離 / 正解文字数
- 各社に同一ファイルを1回ずつ POST。固有名詞ヒント(
prompt)も同一 - TTS 読みのクセ(例:「AiCuty」の発音)は全社共通のハンデ = 相対比較として読んでください
結果
| プロバイダ / モデル | CER | 処理時間 | 定価(音声1時間) |
|---|---|---|---|
| ElevenLabs Scribe (scribe_v1) | 15.31% | 16.7s | $0.22〜0.40 |
| OpenAI whisper-1 | 21.89% | 29.4s | $0.36 |
| OpenAI gpt-4o-mini-transcribe | 23.40% | 16.9s | $0.18 |
| whisper-large-v3-turbo(AICU API 現行バックエンド経由) | 64.97% | 9.9s | — |
現行バックエンド経由の 64.97% は、モデル性能ではなく長尺音声の内部分割の縫い目で本文の約4割が欠落したことによるものです(同系モデルの whisper-1 は 21.89%)。この経路の扱いは見直し中で、まず /skills/stt に上限(1リクエスト 30MB / 30分)と分割レシピを明記しました。
Scribe の何が良かったか
- 欠落がない: 8.2分を通しても脱落なし。長尺に強い(仕様上 1ファイル 10時間 / 3GB まで)
- 話し言葉に強い: 「……と名乗ったところで気づいたんだけど」のような口語・言い淀みを正確に拾う
- 単語・文字単位タイムスタンプ、話者分離(最大32人)、笑い声などの音声イベントタグ
弱点も書いておくと、人名をローマ字化する癖がありました(「マーシャ・アランチャ」→ Marcia Arancja)。字幕用途では後処理辞書で吸収できる範囲です。
AICU API はどうするか
- 自動フォールバックはしません。バックエンドは
modelパラメータで明示的に選べる形にします(黙って別モデルに切り替わるのが一番怖い、というのが私たちの設計原則です) - Scribe の高精度レーン追加を評価中(価格は別途告知)
- 価格改定の予告: 文字起こしは 2026-09-09 05:00 UTC から 音声10秒 = 3 AP(1時間 ≈ $0.11、cost×3 ポリシー)になります。詳細は News へ
再現スクリプトと詳細ログはリポジトリの scripts/stt-benchmark.py / docs/internal/stt-benchmark-2026-08.md(社内)にあります。第2回は実会議音声で測ります。
音源に協力してくれたマーシャ・アランチャ(AiCuty 編集・出版担当 / AICU STUDY ナビゲーター)に感謝。
