Deepgram Nova-3の使い方・料金・日本語精度|PythonでのAPI実装まで

要点 (30秒で読める答え): DeepgramはSTT・TTS・Voice Agentを提供する音声AI APIです。Nova-3は45以上の言語、300ms以下の低レイテンシに対応し、プリレコードは$0.0043/分、無料枠は$200です。

音声認識APIをどれにするか。料金・レイテンシ・多言語対応のバランスで見ると、Deepgramは外せない候補だ。ただし最適解は用途・言語・要求精度で変わる。後述の比較条件もあわせて読んでほしい。

Deepgramとは、音声認識(STT)・音声合成(TTS)・ボイスエージェントAPIを束ねたAI音声プラットフォームです。最新モデル「Nova-3」は2026年時点で45以上の言語に対応し、ストリーミング認識のレイテンシは300ms以下。料金は従量課金で、Nova-3はMonolingual / Multilingualで単価が分かれる。最新単価はDeepgram公式料金ページで確認できる(2026年5月時点)。

以下、料金体系の読み解き方からPython APIの実装手順、AssemblyAI・Whisperとの比較まで、2026年5月時点の公開情報をもとに整理していく。

この記事のポイント Nova-3の精度・レイテンシ・日本語対応、APIキー取得から最初の文字起こしまでのPython実装、AssemblyAI・Whisperとの料金比較を2026年5月時点でまとめた開発者向けの早見ガイド。

この記事の要点

  • Deepgramの2026年最新料金(Nova-3・Voice Agent・TTSの単価の見方)
  • APIキー取得から最初の文字起こしまでの実装手順(Python/JavaScript)
  • AssemblyAI・OpenAI Whisper・Google Cloud Speechとの違い
  • 日本語対応の実態と、つまずきやすいポイント
  • 無料枠$200を何にどれだけ使えるか

30秒で結論

  • 無料枠: サインアップで$200分のクレジット付与(プリレコード換算で約46,500分)
  • Nova-3プリレコード: $0.0043/分($0.258/時間)
  • Nova-3ストリーミング: $0.0077/分($0.462/時間)
  • 日本語対応: STT・TTSとも対応済み(精度は英語より若干低め)
  • 最大の強み: レイテンシの低さとAPIの使いやすさ

Deepgramとは?音声AIプラットフォームの全体像

Deepgramは2015年創業、米国サンフランシスコ発の音声AI企業だ。同社のAPIは世界中の企業・開発者に採用されており、IBMとのエンタープライズ向け音声AI連携(2026年2月発表)も話題になった。

APIがカバーする領域は大きく3つに分かれる。

機能モデル名用途
STT(音声→テキスト)Nova-3 / Nova-2文字起こし、リアルタイム音声認識
TTS(テキスト→音声)Aura-2音声読み上げ、ナレーション生成
Voice Agent APIVoicebot対話型音声エージェント構築

つまり「聞き取る・喋らせる・会話させる」が1つのアカウントで完結する。ここが他の文字起こし専業APIと性格が違う点だ。

Deepgramが選ばれる3つの理由

1. 低レイテンシ Nova-3のストリーミング認識は300ms以下を公称している。リアルタイム字幕やボイスアシスタントで、待たされる感覚なしに使えるレベルだ。コールセンター向けAIや音声インターフェースでは、この0.3秒が体感品質を決める。

2. 開発しやすいSDK Python・JavaScript・Go・Ruby・Rust・.NETなど主要言語のSDKが揃う。ドキュメントも整理されていて、APIキー取得から最初の文字起こしまで5分以内に届く。最初のハードルが低いのは地味に効く。

3. 柔軟な機能オプション 話者識別(Speaker Diarization)、スマートフォーマット、キータームプロンプティング(認識させたい固有名詞を事前に渡す機能)、自動言語検出。単なる文字起こしの一歩先を、APIオプションのフラグ1つで足せる。

Deepgramの料金プラン【2026年5月最新】

STT(音声認識)料金

価格設定はシンプルな従量課金だ。基本は「1分あたりの単価 × 使用分数」で計算する。固定費がない分、試しやすい。

Nova-3(最新モデル)

Nova-3は Monolingual(英語専用)Multilingual(多言語対応) で単価が分かれ、さらに「プリレコード(バッチ)」と「ストリーミング(リアルタイム)」でも変わる。組み合わせで4通りあると思えばいい。具体的な分単価はDeepgram公式料金ページで確認してほしい(2026年5月時点)。

Nova-2(旧モデル・現役)

Nova-2もプリレコード / ストリーミングで提供が続いている。Nova-3との単価差は公式料金ページに載っている。

精度が伸びたNova-3を主軸に置く構成が無難だ。旧モデルに留める積極的な理由は、よほど特殊な互換要件がない限り見当たらない。

話者識別(Speaker Diarization)の追加料金

「誰が話したか」を分ける機能を使うと、通常の文字起こし料金にアドオン単価が乗る(Pay As You Go / Growthで単価が異なる)。最新の加算分はDeepgram公式料金ページで確認できる(2026年5月時点)。

TTS(音声合成)料金 — Aura-2

テキスト読み上げのAura-2は、分ではなく文字数(Characters)課金だ。ここだけ課金単位が変わるので注意したい。

Deepgram TTSは Aura-1Aura-2 の2モデルがあり、1,000文字あたりの単価がそれぞれ違う(Aura-2が上位)。正確な単価はDeepgram公式料金ページを参照(2026年5月時点)。

Voice Agent API料金

対話型ボイスエージェントを組む場合の料金がこれだ。

Voice Agent APIには StandardBYO TTSBYO LLMAdvanced など複数プランがあり、いずれも分単価で課金される(Pay As You Go / Growthで単価が異なる)。BYOは「自前のTTS/LLMを持ち込む」構成で、すでに使っている音声・言語モデルがあるならこちらが効く。正確な単価はDeepgram公式料金ページで確認してほしい(2026年5月時点)。

無料枠の詳細

サインアップで付く$200クレジットを、用途別に換算するとこうなる。

用途$200での利用可能量
Nova-3プリレコード約46,500分(約775時間)
Nova-3ストリーミング約25,974分(約433時間)
Aura-2 TTS約13,333,000文字

プリレコードなら775時間。個人のプロトタイプで使い切るのは、まず無理な量だ。クレジットに期限はなく、使い切るまで有効。クレジットカード登録も不要なので、判断は触ってからでいい。

Growth Plan(年額プリペイドクレジット契約)

Growth Planは 年額プリペイドクレジット契約(公式表では年$4K規模〜が目安) を前提に、Pay As You Goより割引単価が適用されるプランだ。対象条件・正確な割引率は営業窓口での個別相談になる(2026年5月時点・最新条件は公式料金を参照)。

APIキーの取得手順

APIキー発行からテスト実行までの接続フロー

上の図がAPIキー発行からテスト実行までの流れだ。実際の操作を順に追う。

STEP 1: アカウント作成

  1. deepgram.com にアクセス
  2. 「Start for free」→ メールアドレスまたはGoogleアカウントでサインアップ
  3. メール認証後、ダッシュボードへ

STEP 2: APIキー発行

ダッシュボードの「API Keys」→「Create a New API Key」をクリック。

  • Name: 任意のキー名を入力(例: my-project-key
  • Permissions: 用途に応じて選択(Member / Administrator)

「Create Key」を押すとAPIキーが表示される。この画面でコピーすること。再表示はできない。

STEP 3: 環境変数への設定

# .env または .bashrc に追記
export DEEPGRAM_API_KEY="your_api_key_here"
# Pythonでの読み込み
api_key = os.environ.get("DEEPGRAM_API_KEY")

APIキーをコードに直接書かない。GitHubへ誤ってコミットすればキーは即座に悪用される。環境変数管理は必須だ。

PythonでDeepgramを使う実装例

基本的な文字起こし(プリレコード)

# インストール
# pip install deepgram-sdk

from deepgram import DeepgramClient, PrerecordedOptions

# クライアント初期化
deepgram = DeepgramClient(os.environ.get("DEEPGRAM_API_KEY"))

# ローカルファイルを文字起こし
def transcribe_file(filepath: str) -> str:
    with open(filepath, "rb") as audio:
        buffer_data = audio.read()
    
    payload = {"buffer": buffer_data}
    
    options = PrerecordedOptions(
        model="nova-3",           # 最新モデル指定
        language="ja",            # 日本語指定
        smart_format=True,        # 句読点の自動挿入
        diarize=True,             # 話者識別ON
        punctuate=True,           # 句読点追加
    )
    
    response = deepgram.listen.prerecorded.v("1").transcribe_file(
        payload, options
    )
    
    return response.results.channels[0].alternatives[0].transcript

# 実行例
transcript = transcribe_file("meeting_audio.mp3")
print(transcript)

URLを指定して文字起こし

音声をローカルに落とさず、URLを直接渡すこともできる。

from deepgram import DeepgramClient, PrerecordedOptions, UrlSource

deepgram = DeepgramClient(os.environ.get("DEEPGRAM_API_KEY"))

# URLから直接文字起こし(ファイルダウンロード不要)
source = UrlSource(url="https://example.com/audio.mp3")

options = PrerecordedOptions(
    model="nova-3",
    language="ja",
    smart_format=True,
    paragraphs=True,    # 段落分割
    summarize="v2",     # 自動要約(英語のみ対応)
)

response = deepgram.listen.prerecorded.v("1").transcribe_url(source, options)
transcript = response.results.channels[0].alternatives[0].transcript
print(transcript)

リアルタイムストリーミング文字起こし

マイク入力をその場で文字に起こす例だ。ボイスアシスタントやライブ字幕の核になる部分になる。

from deepgram import DeepgramClient, LiveOptions, LiveTranscriptionEvents

DEEPGRAM_API_KEY = os.environ.get("DEEPGRAM_API_KEY")

async def realtime_transcription():
    deepgram = DeepgramClient(DEEPGRAM_API_KEY)
    dg_connection = deepgram.listen.asynclive.v("1")
    
    # コールバック関数定義
    async def on_message(self, result, **kwargs):
        sentence = result.channel.alternatives[0].transcript
        if sentence:
            print(f"[リアルタイム] {sentence}")
    
    dg_connection.on(LiveTranscriptionEvents.Transcript, on_message)
    
    # ストリーミングオプション
    options = LiveOptions(
        model="nova-3",
        language="ja",
        encoding="linear16",
        channels=1,
        sample_rate=16000,
        interim_results=True,   # 中間結果を返す
        endpointing=300,        # 無音検出(ms)
    )
    
    await dg_connection.start(options)
    
    # マイク入力ストリーム
    p = pyaudio.PyAudio()
    stream = p.open(
        format=pyaudio.paInt16,
        channels=1,
        rate=16000,
        input=True,
        frames_per_buffer=1024,
    )
    
    print("🎙️ 録音中... (Ctrl+Cで停止)")
    try:
        while True:
            data = stream.read(1024)
            await dg_connection.send(data)
    except KeyboardInterrupt:
        pass
    finally:
        stream.stop_stream()
        stream.close()
        p.terminate()
        await dg_connection.finish()

asyncio.run(realtime_transcription())

話者識別(議事録向け)

会議の文字起こしなら、誰の発言かを分けたい。diarize=True を立てて、結果を話者ごとに整形する。

from deepgram import DeepgramClient, PrerecordedOptions

deepgram = DeepgramClient(os.environ.get("DEEPGRAM_API_KEY"))

with open("meeting.mp3", "rb") as f:
    buffer = f.read()

options = PrerecordedOptions(
    model="nova-3",
    language="ja",
    diarize=True,           # 話者識別ON
    smart_format=True,
    punctuate=True,
)

response = deepgram.listen.prerecorded.v("1").transcribe_file(
    {"buffer": buffer}, options
)

# 話者ごとに整理して出力
words = response.results.channels[0].alternatives[0].words
current_speaker = None
segment = []

for word in words:
    speaker = word.speaker
    if speaker != current_speaker:
        if segment:
            print(f"[話者{current_speaker}] {' '.join(segment)}")
        current_speaker = speaker
        segment = [word.word]
    else:
        segment.append(word.word)

if segment:
    print(f"[話者{current_speaker}] {' '.join(segment)}")

JavaScript(Node.js)での実装

Pythonと同じことはNode.jsでも数行で書ける。バックエンドがJS中心ならこちらでいい。

// npm install @deepgram/sdk

const { createClient } = require("@deepgram/sdk");
const fs = require("fs");

const deepgram = createClient(process.env.DEEPGRAM_API_KEY);

async function transcribeFile(filepath) {
  const audioBuffer = fs.readFileSync(filepath);
  
  const { result, error } = await deepgram.listen.prerecorded.transcribeFile(
    audioBuffer,
    {
      model: "nova-3",
      language: "ja",
      smart_format: true,
      diarize: true,
    }
  );
  
  if (error) {
    console.error("エラー:", error);
    return;
  }
  
  const transcript = result.results.channels[0].alternatives[0].transcript;
  console.log("文字起こし結果:", transcript);
}

transcribeFile("audio.mp3");

DeepgramのTTS(音声合成)Aura-2の使い方

テキストから音声波形へ変換されるTTSパイプライン

上の図のように、テキストを渡すとAura-2が音声波形を返す。保存まで含めた最小コードがこれだ。

from deepgram import DeepgramClient, SpeakOptions

deepgram = DeepgramClient(os.environ.get("DEEPGRAM_API_KEY"))

SPEAK_OPTIONS = {"text": "こんにちは。Deepgramの音声合成APIのテストです。"}

options = SpeakOptions(
    model="aura-2-shiori-ja",   # 日本語女性ボイス
    encoding="linear16",
    container="wav",
)

# 音声ファイルとして保存
response = deepgram.speak.v("1").save("output.wav", SPEAK_OPTIONS, options)
print(f"生成完了: {response.filename}")

日本語ボイスは2026年4月時点で次の2種類が選べる。

ボイス名性別特徴
aura-2-shiori-ja女性標準的な日本語、明瞭な発音
aura-2-hoshi-ja男性落ち着いたトーン

数は多くない。日本語ナレーションの作り分けを重視するなら、ここは物足りなく感じるはずだ。

Deepgramの日本語対応の実態

公式は日本語対応を明示している。ただ実際の使用感には、知っておくべき注意点がある。

STT(音声認識)の日本語精度

Nova-3の日本語精度は、英語と比べると若干落ちる。これが正直なところだ。

  • 標準的な話し言葉: 良好。業務上の会話程度なら十分実用になる
  • 専門用語・固有名詞: 精度が下がりやすい。「キータームプロンプティング」で事前に語を渡すと補正できる
  • 方言・話し癖が強い音声: ここは崩れやすいので過信は禁物

Qiitaのベンチマーク記事(2026年)によると、Nova-3の日本語の単語誤り率(WER。音声を文字に起こしたときの間違いの割合)は約5〜8%程度とされる。一般的な議事録なら、十分使える数字だ。

TTSの日本語品質

Aura-2の日本語音声は発音そのものは自然だ。ただ長文を読ませるとアクセントの不自然さが顔を出すことがある。ナレーションや音声案内のように品質が成果物を左右する用途では、ElevenLabsや専門の日本語TTSサービスと並べて比べたほうがいい。

APIでの言語指定

# 日本語を明示指定する場合
options = PrerecordedOptions(
    model="nova-3",
    language="ja",  # "ja" または "ja-JP" どちらも有効
)

# 自動言語検出(多言語混在音声に有効)
options_auto = PrerecordedOptions(
    model="nova-3",
    detect_language=True,   # 自動検出
)

他の音声認識APIとの比較

Deepgram vs AssemblyAI vs Whisper

主要3サービスを横並びにすると、得意分野の違いがはっきりする。

項目Deepgram Nova-3AssemblyAIOpenAI Whisper API
プリレコード料金$0.0043/分$0.0025/分$0.006/分
ストリーミング料金$0.0077/分$0.0025/分非対応
無料枠$200クレジット$50クレジットなし
レイテンシ300ms以下中程度バッチのみ
日本語精度良好良好最高クラス
話者識別あり(+$0.0015/分)あり(Standard以上)なし
SDKPython/JS/Go等Python/JS等Python/JS等
音声合成(TTS)あり(Aura-2)なしあり(別API)

料金だけ見ればAssemblyAIが最安だ。だが無料枠とリアルタイム性能、TTSの有無まで含めると話が変わる。

どれを選ぶべきか

Deepgramを選ぶべき場合:

  • リアルタイムストリーミングが必要(ボイスアシスタント・ライブ字幕)
  • 文字起こし+TTSを1社で完結させたい
  • 無料枠が大きいほど助かる($200は他社の4倍で圧倒的)
  • ボイスエージェントAPIを使いたい

AssemblyAIを選ぶべき場合:

  • バッチ処理が中心で、分単価を最安に抑えたい($0.0025/分)
  • 英語がメインで日本語は補助的
  • 感情分析・トピック検出など付加機能を重視

OpenAI Whisper APIを選ぶべき場合:

  • ChatGPTやGPT-4とのエコシステム統合が要件
  • 日本語精度を最優先(Whisperは日本語に強い)
  • バッチ処理のみでよく、リアルタイムは不要

編集部の検証メモ

検証の観点

音声認識APIは「料金体系のわかりやすさ」「日本語の実用性」「リアルタイム対応の有無」の3軸で評価軸を整理した。バッチ文字起こしとリアルタイム配信では求められる性能が違う。だから用途を切り分けて比べないと判断を誤る。

公開情報からの比較整理

主要な音声認識APIを公開情報ベースで並べるとこうなる(2026年4月時点、詳細は各社公式の最新ページを参照)。

項目Deepgram Nova-3OpenAI Whisper APIAssemblyAI
プリレコード料金$0.0043/分〜$0.006/分$0.12/時間〜
ストリーミング対応($0.0077/分〜)非対応(自前実装必要)対応
日本語対応STT・TTSとも対応対応(精度評価高め)対応
無料枠サインアップで$200クレジット無料枠なし(従量課金のみ)サインアップでクレジット付与
商用利用公式に商用ライセンス明記API利用規約に準拠商用利用可

公式仕様から読み取る限り、Deepgramは「ストリーミング対応 × 低単価」の組み合わせが強み。Whisperは「単発バッチでの日本語精度」、AssemblyAIは「話者分離・要約などの後処理機能」に寄せた設計だと整理できる。

編集部の総合判断

  • リアルタイム文字起こし・音声エージェントを組みたい人: Deepgram一択に近い。レイテンシと単価のバランスが公開情報上で最も良好。
  • バッチで日本語の議事録を高精度に起こしたい人: Whisper API(または Whisper 系OSS)。ストリーミング不要なら第一候補。
  • 話者分離・自動要約までAPI側に任せたい人: AssemblyAI。後処理パイプラインを自前で組む工数を削れるのが地味に効く。

よくある質問

Q. Deepgramに無料プランはありますか?

クレジットカード不要で$200分のクレジットが付与されます。プリレコード換算で約46,500分(775時間以上)。個人開発・学習・プロトタイプには十分すぎる量です。使い切った後は従量課金へ移行します。

Q. 料金はいくらから?月額固定プランはありますか?

基本は完全従量課金で、月額固定プランはありません。Nova-3プリレコードで$0.0043/分から。月間150時間以上の大規模利用者向けにGrowth Plan(年間契約、割引あり)があり、詳細は営業窓口への問い合わせが必要です。

Q. 日本語の文字起こし精度はどの程度ですか?

Nova-3の日本語は十分実用的です。標準的な会議・インタビュー音声なら単語誤り率5〜8%程度(Qiitaベンチマーク2026年データ)。英語と比べると若干落ちます。専門用語が多い音声では「キータームプロンプティング」で認識精度を底上げできます。

Q. WhisperやAssemblyAIと比べて何が違いますか?

最大の違いはリアルタイムストリーミングのレイテンシと、TTS・Voice Agent APIまで含む音声AI統合基盤であること。AssemblyAIのバッチ料金($0.0025/分)より分単価は高めですが、無料枠が$200と4倍大きく、ストリーミングでは業界最速クラスのレイテンシです。

Q. 録音した会議の長さの上限はありますか?

プリレコードAPIは長尺ファイルを1リクエストで処理でき、数時間規模の会議音声でも分割せず投げられます。実務上は通信の安定性やタイムアウトを避けるため、極端に大きいファイルは事前にチャンク分割しておくと安全です。

Q. 商用利用は可能ですか?

はい、商用利用可能です。企業向けには専用のエンタープライズプランもあり、2026年2月にはIBMとのパートナーシップも発表されています。データプライバシーやSLAが必要なら、エンタープライズプランを選んでください。

Q. Deepgramのデータ保存ポリシーは?

デフォルトでは、文字起こしのために送った音声データは処理後に削除されます。APIパラメータno_store=trueを指定すれば、保存しないよう明示できます。EUリージョンのエンドポイント(api.eu.deepgram.com)を使えば、データ処理をEU内に限定できます。

Deepgramを試してみる

$200の無料クレジットから始められる。クレジットカード登録もいらない。まずはcurl1本で動くか確かめよう。

# クイックスタート(curlで即テスト)
curl \
  --request POST \
  --header 'Authorization: Token YOUR_API_KEY' \
  --header 'Content-Type: audio/mp3' \
  --data-binary @sample.mp3 \
  --url 'https://api.deepgram.com/v1/listen?model=nova-3&language=ja&smart_format=true'

このコマンドで動作確認できる。レスポンスのJSONにresults.channels[0].alternatives[0].transcriptとして文字起こし結果が返る。

リアルタイムボイスアシスタントから議事録の自動生成まで。音声AIを自分のプロダクトに組み込みたいなら、Deepgramはまず触ってみる価値がある。

関連記事