プラットフォーム

Voice Live APIとは?料金・日本語対応・Pythonでの使い方【2026年9月版】

Voice Live APIとは?料金・日本語対応・Pythonでの使い方【2026年9月版】

Voice Live APIは、Microsoft Foundry(旧Azure AI Foundry)で提供される音声エージェント向けのAPIです。音声認識・生成AI・音声合成を1本のWebSocket接続にまとめ、ノイズ抑制やエコー除去、発話の区切り検出まで含めてサーバー側で処理します。

この記事では、2026年9月時点の公式ドキュメントと価格APIをもとに、対応モデルと料金区分、日本語で使うときの設定とリージョンの制約、Python SDKでの接続手順を整理します。

まとめ:Voice Live APIの料金・日本語対応・リージョンの要点

  • Voice Live APIは、2025年11月のリリースノートで一般提供(GA)と記載されました。最新のGA版APIバージョンは 2026-07-15 で、各SDKの既定値にもなっています。
  • 料金は選んだモデルで Pro・Basic・Lite の3区分に分かれ、音声とテキストのトークン単位で課金されます。gpt-realtime(Pro)で利用者とエージェントが1分ずつ話すと、音声トークン分だけで約0.096ドルです。
  • 日本語は、音声入力の自動多言語モデル、発話区切り検出 azure_semantic_vad_multilingual、日本語音声(Nanami・Keita・Masaru等)のすべてで使えます。
  • 東日本・西日本リージョンでは、gpt-realtime系と azure-realtime が選べません。日本語HD音声も東日本では使えないため、リージョン選定が最初の分岐になります。
  • イベントはAzure OpenAI Realtime APIと互換です。Azureの音声・アバター・電話連携・Foundryエージェントが要らないなら、Realtime APIを直接使う構成でも足ります。

Voice Live APIの仕組みとAzure OpenAI Realtime APIとの違い

音声認識・生成AI・音声合成を1本の接続で扱う構成

従来の音声ボットは、音声認識(STT)→対話モデル→音声合成(TTS)を別々のサービスとしてつなぐ構成が一般的でした。この構成では、つなぎ目ごとに遅延が積み上がり、割り込みやエコーの処理も自前で実装する必要があります。

Voice Live APIは、この3つを1つのWebSocketエンドポイントで提供します。接続先は wss://<リソース名>.services.ai.azure.com/voice-live/realtime?api-version=2026-07-15&model=<モデル名> で、モデルが変わってもURLは model パラメーター以外同じです。事前デプロイ済みモデルでは、自分でモデルをデプロイしたり容量を計画したりする必要がなく、公式ドキュメントでは「フルマネージド」と説明されています。

サーバー側で処理される主な機能は次のとおりです。

  • ノイズ抑制(azure_deep_noise_suppression):マイクに近い話者の声を優先して背景雑音を抑えます
  • サーバー側エコー除去(server_echo_cancellation):スピーカーから出たエージェント自身の声を入力から取り除きます
  • 意味ベースの発話区切り検出:言いよどみや間を、話し終わりと区別します
  • 関数呼び出し(非同期呼び出しを含む)とMCPサーバー連携

エコー除去には注意点があります。既定ではサービス側の出力音声を参照信号にするため、クライアントでの再生が2秒以上遅れると品質が落ちます。Webやモバイルで再生前に音声を加工する場合は、クライアントが実際に再生した音を参照として送る Live-Reference AEC(reference_source を client、channels を2に設定)を使います。

Azure OpenAI Realtime APIとの互換性と追加機能

Voice Live APIのイベントは、Azure OpenAI Realtime APIのイベントとほぼ同じ形式です。session.update で設定し、response.create で応答を生成する流れも共通しているため、既存のRealtime API実装から移しやすくなっています。

Voice Liveの公式FAQは、Realtime APIに対するVoice Live側の拡張点として次の6つを挙げています。

拡張点 Voice Live APIでの中身
モデルの選択肢 gpt-realtime系・GPT-4.1・GPT-5系・Phi等
音声の選択肢 Azureの600超の音声・カスタム音声
音声言語の範囲 入力146・出力151の言語/ロケール
発話区切り検出 azure_semantic_vad系
アバター 標準・カスタム・写真アバター
連携先 Foundry Agent Service・ACSの電話連携

OpenAIが提供するRealtime API本体の接続方式や実装手順は、Realtime APIの接続方式と実装手順の解説で扱っています。

Voice Live APIの対応モデルと料金区分

対応モデルとPro・Basic・Liteの割り当て

料金区分は自分で選ぶものではありません。使うモデルによって自動的に決まります。2026年9月時点の公式ドキュメントでは、次のように割り当てられています。

区分 対象モデル
Pro gpt-realtime系、gpt-4o、gpt-4.1、gpt-5、gpt-5-chat、gpt-5.6-terra
Basic gpt-realtime-mini、gpt-4o-mini、gpt-4.1-mini、gpt-5-mini
Lite gpt-5-nano、phi4-mm-realtime(プレビュー)

Proの「gpt-realtime系」は、gpt-realtime と gpt-realtime-1.5、およびそれぞれのdatazone版を指します。対応モデル表には、この3区分の表に載っていない gpt-4.1-nano、gpt-5.1、gpt-5.2、gpt-5.4 と、Microsoft独自の音声対話モデル azure-realtime も掲載されています。azure-realtime は2026年7月25日にGAとなり、リリースノートでは「GPT Realtime 1.5より約100ミリ秒低遅延」と説明されています。gpt-5.5、gpt-5.4-mini、gpt-5.4-nano は事前デプロイされておらず、自分のFoundryリソースにデプロイしてBYOM(Bring Your Own Model)で接続します。

音声の扱いはモデルの種類で2通りに分かれます。gpt-realtime系と phi4-mm-realtime は音声をそのまま入力するモデルで、GPT-4.1やGPT-5系はAzureの音声認識で文字にしてから処理します。後者はテキスト化の分だけ遅延がやや増える一方、公式FAQでは「雑音の多い音声にはAzure Speechベースのほうが頑健」とされています。

トークン単価と1分あたりの概算

単価はAzure Retail Prices APIで取得できます(2026年9月14日取得・East US 2とJapan Eastで同額)。請求上のメーター名ではBasicが「Std」と表記されるため、コスト分析画面で探すときは注意してください。

100万トークンあたり(USD) Pro Basic(Std) Lite
モデル音声入力 32 11 4
モデル音声出力 64 22 なし
Azure音声認識入力(標準) 17 15 15
Azure音声合成出力(標準) 31 26 25
テキスト入力 4 0.66 0.11
テキスト出力 16 2.64 0.44

音声のトークン量は、公式の目安で入力が約10トークン/秒、出力が約20トークン/秒です(Phiモデルの入力は約12.5トークン/秒)。これを当てはめ、利用者が1分話してエージェントが1分話した場合の音声トークン分を計算すると次のようになります。

構成 USD 円(JPY参考価格)
gpt-realtime(Pro・モデル音声) 約0.096 約15.3
gpt-realtime-mini(Basic・モデル音声) 約0.033 約5.3
gpt-4.1(Pro・Azure標準音声) 約0.047 約7.6

この概算には、指示文や会話履歴のテキストトークン、キャッシュ入力の料金が含まれていません。会話が長くなるほど履歴の再入力分が増えるため、実運用では上の数字より高くなります。Pro区分の単価の多くは適用開始日が2026年5月1日の行になっており、途中で価格が入れ替わっています。見積もりの前に価格APIか公式価格ページで最新値を確認してください。

料金とは別に請求されるカスタム音声・アバター

カスタム音声認識、カスタム音声(Professional Voice)、カスタムアバターは、Voice Liveのトークン料金とは別に、モデルの学習とホスティングの費用がかかります。標準アバターも別途課金です。カスタム音声とカスタムアバターは利用が制限されており、申請フォームでの承認が必要です。Azureの音声サービス全体の料金体系はAzure AI Speechの料金解説を参照してください。

日本語で使うときの設定とリージョンの制約

音声入力の言語設定と発話区切り検出

GPT-4.1やGPT-5系などテキストモデルを使う場合、音声入力はAzureの音声認識が担当します。language を空にすると自動多言語モデルが使われ、日本語(ja-JP)はこのモデルの対応15ロケールに含まれています。日本語だけの窓口なら ja-JP を1つ指定すると、他言語への誤認識を防げます。複数言語を指定する場合は最大10言語までで、リストの先頭が主言語として扱われます。

gpt-realtime と gpt-realtime-mini は日本語を含む57言語、phi4-mm-realtime は日本語を含む8言語に対応しています。これらのモデルでは言語設定は不要で、書き起こしを取るときだけ言語ヒントを渡します。

日本語で見落としやすいのが、発話区切り検出(turn_detection)の種類です。既定は音量だけで判定する server_vad です。Voice Live独自の azure_semantic_vad は主に英語向けなので、日本語では azure_semantic_vad_multilingual を指定します。こちらは英語・スペイン語・フランス語・イタリア語・ドイツ語・日本語・ポルトガル語・中国語・韓国語・ヒンディー語の10言語に対応しています。フィラー語による誤った割り込みを抑える remove_filler_words もありますが、既定は無効で、公式ドキュメントが例示するフィラーは英語(ah、umm等)だけです。

業界用語や社名の認識精度を上げる手段は2段階あります。軽い対策はフレーズリスト(500語未満)で、足りなければカスタム音声認識モデルを作ります。

日本語で使える音声の名前

音声出力は、使うモデルと音声の種類で指定方法が変わります。

種類 日本語の音声名 使えるモデル
Azure標準音声 ja-JP-NanamiNeural、ja-JP-KeitaNeural、ja-JP-AoiNeural 等 全モデル
Azure HD音声 ja-JP-Nanami・Masaru(:DragonHDLatestNeural) 全モデル
azure-realtime専用音声 nanami(女性)、keita(男性) azure-realtime

ja-JP-NanamiNeural は customerservice や cheerful などの話し方スタイルに対応しています。読み方を固定したい固有名詞は、カスタム辞書(custom lexicon)で発音を登録できます。

東日本リージョンで選べないモデルと音声

日本の企業が最初に確認すべきなのがこの制約です。2026年9月9日更新のリージョン対応表では、Japan East と Japan West に gpt-realtime、gpt-realtime-1.5、gpt-realtime-mini、azure-realtime がありません。東日本で使えるのは、GPT-4o系・GPT-4.1系・GPT-5系といったテキストモデルと phi4-mm-realtime です。

HD音声も、公式ドキュメントでは southeastasia、centralindia、swedencentral、westeurope、eastus、eastus2、westus2 の7リージョンに限られています。東日本のリソースでは、Nanami や Masaru のHD版は選べません。

判断の目安は次のとおりです。

  • 東日本のリソースで組みたい:gpt-4.1-mini などのテキストモデル+Azure標準音声が基本です。ただし東日本の gpt-4.1-mini は Global standard で、推論が東日本で処理されるとは限りません。遅延はモデル音声よりやや増えます。
  • 推論も国内で処理したい:東日本でリージョン内処理のデプロイ種別になっているのは、gpt-4o(Standard)と phi4-mm-realtime(プレビュー・Regional)だけです。
  • 遅延と自然さを優先したい:Southeast Asia などのリソースで gpt-realtime系か azure-realtime を使います。表記は Global standard で、処理場所は特定の地域に固定されません。
  • データの処理地域を固定したい:gpt-realtime-1.5-datazone などのData zone版を提供するのは、対応表では米国とEUのリージョンだけです。日本のリージョンにData zone版はありません。

Foundryリソースの種類もこの段階で決めておきます。Azure Speech単体のリソースでは、Foundry Agent Service連携とBYOMが使えません。リソース種別の違いはAzure AI ServicesとAzure OpenAI Serviceの違いで整理しています。

PythonでVoice Live APIに接続する手順

事前準備:リソース・ロール・パッケージ

必要なものは、対応リージョンに作成したMicrosoft Foundryリソース、Python 3.10以上、Azure CLIの3つです。Microsoft Entra IDで認証する場合は、自分のアカウントにリソースの Cognitive Services User ロールを割り当てます。

pip install "azure-ai-voicelive[aiohttp]==1.3.0" azure-identity
az login
export AZURE_VOICELIVE_ENDPOINT="https://<リソース名>.services.ai.azure.com/"

2026年9月14日時点の最新SDKは、Python azure-ai-voicelive 1.3.0(2026年8月3日公開)、C# Azure.AI.VoiceLive 1.2.0、Java azure-ai-voicelive 1.1.0、JavaScript @azure/ai-voicelive 1.1.0 です。Python SDKは、トークンのスコープとして https://ai.azure.com/.default を既定で使います。

日本語セッションを設定するコード例

次のコードは、gpt-4.1-mini(東日本でも利用可)に接続し、日本語の音声・多言語の発話区切り検出・ノイズ抑制・エコー除去を設定して、サーバーから設定反映の通知を受け取るところまでを行います。

import asyncio
import os

from azure.identity.aio import DefaultAzureCredential
from azure.ai.voicelive.aio import connect
from azure.ai.voicelive.models import (
    AudioEchoCancellation,
    AudioNoiseReduction,
    AzureSemanticVadMultilingual,
    AzureStandardVoice,
    InputAudioFormat,
    Modality,
    OutputAudioFormat,
    RequestSession,
    ServerEventType,
)


async def main() -> None:
    async with DefaultAzureCredential() as credential, connect(
        endpoint=os.environ["AZURE_VOICELIVE_ENDPOINT"],
        credential=credential,
        model="gpt-4.1-mini",
    ) as conn:
        await conn.session.update(
            session=RequestSession(
                modalities=[Modality.TEXT, Modality.AUDIO],
                instructions="日本語で簡潔に答えるサポート担当として振る舞ってください。",
                voice=AzureStandardVoice(name="ja-JP-NanamiNeural"),
                input_audio_format=InputAudioFormat.PCM16,
                output_audio_format=OutputAudioFormat.PCM16,
                turn_detection=AzureSemanticVadMultilingual(),
                input_audio_noise_reduction=AudioNoiseReduction(type="azure_deep_noise_suppression"),
                input_audio_echo_cancellation=AudioEchoCancellation(),
            )
        )
        async for event in conn:
            if event.type == ServerEventType.SESSION_UPDATED:
                print("session ready:", event.session.id)
                break
            if event.type == ServerEventType.ERROR:
                print("error:", event.error.message)
                break


asyncio.run(main())

RequestSession は、送信時に {"type": "azure_semantic_vad_multilingual"} や {"name": "ja-JP-NanamiNeural", "type": "azure-standard"} といったJSONに変換されます。AudioEchoCancellation() は引数なしで server_echo_cancellation になります。

このコードは azure-ai-voicelive 1.3.0 の型定義に沿って書いたもので、実リソースに接続した応答例は掲載していません。マイク音声の送信とスピーカー再生も含めていません。24kHz・16bit・モノラルのPCMをBase64文字列にして conn.input_audio_buffer.append(audio=...) で送り、RESPONSE_AUDIO_DELTA イベントで届く音声を再生します。PyAudioを使った実装は、Microsoft LearnのVoice Liveクイックスタートに含まれています。

APIバージョンと接続の上限

APIバージョン 状態 主な変更
2026-07-15 GA(SDK既定) セッション期限の通知、並列ツール呼び出し
2026-06-01-preview プレビュー 2026-07-15の前段
2026-04-10 GA MCP・Foundryエージェント連携がGA
2026-01-01-preview プレビュー イベントと設定項目の拡充
2025-10-01 GA 最初のGA版

2026-07-15には破壊的変更が1つあります。画像入力のフィールド名が url から image_url に変わったため、画像を送る実装はSDK更新時に修正が必要です。スマートな発話区切り検出とWebRTC接続は、2026-07-15の時点でもプレビューのままです。

1リソースあたりの上限(Standard S0)は、新規接続が毎分30、1セッションの接続時間が60分以内、トークンが毎分12万以内です。公式FAQ(2026年3月31日更新)には毎分10万トークンと書かれていますが、2026年9月9日更新の上限ページは12万です。設計では新しい上限ページの値を使ってください。60分を超える通話を扱う場合は、会話履歴を引き継いで再接続する処理が必要です。

電話・エージェント・アバターとの連携

Azure Communication Servicesによる電話連携

電話への接続は、Azure Communication Services(ACS)のCall Automation APIが担います。ACSで取得した電話番号のほか、SIPのDirect Routingで既存の通信事業者やPBXをつなぐこともできます。

ACS以外では、Twilio Media Streams、Infobip Calls、Genesys AudioHook、Sinch Voice、Bandwidth Voiceの音声コネクタ経由での接続が公式に案内されています。コールセンター向けの構成は、GitHubの「Call Center Voice Agent Accelerator」テンプレートがひな形になります。

Foundry Agent ServiceとMCPの接続

Foundry Agent Serviceで作ったエージェントには、model の代わりに agent-name と agent-project-name を指定して接続します。この連携は2026年4月(APIバージョン2026-04-10)でGAになりました。旧Agent Service(classic)で agent-id を渡していた実装は、新しいAgent Serviceへの移行が推奨されています。

MCPサーバーはモデル直結の構成で使えますが、Phiモデルは対象外です。エージェント経由では新しいFoundryエージェントだけが対応し、classicのエージェントでは使えません。

アバター出力の種類

アバターは、音声出力と同期した映像をWebRTCで受け取る仕組みです。Microsoftが用意する標準アバター、動画から作るカスタムアバター、1枚の写真から話す映像を生成する写真アバター(ベースモデルは vasa-1、推奨解像度512×512)の3種類があります。口の動きを自前の3Dモデルで再現したい場合は、アバター映像の代わりに口形素(viseme)のIDだけを受け取ることもできます。

Voice Live APIを選ばないほうがよい場面

次の条件に当てはまる場合は、モデルの提供地域や接続時間の制約を確認し、別の構成と比較してください。

  • 日本国内での処理が要件で、モデルが直接音声を扱う構成にしたい:東日本・西日本にgpt-realtime系とazure-realtimeがなく、日本のリージョンにData zone版もありません。国内処理を優先すると、gpt-4o(Standard)かプレビュー版の phi4-mm-realtime(Regional)に選択肢が絞られます。
  • Gemini系のモデルで音声エージェントを作りたい:Voice Liveに事前デプロイされているのはOpenAI系・Phi・azure-realtimeです。Googleのモデルを使うなら、Gemini Live APIを直接使うほうが素直です。
  • 既にAzure OpenAIのgpt-realtimeで要件を満たしている:Azureの音声、アバター、電話連携、Foundryエージェントのどれも使わないなら、Voice Liveを挟む利点は小さくなります。イベントは互換なので、必要になった時点で移行できます。
  • 1回の通話が60分を超えるのが前提:接続は60分で切れるため、再接続と履歴の引き継ぎを作り込む必要があります。

よくある質問

Voice Live APIは日本語に対応していますか?

対応しています。音声入力の自動多言語モデル、発話区切り検出の azure_semantic_vad_multilingual、音声出力の ja-JP-NanamiNeural などがいずれも日本語を扱えます。発話区切り検出の azure_semantic_vad は主に英語向けなので、日本語では multilingual 版を指定してください。

Voice Live APIの料金はどのくらいかかりますか?

モデルによってPro・Basic・Liteの区分が決まり、トークン単位で課金されます。利用者とエージェントが1分ずつ話す場合の音声トークン分は、gpt-realtimeで約0.096ドル、gpt-realtime-miniで約0.033ドルです。テキストトークンやキャッシュ入力、カスタム音声・アバターの費用は別にかかります。

Azure OpenAI Realtime APIとはどちらを使うべきですか?

Azureの600超の音声やカスタム音声、アバター、ACSでの電話連携、Foundry Agent Serviceとの接続のいずれかが必要ならVoice Live APIです。gpt-realtimeの内蔵音声だけで足りる場合は、Realtime APIを直接使っても構いません。

東日本リージョンでgpt-realtimeは使えますか?

2026年9月9日更新のリージョン対応表では、Japan EastとJapan Westのどちらにもgpt-realtime系とazure-realtimeはありません。東日本ではGPT-4o系・GPT-4.1系・GPT-5系のテキストモデルとphi4-mm-realtimeが使えます。

1回の接続は何分まで続けられますか?

Standard(S0)では1セッションの接続時間は60分以内です。あわせて、1リソースあたり新規接続は毎分30、トークンは毎分12万が上限です。新規接続数の上限は引き上げを申請でき、引き上げるとトークンの上限も連動して上がります。

関連記事

お気に入りに入れた記事の一覧

この記事は以下の記事からリンクされています

資料請求

RELATED POSTS 関連記事

目次