文字起こしAPIは、OpenAI・Deepgram・AssemblyAI・Google Cloud・AWS・Azure・AmiVoiceの7サービスで単価が1分あたり0.003ドルから0.017ドル前後まで開き、日本語の扱いやリアルタイム対応の方式も違います。2026年8月にはOpenAIがwhisper-1やgpt-4o-transcribeを2027年2月26日で終了すると告知しました。古い実装例を写すと半年後に動かなくなるため、この記事では後継モデル前提のコードで整理します。比較表、OpenAI・Deepgram・AssemblyAI・ローカルWhisperの動作コード、月100時間と1,000時間の試算の順に読めば、自社に合うAPIを決められる構成です。料金は2026年10月時点で各公式料金ページを確認した値で、契約前に必ず公式で確かめてください。
まとめ|2027年2月の旧モデル終了を踏まえた文字起こしAPIの選び方の結論
- 日本語の議事録を録音済みファイルで起こすなら、OpenAIの後継モデル
gpt-transcribe(0.0045ドル/分)が第一候補。話者分離までAPIに任せるならAssemblyAIが手数を減らせます。 - 新規実装で
whisper-1・gpt-4o-transcribe系を選ばない。4モデルとも2027年2月26日に終了予定です。 - 音声エージェントや同時字幕なら、ストリーミング単価の低いDeepgram Nova-3が扱いやすい選択肢です。
- 日本語の専門用語と国内サポートを重視するならAmiVoice、既存のクラウド基盤に揃えるならGoogle・AWS・Azureから選びます。
- 音声を社外に出せないならローカルWhisper。月1,000時間でもAPIの定価は数百ドルに収まるため、コスト目的だけでローカルを選ぶ理由はほぼありません。
文字起こしAPIとは何か|クラウドAPIとローカルWhisperの違いと判断軸
文字起こしAPI(音声認識API、Speech-to-Text API)は、音声データを送るとテキストを返すクラウドサービスです。対して「ローカル型」は、Whisperのようなオープンソースモデルを自社のマシンやサーバーで動かす方式を指します。音声認識の仕組みや精度の考え方から整理したい場合は、音声認識とは?AIの仕組み・精度の考え方・業務導入の判断基準を先に読むと比較表の読み方がつかめます。
APIの付加機能とローカルWhisperの運用負荷を分ける2つの判断軸
APIの利点は、環境構築が不要で、話者分離・タイムスタンプ・要約といった付加機能をそのまま使える点にあります。弱点は音声を外部に送ることと、量に比例して従量課金が増えることです。ローカル型は音声を外に出さない代わりに、GPUの準備・モデル更新・スケーリングを自前で抱えます。判断軸は「音声を外部送信できるか」と「月間の処理時間」の2つ。実務では前者が先に決まります。
2026年8月告知のOpenAI旧文字起こしモデル提供終了と後継2モデル
OpenAIは2026年8月26日、公式の非推奨モデル一覧(Deprecations)でwhisper-1・gpt-4o-transcribe・gpt-4o-mini-transcribe・gpt-4o-transcribe-diarizeの4モデルを2027年2月26日に終了すると告知しました。移行先は、録音済みファイル向けのgpt-transcribeと、ライブ用途のgpt-live-transcribeです。
影響が大きいのは「Whisper API」として普及したwhisper-1でしょう。公式の文字起こしガイドではtimestamp_granularities[]はwhisper-1専用とされ、後継のgpt-transcribeはタイムスタンプを返しません。SRT字幕を作る処理は、終了日までにローカルWhisperか他社APIへ寄せる設計変更が要ります。
主要7サービスの文字起こしAPI料金・日本語対応・リアルタイム比較表
単価は録音済みファイル(バッチ・非同期)処理の定価です。ストリーミングは別単価になるサービスが多い点に注意してください。
| サービス | 提供元 | 録音済みの単価 | 無料枠 | リアルタイム | 特徴 |
|---|---|---|---|---|---|
| gpt-transcribe | OpenAI | 0.0045ドル/分 | 専用枠なし | ○(live版) | 用語ヒント指定 |
| Nova-3 | Deepgram | 0.0043ドル/分〜 | 200ドル分 | ◎ | 低遅延 |
| Universal-2 ほか | AssemblyAI | 0.15ドル/時間〜 | 50ドル分 | ○ | 話者分離・要約 |
| Speech-to-Text V2 | Google Cloud | 0.016ドル/分 | V1は月60分 | ○ | 低優先度0.003ドル |
| Amazon Transcribe | AWS | 0.006ドル/分 | 契約形態で確認 | ○ | カスタム語彙 |
| AI Speech | Azure | 0.36ドル/時間 | 月5時間 | ○ | コンテナ提供 |
| AmiVoice API | アドバンスト・メディア | 99〜148.5円/時間 | 毎月60分 | ○ | 日本語特化 |
出典はOpenAIの料金ページ、Deepgramの料金ページ、AssemblyAIの料金ページ、Google Cloud Speech-to-Textの料金ページ、Amazon Transcribeの料金ページ、Azure AI Speechの価格ページ、AmiVoice APIの料金ページです。Azureは東日本リージョンのFast Transcription、AmiVoiceは税込の汎用エンジンの値を載せています。
1分あたり単価と無料枠で並べた7サービスの安い順と料金表の注意点
1分あたりに揃えると、AssemblyAIのUniversal-2(0.0025ドル相当)とGoogleのDynamic Batch(0.003ドル)が最安帯です。続いてDeepgram Nova-3(0.0043ドル)、gpt-transcribe(0.0045ドル)、Amazon TranscribeとAzure(ともに0.006ドル相当)が並びます。
読み違えやすい箇所は3つ。GoogleのDynamic Batchは結果が最長24時間後になる低優先度処理です。Googleの「月60分無料」はV1 APIの料金表の枠で、V2の標準認識は0分目から課金されます。AWSはAmazon Transcribeの料金・使い方の解説でも触れたとおり、2025年7月から新規アカウントの無料利用枠がクレジット制の無料プランへ変わり、料金ページに残る「月60分」がそのまま当たるかは契約形態で確かめる必要があります。
日本語の精度を左右するカスタム語彙・キーワード指定と辞書の対応状況
日本語は同音異義語と社内固有の製品名で誤りが出やすく、精度の差は「語彙を事前に渡せるか」で決まる場面が多くあります。gpt-transcribeはkeywordsとprompt、AWSはカスタム語彙、GoogleとAzureはフレーズヒントやカスタムモデルを持つ構成です。AmiVoiceは単語登録に加えて医療・金融などの分野別エンジンを用意しています。
Deepgramは公式の対応言語一覧でNova-3の日本語を多言語モデルの一部として扱い、AssemblyAIはUniversal-3.5 ProとUniversal-2の両方が言語コードjaに対応します。サービス別の仕様はAmiVoice APIの料金・精度・対応言語の解説やGoogle Cloud Speech-to-Textの料金・日本語対応・APIの使い方にまとめました。
ストリーミング対応の接続方式と課金の数え方が違う3つのパターン
同時字幕や音声エージェントには、音声を流しながら逐次テキストを返すストリーミング対応が必須です。見落としやすいのは課金の数え方の違いです。
- 送った音声の長さ:Deepgram Nova-3(単言語0.0048ドル/分のキャンペーン価格、通常0.0077ドル)、Amazon Transcribe(0.01ドル/分)、OpenAIの
gpt-live-transcribe(0.017ドル/分) - 接続している時間:AssemblyAIは料金ページに「WebSocketを開いてから閉じるまで」と明記し、無音でも課金
- 発話区間だけ:AmiVoiceは無音区間を含めず、ミリ秒単位で集計
会話の密度が低い受付窓口や会議室の字幕ほど、接続時間課金は不利になります。
OpenAIの文字起こしAPIをPythonで動かす手順とモデル移行
ここでの「Whisper API」はOpenAIがクラウドで提供する音声認識APIで、後述するローカル実行のオープンソースWhisperとは別物です。
後継のgpt-transcribe系2モデルと旧whisper-1の役割と単価
| モデル | ドル/分 | 用途 | 状態 |
|---|---|---|---|
| gpt-transcribe | 0.0045 | 録音済み・stream可 | 推奨 |
| gpt-live-transcribe | 0.017 | ライブ字幕 | 推奨 |
| gpt-4o-transcribe | 0.006 | 録音済み | 2027-02-26終了 |
| gpt-4o-mini-transcribe | 0.003 | 低コスト版 | 2027-02-26終了 |
| gpt-4o-transcribe-diarize | 0.006 | 話者分離 | 2027-02-26終了 |
| whisper-1 | 0.006 | 字幕・翻訳 | 2027-02-26終了 |
gpt-transcribeは旧gpt-4o-transcribeより25%安く、移行で費用は増えません。ライブ用の実装はGPT-Live-Transcribeの低遅延ストリーミング実装とGPT-Transcribeとの使い分けで詳しく扱っています。
Python SDKで音声ファイルを文字起こしし日本語の用語ヒントを渡す実装
公式SDKでは、音声ファイルを開いてclient.audio.transcriptions.createに渡します。languagesとkeywordsはリストで、Pythonではextra_bodyに入れるのが公式ガイドの書き方です。
from openai import OpenAI
client = OpenAI() # 環境変数 OPENAI_API_KEY を読む
with open("meeting.mp3", "rb") as f:
result = client.audio.transcriptions.create(
model="gpt-transcribe",
file=f,
extra_body={
"languages": ["ja"], # 日本語を明示して言語判定の揺れを防ぐ
"keywords": ["一創", "受託開発", "要件定義"], # 社内用語のヒント
},
)
print(result.text)
公式ガイドはキーワードを「出力を強制しないヒント」と位置づけ、関係する用語だけに絞るよう求めています。会議ごとに参加者名やプロジェクト名を差し替えると、固有名詞の誤変換を減らせます。単数形のlanguageはlanguagesと併用しません。
25MB上限を超える長時間音声をffmpegで分割して送る手順
1ファイルの上限は25MBで、対応形式はmp3・mp4・mpeg・mpga・m4a・wav・webmです。1時間の会議はモノラル16kHz・64kbpsに落とし、10分ごとに切って送ります。
# 10分(600秒)ごとに分割。64kbpsのモノラルなら1本あたり約4.8MB
ffmpeg -i long_meeting.mp3 -f segment -segment_time 600 -ac 1 -ar 16000 -c:a libmp3lame -b:a 64k part_%03d.mp3
import glob
from openai import OpenAI
client = OpenAI()
texts = []
for path in sorted(glob.glob("part_*.mp3")):
with open(path, "rb") as f:
r = client.audio.transcriptions.create(
model="gpt-transcribe",
file=f,
extra_body={"languages": ["ja"]},
)
texts.append(r.text)
print("\n".join(texts))
固定秒数の分割は境界で単語が切れることがあります。精度を詰める段階では、ffmpegのsilencedetectで無音位置を拾って切る方式に置き換えてください。
stream=Trueで部分結果を受け取る実装とライブ字幕の構成
録音済み音声でも、stream=Trueを付けると部分結果がイベントとして届きます。公式ガイドではgpt-transcribeが対応し、whisper-1は非対応です。
with open("chunk.wav", "rb") as f:
stream = client.audio.transcriptions.create(
model="gpt-transcribe",
file=f,
stream=True,
extra_body={"languages": ["ja"]},
)
for event in stream:
if event.type == "transcript.text.delta":
print(event.delta, end="", flush=True)
マイクからの完全な同時字幕は、Realtime APIの文字起こしセッションに音声を送り続ける構成が本命で、モデルはgpt-live-transcribeを使います。単価は録音済みの約3.8倍です。
ローカルWhisperをインストールして音声ファイルとマイク入力を文字起こしする手順
API課金を避けたい、または音声を外部に出せない場合は、オープンソースのWhisperをローカルで動かします。PyTorch上の実装やTransformers経由の使い方はWhisperをPyTorchで動かす音声認識実装ガイドで掘り下げています。
openai-whisperのインストールとturboモデルで日本語を起こす手順
openai/whisperの公式リポジトリのパッケージを入れ、モデルをロードして音声を渡します。デコードにffmpegを使うため、OSにffmpegを先に入れておきます。
pip install -U openai-whisper
import whisper
model = whisper.load_model("turbo") # tiny/base/small/medium/large/turbo から選択
result = model.transcribe("audio.mp3", language="ja")
print(result["text"])
READMEではturboはlarge-v3を高速化した版(約809Mパラメータ、VRAM約6GB)とされています。日本語中心なら、日本語で追加学習された派生モデル(kotoba-whisperなど)も候補です。
faster-whisperとwhisper.cppでGPUなし環境も速くする設定
CTranslate2で再実装したfaster-whisperは、同じ精度でメモリ使用量と処理時間を削減できます。
from faster_whisper import WhisperModel
model = WhisperModel("base", device="cuda", compute_type="float16")
segments, info = model.transcribe("audio.mp3", language="ja")
for seg in segments:
print(f"[{seg.start:.1f}s] {seg.text}")
GPUのない環境ではdevice="cpu", compute_type="int8"に切り替えます。C++実装のwhisper.cppはCPUのみの環境やエッジデバイスでも量子化モデルで動き、入力は16bitのWAVに変換して渡します。
git clone https://github.com/ggml-org/whisper.cpp
cd whisper.cpp
sh ./models/download-ggml-model.sh base
cmake -B build
cmake --build build -j --config Release
ffmpeg -i meeting.mp3 -ar 16000 -ac 1 -c:a pcm_s16le meeting.wav
./build/bin/whisper-cli -m models/ggml-base.bin -l ja -osrt -f meeting.wav
-osrtでSRT字幕も書き出せるため、whisper-1終了後に字幕ファイルを作る代替経路になります。
マイク入力を5秒チャンクで区切る準リアルタイム文字起こしの実装
Whisperはファイル単位の処理が前提で、マイクの生バイト列をそのまま渡しても動きません。音声を数秒ごとのチャンクに区切って順次認識します。
import whisper
import sounddevice as sd
import numpy as np
model = whisper.load_model("base")
sr = 16000 # サンプリングレート
chunk_sec = 5 # 5秒ごとに認識
while True:
audio = sd.rec(int(chunk_sec * sr), samplerate=sr, channels=1, dtype="float32")
sd.wait()
result = model.transcribe(np.squeeze(audio), language="ja")
print(result["text"])
この方式は準リアルタイムで、チャンク境界で単語が切れます。低遅延が必要ならwhisper_streamingやストリーミングAPIのほうが実用的です。軽量なローカルモデルならWhisperと比較したMoonshine Voiceの導入手順も選択肢になります。
AssemblyAIとDeepgramのAPIで話者分離と日本語文字起こしを試すコード
どちらも登録時の無料クレジットがあり、クレジットカードなしで検証を始められます。
DeepgramのNova-3に日本語音声を送り話者分離付きで受け取るcurl
録音済み音声を1回のHTTPリクエストで送り、JSONで結果を受け取ります。diarize=trueで話者番号が単語ごとに付き、smart_format=trueで数字や句読点が整形されます。
curl -X POST \
"https://api.deepgram.com/v1/listen?model=nova-3&language=ja&diarize=true&smart_format=true" \
-H "Authorization: Token $DEEPGRAM_API_KEY" \
-H "Content-Type: audio/wav" \
--data-binary @meeting.wav
録音済み単価は単言語0.0043ドル/分、多言語0.0052ドル/分です。日本語指定でどちらが当たるかは、検証時に使用量画面で確かめてください。200ドルのクレジットは0.0052ドルで計算しても約640時間分あります。
AssemblyAIでアップロードから話者ラベル付き結果取得までのPython
非同期方式で、音声をアップロードしてジョブを作り、完了まで状態を問い合わせます。流れは公式クイックスタートと同じです。
import os
import time
import requests
BASE = "https://api.assemblyai.com"
headers = {"authorization": os.environ["ASSEMBLYAI_API_KEY"]}
with open("meeting.mp3", "rb") as f:
upload = requests.post(BASE + "/v2/upload", headers=headers, data=f)
audio_url = upload.json()["upload_url"]
job = requests.post(BASE + "/v2/transcript", headers=headers, json={
"audio_url": audio_url,
"language_code": "ja",
"speaker_labels": True,
}).json()
while True:
t = requests.get(BASE + "/v2/transcript/" + job["id"], headers=headers).json()
if t["status"] in ("completed", "error"):
break
time.sleep(3)
for u in t.get("utterances") or []:
print(u["speaker"], u["text"])
話者分離は録音済みで1時間0.02ドルの追加で、Universal-2と合わせて0.17ドル/時間です。全体像はAssemblyAIの日本語対応・料金・APIの使い方にまとめています。
用途別の文字起こしAPIの選び方|議事録・音声エージェント・機密音声
単価の安さだけで選ぶと、必要な機能が足りずに作り込みが増えます。代表的な3つの用途で判断基準を示します。
録音済み議事録のバッチ処理で精度と単価の釣り合うAPIの選び方
録音済みファイルの一括処理ではgpt-transcribeが手堅く、話者分離が要るならAssemblyAIが手数を減らせます。gpt-4o-transcribe-diarize(2027年2月に提供終了予定)を使っている場合は、移行先を先に決めてください。完成品の議事録ツールを買うかAPIで組むかは、AI議事録・自動文字起こしの仕組みと法人での選び方が判断材料になります。
音声エージェント・同時字幕で遅延と常時接続コストを抑える選び方
遅延が体験を左右する用途では、ストリーミング単価と応答速度でDeepgramが第一候補になります。OpenAIのgpt-live-transcribeも会話型アプリに向く選択肢です。GoogleのDynamic Batchのような低優先度の経路は、最長24時間待ちで要件を満たせないため選びません。
日本語の専門用語・機密音声・オンプレ要件がある現場の選び方と相談先
専門用語と国内サポートを重視するならAmiVoiceが適します。音声を外部に出せない要件では、ローカルWhisperか、コンテナ提供の形態を持つAzure AI Speechを検討する流れです。Azureの課金体系はAzure AI Speechの料金解説(無料枠・従量課金S0)で整理しました。設計・開発を外部に任せたい場合は、一創のAI音声認識システム開発でAPI選定から議事録・コールセンター向けの組み込みまで相談できます。
月間処理時間で試算する文字起こしAPIの総額とローカル運用に切り替える分岐点
定価が一律のサービスが多いため、月100時間と1,000時間で並べると差の大きさがそのまま見えます。
月100時間と1,000時間で比べた7サービスの定価ベースの月額試算表
録音済み音声を定価で処理した場合の月額です(無料枠・割引は含めない)。
| サービス | 単価 | 月100時間 | 月1,000時間 |
|---|---|---|---|
| AssemblyAI+話者分離 | 0.17ドル/時 | 17ドル | 170ドル |
| Google Dynamic Batch | 0.003ドル/分 | 18ドル | 180ドル |
| Deepgram Nova-3 | 0.0043ドル/分 | 25.8ドル | 258ドル |
| OpenAI gpt-transcribe | 0.0045ドル/分 | 27ドル | 270ドル |
| Amazon Transcribe | 0.006ドル/分 | 36ドル | 360ドル |
| Azure Fast | 0.36ドル/時 | 36ドル | 360ドル |
| Google V2 標準 | 0.016ドル/分 | 96ドル | 960ドル |
| AmiVoice ログなし | 148.5円/時 | 14,850円 | 148,500円 |
即時性を求めない処理なら、月1,000時間でも多くのサービスが月200〜400ドルの帯に入ります。AmiVoiceは発話区間課金のため、無音の多い会議録音では表より下がります。
ローカルWhisperがAPIより安くなる条件と安くならない条件
ローカル運用の費用は、GPUサーバーの月額とモデル更新・障害対応の人件費の合計です。gpt-transcribeで月1,000時間を処理しても定価は270ドルで、GPUインスタンスの常時稼働費と担当者の工数を足すと多くの企業ではこの額を下回りません。
結論として、コスト削減だけを理由にローカルへ切り替える判断は、月1,000時間規模でも成り立ちにくいと考えます。ローカルが正解になるのは、音声を社外に出せない規程がある場合、社内のGPU資産の余剰時間で回せる場合、ネットワークのない現場で動かす場合です。
文字起こしAPIを採用しない場面と導入で詰まりやすい失敗パターン
25MB制限・接続時間課金・データ保存設定で起きる導入時の失敗パターン
多いのは、検証では短い音声しか使わず、本番の1時間録音で初めて25MB上限のエラーに当たるケースです。分割処理は最初から組み込みます。AssemblyAIのストリーミングを常時接続にして、無音時間まで課金される設計も起きがちな失敗です。
データの扱いも見落とされやすい論点です。GoogleのV1 APIはデータロギングを有効にすると単価が下がる代わりに、音声がモデル改善に使われます。AmiVoiceも「ログ保存あり」のほうが安い体系です。社内規程で音声の第三者利用を禁じているのに安い側で見積もると、後から前提が崩れます。
クラウドAPIを見送りローカルや人手の文字起こしに回すべき条件
- 契約や社内規程で、音声データを国外のクラウドへ送れない(ローカルWhisperかオンプレ提供へ)
- 処理が月数時間の取材音声で、修正に必ず人手を掛ける(文字起こしアプリか外注で足りる)
- 逐語の証拠資料など誤変換が1か所も許されない(APIは下書きにとどめ人手で校正)
月数十時間以上を定型的に処理し、結果を検索や要約に回す用途ならAPIの費用対効果は高くなります。アプリで足りるか迷う段階なら、文字起こしアプリの無料・有料の選び方と用途別の使い分けから比べてください。
よくある質問|文字起こしAPIの無料枠・料金・日本語精度・話者分離
文字起こしAPIの比較で多い質問に答えます。
無料で使える文字起こしAPIと各社の無料枠はどのくらいありますか?
2026年10月時点で、Deepgramは200ドル、AssemblyAIは50ドルのクレジットが登録時に付きます。AmiVoiceは毎月60分、Azureは月5時間、Google CloudはV1 APIで月60分が無料です。AWSは2025年7月に新規アカウントの無料利用枠がクレジット制へ変わったため、契約時の条件を確かめてください。OpenAIに文字起こし専用の無料枠はありません。恒常的に無料で使うなら、課金の発生しないローカルWhisperが選択肢です。
Whisper APIとローカルWhisperはどちらが安く運用できますか?
多くの企業ではAPIのほうが安く収まります。後継のgpt-transcribeは0.0045ドル/分で、月1,000時間でも定価270ドル。ローカルはAPI課金がゼロでも、GPUサーバーと運用の人件費がかかります。ローカルを選ぶ理由はコストより、音声を社外に出せない要件にあると考えてください。なお「Whisper API」のwhisper-1は2027年2月26日に終了予定です。
日本語の精度が高い文字起こしAPIはどれを選べばよいですか?
専門用語辞書や分野別エンジンを持つ日本語特化型ならAmiVoice、汎用APIならkeywordsで用語ヒントを渡せるgpt-transcribeが扱いやすい選択肢です。精度は音声品質・話者数・専門用語の多さで変わります。自社の会議録音を10分程度用意し、2〜3社で同じ音声を起こして誤り箇所を比べるのが確実です。
リアルタイムで文字起こしできるAPIはどれで、料金はいくらですか?
Deepgram、OpenAIのgpt-live-transcribe、Google・AWS・Azure・AmiVoice・AssemblyAIのストリーミングが対応します。2026年10月時点の単価はDeepgram Nova-3が0.0048ドル/分(キャンペーン価格)、Amazon Transcribeが0.01ドル/分、gpt-live-transcribeが0.017ドル/分です。AssemblyAIは接続時間課金のため、無音の多い用途では実額が膨らみます。
話者を分けて文字起こしできるAPIとローカルでの方法はありますか?
できます。AssemblyAIはspeaker_labels、Deepgramはdiarize=trueで話者分離が付きます。OpenAIのgpt-4o-transcribe-diarizeは2027年2月26日に終了予定のため、新規採用は避けてください。ローカルではWhisperXなどで、Whisperの認識結果に話者分離と時刻同期を組み合わせる方法があります。
関連記事
- GPT-Live-Transcribeとは?OpenAIの低遅延ストリーミング文字起こしの実装手順とGPT-Transcribeとの使い分けを解説:ライブ字幕をOpenAIで組む場合の実装手順
- Google Cloud Speech-to-Textとは?料金・無料枠・日本語対応・APIの使い方を解説:Google側の料金区分とAPIの詳細
- AssemblyAIとは?日本語対応・料金・APIの使い方:話者分離・要約まで完結させる場合の詳細
- AmiVoice APIとは?料金・精度・感情分析・対応言語を解説:日本語特化エンジンの選び方
- gpt-4o-transcribe-diarizeとは?話者分離の使い方・料金と2027年2月の提供終了への備え:OpenAIの話者分離モデルの移行準備