音声を文字に変換する「文字起こしAPI」は、議事録の自動化から音声エージェントまで用途が広がり、選択肢も急増しました。OpenAIのWhisper系APIやGoogle・AWS・Azure、低遅延で伸びるDeepgram、話者分離まで完結するAssemblyAI、日本語特化のAmiVoiceと、それぞれ料金体系も得意分野も異なります。この記事では主要7サービスを料金・日本語精度・リアルタイム対応で比較し、用途別の選び方、OpenAI APIとローカルWhisperの実装、両者の使い分けまでを整理します。料金は2026年7月時点の目安で、正確な最新値は各公式料金ページで確認してください。
まとめ:用途で選ぶ文字起こしAPIの結論
- 日本語の議事録をバッチで高精度に起こすなら、OpenAIのWhisper系API(gpt-4o-transcribe / whisper-1、$0.006/分)が本命。話者分離・要約までAPI側に任せたいならAssemblyAIが有力。
- 音声エージェントなどリアルタイム重視なら、低遅延と単価のバランスでDeepgram(Nova-3、ストリーミング約$0.0077/分)が扱いやすい。OpenAIもRealtime APIでストリーミングに対応。
- 日本語特化・国産のサポートや導入実績を重視するならAmiVoice、クラウド基盤に合わせるならGCPのGoogle Cloud Speech-to-Text/AWSのAmazon Transcribe/AzureのAI Speech。
- 従量課金を避けたい・オフラインで動かしたいなら、オープンソースのWhisperをローカル実行。API課金は発生しないが、GPUや運用の手間がかかる。
文字起こしAPIとは|ローカル型との違い
文字起こしAPI(音声認識API/Speech-to-Text API)は、音声データを送るとテキストを返すクラウドサービスです。自前でモデルを用意せず、HTTPリクエストやSDK経由で高精度な音声認識を組み込めます。対して「ローカル型」は、Whisperのようなオープンソースモデルを自分のマシンやサーバーで動かす方式です。
APIを使うメリットとローカル(オープンソース)型との違い
APIの利点は、環境構築が不要で、話者分離・タイムスタンプ・自動要約といった付加機能をそのまま使える点です。処理はベンダー側のGPUで走るため、手元のハードウェアに依存しません。弱点は、音声データを外部に送るためセキュリティ要件が厳しい現場では使いにくく、量が増えるほど従量課金がかさむことです。
ローカル型は、API課金が発生せず音声を外に出さないため、機密性の高い議事録や大量処理でコストを抑えたい場面に向きます。反面、GPU準備・モデル更新・スケーリングを自前で行う運用負荷が発生します。判断基準は「月間の処理時間」と「音声データを外部送信できるか」の2点です。
主要な文字起こしAPIの比較【料金・日本語・リアルタイム】
まず主要7サービスを一覧で比較します。単価はバッチ(非同期)処理の目安で、ストリーミングは別料金になるサービスが多い点に注意してください。
| サービス | 提供元 | 料金の目安(/分) | 無料枠 | リアルタイム | 特徴 |
|---|---|---|---|---|---|
| Whisper / gpt-4o-transcribe | OpenAI | $0.006(mini $0.003) | 共通枠のみ | ○(Realtime API) | 99言語・高精度・実装が容易 |
| Deepgram Nova-3 | Deepgram | $0.0043〜(配信$0.0077) | $200クレジット | ◎ | 低遅延・音声エージェント向け |
| Universal | AssemblyAI | $0.0025〜 | $50クレジット | ○ | 話者分離・要約までAPI完結 |
| Speech-to-Text | Google Cloud | 従量(無料枠あり) | 60分/月 | ○ | 多言語・GCP連携 |
| Amazon Transcribe | AWS | $0.024〜(大量で逓減) | 60分/月×12ヶ月 | ○ | AWS連携・カスタム語彙 |
| AI Speech | Azure | 約$0.017(バッチ安) | あり | ○ | Azure連携・オンプレ選択肢 |
| AmiVoice API | アドバンスト・メディア | 秒課金(無料枠あり) | 60分/月 | ○ | 日本語特化・国産 |
料金は2026年7月時点の概算・米ドル建てで、実際の請求は音声長・オプション・為替で変動します。最新の正確な単価は各公式料金ページで確認してください。
料金・無料枠で見る選択肢
純粋な単価では、AssemblyAI Universal(約$0.0025/分)とDeepgram Nova-3(バッチ約$0.0043/分)が安価な部類です。OpenAIはgpt-4o-mini-transcribeが$0.003/分と競争力があり、標準のgpt-4o-transcribe/whisper-1は$0.006/分。GoogleとAWSは基本単価が高めですが、既存のクラウド基盤に統合しやすい利点があります。無料枠はDeepgramの$200クレジットが大きく、検証段階のコストを抑えられます。1,000時間規模ではDeepgram系とGoogle・AWS系で総額が数倍変わる。想定処理量で試算しておくと、この総額の逆転を見落とさずに済む。
日本語の精度と対応
日本語を主に扱うなら、国産で日本語に最適化されたAmiVoiceが有力な選択肢です。専門用語辞書や電話音声向けエンジンが揃い、国内サポートを受けられます。汎用APIではOpenAIのWhisper系が日本語の精度・語彙の広さで扱いやすく、GoogleやAssemblyAIも日本語に対応します。日本語特有の同音異義語や固有名詞は、カスタム語彙・辞書機能の有無が精度を左右します。詳細はAmiVoice APIの概要と特徴やGoogle Cloud Speech-to-Textの料金・日本語対応の解説を参照してください。
リアルタイム(ストリーミング)対応の可否
会議の同時字幕や音声エージェントには、音声を流しながら逐次テキストを返す「ストリーミング(リアルタイム)」対応が必須です。低遅延と単価のバランスではDeepgramが有利で、OpenAIもRealtime APIでストリーミング文字起こしに対応します。Google・AWS・Azure・AmiVoiceもストリーミング用のエンドポイントを持ちますが、バッチとは別料金・別接続方式(WebSocketなど)になる点に注意してください。
OpenAIの文字起こしAPIの使い方(Whisper / gpt-4o-transcribe)
導入が容易で日本語精度も高いOpenAIのAPIを例に、実装の流れを示します。ここでの「Whisper API」はOpenAIがクラウドで提供する音声認識APIで、後述するローカル実行のオープンソースWhisperとは別物です。
モデルの違い(whisper-1 / gpt-4o-transcribe / gpt-4o-mini-transcribe)
OpenAIの文字起こしモデルは3系統です。whisper-1は従来モデルで、SRT字幕やタイムスタンプ付きのverbose_json出力に対応します。gpt-4o-transcribeはWhisperを置き換える高精度モデルで、単語誤り率と言語認識が改善されています。gpt-4o-mini-transcribeはより安価な軽量版です。字幕ファイルなど細かい出力形式が必要ならwhisper-1、精度重視ならgpt-4o-transcribe、コスト重視ならgpt-4o-mini-transcribeを選びます。
音声ファイルを文字起こしする実装
Python向け公式SDKでは、音声ファイルを開いてclient.audio.transcriptions.createに渡すだけです。
from openai import OpenAI
client = OpenAI() # 環境変数 OPENAI_API_KEY を使用
with open("meeting.mp3", "rb") as f:
result = client.audio.transcriptions.create(
model="gpt-4o-transcribe",
file=f,
language="ja", # 日本語を明示すると精度が安定
)
print(result.text)
languageを指定すると言語判定の揺れを防げます。1ファイルあたりの上限(25MB前後、gpt-4o系は約25分/1,500秒の長さ上限もあり)を超える長時間音声は、無音区間で分割してから送るのが定石です。
リアルタイム(ストリーミング)文字起こしの実装
ライブ字幕のように結果を逐次受け取りたい場合は、Realtime APIのtranscriptionセッションを使うか、確定済み音声に対してstream=Trueを付けて部分結果を受け取ります。
with open("chunk.wav", "rb") as f:
stream = client.audio.transcriptions.create(
model="gpt-4o-transcribe",
file=f,
language="ja",
stream=True,
)
for event in stream:
if event.type == "transcript.text.delta":
print(event.delta, end="", flush=True)
マイクからの完全な同時字幕は、Realtime APIにWebSocket/WebRTCで音声を送り続ける構成が本命です。ストリーミングはバッチより単価が上がる傾向があるため、常時稼働の用途では処理量を試算しておきます。
ローカル(オープンソース)Whisperで文字起こしする方法
API課金を避けたい、または音声を外部に出せない場合は、オープンソースのWhisperをローカルで動かします。「音声認識ライブラリ」を探している場合も、まずはWhisper系が候補になります。
whisperパッケージの導入と基本実装
公式のPythonパッケージをインストールし、モデルをロードして音声ファイルを渡します。
pip install -U openai-whisper
import whisper
model = whisper.load_model("base") # tiny/base/small/medium/large から選択
result = model.transcribe("audio.mp3", language="ja")
print(result["text"])
モデルサイズが大きいほど精度は上がりますが、必要なVRAMと処理時間も増えます。日本語中心なら、日本語に追加学習された派生モデル(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}")
C++実装のwhisper.cppはGPUなしのCPU環境やエッジデバイスでも動き、量子化モデルで軽量に実行できます。GPUがあるならdevice="cuda"指定で処理時間を大幅に短縮できます。
マイク入力のリアルタイム文字起こし
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も選択肢になります。
用途別の文字起こしAPIの選び方
比較表だけでは決めきれないため、代表的な3つの用途で判断基準を示します。単価の安さだけで選ぶと、必要な機能が足りずに結局作り込みが増えることがあります。
議事録・バッチ処理のコストと精度
録音済みファイルをまとめて処理する用途では、精度とコストのバランスからOpenAIのgpt-4o-transcribeが手堅い選択です。話者ごとの発言分けや自動要約までAPIに任せたいなら、話者分離・要約を標準搭載するAssemblyAIが手数を減らせます。OpenAI系で話者分離を行いたい場合は、専用モデルのgpt-4o-transcribe-diarize(話者分離対応)が使えます。
音声エージェント・同時字幕などリアルタイム
遅延が体験を左右する用途では、ストリーミング単価と応答速度に優れたDeepgramが第一候補です。OpenAIのRealtime APIも会話型の音声アプリに向きます。ここでバッチ専用の安いAPIを選ぶと、ストリーミング非対応で作り直しになるため避けるべきです。
日本語重視・オンプレ/セキュリティ重視
日本語の固有表現や専門用語を重視し、国内サポートを求めるならAmiVoiceが適します。音声データを外部に出せない要件では、クラウドAPIではなくローカルWhisperや、オンプレ提供のあるAzure・Google系を検討します。逆に、少量で試すだけの段階からエンタープライズ契約を前提にした重いサービスを選ぶ必要はありません。音声認識システムの設計・開発を外部に任せたい場合は、音声認識AIの開発サービスも検討してください。
よくある質問
無料で使える文字起こしAPIはありますか?
多くのAPIに無料枠があります。Google Cloud Speech-to-TextとAmiVoiceは月60分程度、AWSは新規アカウントで12か月間60分/月、Deepgramは$200、AssemblyAIは$50のクレジットが付きます。OpenAIには文字起こし専用の無料枠はなく、新規アカウントの共通クレジットの範囲で試す形です。恒常的に無料で使いたい場合は、課金の発生しないローカルWhisperが選択肢になります。
Whisper APIとローカルWhisperはどちらが安いですか?
少量ならAPI、大量ならローカルが有利です。OpenAIのWhisper系APIは$0.006/分で、初期費用ゼロですぐ使えます。処理量が月に数百時間を超えると、GPUを用意してローカル実行するほうが総コストを抑えられる場合があります。運用の手間まで含めて判断してください。
日本語の精度が高いAPIはどれですか?
日本語特化ではAmiVoiceが強く、汎用ではOpenAIのgpt-4o-transcribeやWhisperが安定します。精度は音声品質・専門用語の多さで変わるため、自社の実データで短い比較検証を行うのが確実です。
リアルタイムで文字起こしできるAPIはありますか?
Deepgram、OpenAIのRealtime API、Google・AWS・Azure・AmiVoiceのストリーミングエンドポイントが対応します。低遅延重視ならDeepgram、会話型アプリならOpenAIのRealtime APIが向いています。
話者を分けて文字起こしできますか?
できます。AssemblyAIは話者分離を標準搭載し、OpenAIはgpt-4o-transcribe-diarizeで話者分離に対応します。ローカルではWhisperXなどで分離と時刻同期を組み合わせる方法があります。