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万が上限です。新規接続数の上限は引き上げを申請でき、引き上げるとトークンの上限も連動して上がります。