音声入力と読み上げは、ほかのモデルと同じく App Settings > Model Offering Catalog の
Transcription と Speech の offering を使います。以前の設定
(WHISPER_DEPLOYMENT_NAME、TTS_PROVIDER、TTS_REALTIME_DEPLOYMENT など)は効かなくなり、
offering を追加するまで音声入力と読み上げは「未設定」になります。
chatwalaau models migrate-speech で以前の設定に対応する offering を確認し、
chatwalaau models migrate-speech --write で追加してください。声の設定は新しい
TTS voice に自動で引き継がれます。
音声とスピーチ
音声のモデルは Model Offering Catalog の offering です。音声入力用の Transcription と、読み上げ用の Speech を 1 つずつまで登録できます。登録すると その機能が有効になり、変更は次のリクエストから反映されます(再起動は不要)。 どう聞こえるか(TTS の声とサンプルレート)は App Settings > Speech で設定します。
各 offering のエンドポイントと API キーの環境変数は省略できます。省略すると、Live や
Decision の offering と同じく AZURE_OPENAI_ENDPOINT と既存の Azure 認証を使います。
別の Azure リソースにある音声デプロイメントは、専用の endpoint と api_key_env を
指定できます。
音声入力(STT)
マイクボタンで録音し、POST /api/transcribe で文字起こしします。Transcription の
offering(provider azure-openai)を追加してください。接続方式はモデル名から選ばれます。
REST パス
従来の Whisper 系モデル(whisper、whisper-1、gpt-4o-transcribe、
gpt-4o-mini-transcribe)向け:
{
"id": "speech-to-text",
"provider": "azure-openai",
"model_ref": "gpt-4o-transcribe",
"operations": ["transcription"]
}
バックエンドは POST /audio/transcriptions を呼び、文字起こしを返します。追加の
デプロイは不要です。api_version の既定値は 2024-10-21 です。
Realtime パス(gpt-realtime-whisper)
gpt-realtime-whisper は文字起こし専用で、音声 Realtime モデルと併用するため、
offering に 2 つのデプロイを書きます:
{
"id": "speech-to-text",
"provider": "azure-openai",
"model_ref": "gpt-realtime-whisper",
"connection_model_ref": "gpt-realtime-mini", // 最も安価な音声モデル
"operations": ["transcription"]
}
モデル名に realtime を含むとこのパスになります。"transport": "rest" または
"realtime" で上書きできます。api_version は GA パスなら空のまま、
gpt-4o-realtime-preview などのレガシーモデルのときだけプレビュー値を設定します。
ブラウザの webm/Opus は App Settings > Speech > Realtime STT sample rate
(16000 または 24000)に再サンプリングされます。
POST /api/transcribe の契約は両方の接続方式で同じなので、アプリ側は変わりません。
読み上げ(TTS)
任意のメッセージをオンデマンドで読み上げます。スピーカーボタンで再生、ダウンロード ボタンで MP3 保存。音声はキャッシュされ重複呼び出しを避けます。Speech の offering を追加し、その provider でサービスを選びます。
オプション A -- Azure OpenAI Realtime 音声(例: gpt-realtime-2)。既存の
AZURE_OPENAI_ENDPOINT と資格情報を再利用:
{
"id": "text-to-speech",
"provider": "azure-openai",
"model_ref": "gpt-realtime-2",
"operations": ["speech"]
}
オプション B -- ElevenLabs: キーは .env に置き
(ELEVENLABS_API_KEY=your-api-key)、名前で参照します:
{
"id": "text-to-speech",
"provider": "elevenlabs",
"model_ref": "eleven_multilingual_v2",
"api_key_env": "ELEVENLABS_API_KEY",
"operations": ["speech"]
}
声は App Settings > Speech > TTS voice で設定します。Azure の声の名前(alloy、
marin、cedar など。空欄なら alloy)か、ElevenLabs の voice ID(ElevenLabs では必須)
です。Azure の出力サンプルレートは Realtime TTS sample rate です。
Azure Realtime レーンはメッセージ本文をそのまま読み上げます(会話はしません)。 ElevenLabs と同じ挙動です。
コマンドラインから
chatwalaau models add --id speech-to-text --provider azure-openai \
--model-ref gpt-realtime-whisper --connection-model-ref gpt-realtime-mini \
--operation transcription --yes
chatwalaau models add --id text-to-speech --provider elevenlabs \
--model-ref eleven_multilingual_v2 --operation speech --yes
chatwalaau models migrate-speech # 以前の設定に対応する offering を表示(dry run)
chatwalaau models migrate-speech --write # その offering を追加
Live 会話(GPT-Live)
v0.169.0 の新機能。 マイクの隣にある Live conversation ボタン(音の波のアイコン)を
押すと、エージェントとリアルタイムの音声で会話できます。Live は GPT-Live(Azure
OpenAI の gpt-live-1)を使います。聞きながら同時に話す全二重のモデルで、話している
あいだに相づちを打ち、こちらが話し始めると譲り、考えているあいだは待ちます。
Live 会話で起きること
- 作業はエージェントが行います。 事実の確認、ツール、ファイル、長い回答が必要な 依頼は、GPT-Live が選択中のエージェント(Built-in エージェント、または Prompt エージェント)に任せます。そのエージェント自身のモデル、ツール、MCP サーバー、 スキルが使われます。Computer Use を有効にし、このマシンで Live を 開始した場合は、その作業で Windows のデスクトップも操作できます(v0.170.0)。
- 回答は 2 通りです。 短い要約が音声で 読み上げられ、ツール呼び出しを含む全文が チャットに表示されます。コードや表は読み上げません。
- 話した内容はすべてチャットに残ります。 Live の印が付いたメッセージとして 記録され、こちらが話して遮った返答には (interrupted) が付きます。Live を 終えたあとも同じチャットでテキストで続けられ、エージェントは音声での会話全体を 踏まえて答えます。
- 入力ボックスは Live 行になります。 マイクの音量バーがティールで表示され (Voice Input は赤のまま)、状態(Connecting、Live、Working、 Muted)、残り時間、ミュート、送信、停止が並びます。Live 中は読み上げ (TTS)が止まります。
- ミュートはお使いの端末でマイクを切り、サービスにも伝えます。ミュート中は音声が コンピューターから出ません。
- Live 中もテキストを入力できます。 入力した内容は同じ会話に加わり、チャットに 自分のメッセージとして表示され、アシスタントはそれに答えます。名前・住所・URL など、 声で伝えにくいものに便利です。Live 中は添付とスラッシュコマンドは使えません。
- 作業の様子が見え、止められます。 2 件動いていれば行に Working (2) と表示され、 各タスクは回答が出る位置にチャット内で表示されます。Show progress は折りたたみで (書きかけの回答でチャットが埋まらないように)、Cancel で取り消せます。取り消し た タスクは途中までの内容を残し、アシスタントはその結果を待つのをやめます。
Live を使える場所
全画面のチャット(デスクトップとスマートフォン)で、選択中の run-target が Built-in
エージェントまたは Prompt エージェントのときです。Workflow やハーネス エージェント、
デモモードでは表示されません。マイクには安全な
ページ(https:// または localhost)が必要です。
設定
-
Azure OpenAI リソースに
gpt-live-1をデプロイします。 -
App Settings > Model Offering Catalog の Live セクションにオファリングを追加します。 provider は
azure-openai、model ref はデプロイ名(例:gpt-live-1)です。保存すると Live が有効になります --.envの設定も再起動も不要です。オファリングのエンドポイントと API キーの環境変数は任意で、省略するとAZURE_OPENAI_ENDPOINTと既存の Azure の 資格情報を使います。{"id": "gpt-live-1","provider": "azure-openai","model_ref": "gpt-live-1","operations": ["live"]} -
任意: Task model assignments の Live delegation で、Live から任された作業に エージェントが使うチャットモデルを選びます。Follow session / default のままなら、 選択中のエージェント自身のモデルを使います。
-
任意: App Settings > Speech で Live voice(声)を選びます。
Live オファリングは 1 つまでで、azure-openai プロバイダを使い、他の用途(operation)とは
兼用できません。
| 設定 | 場所 | 既定値 | 意味 |
|---|---|---|---|
| Live オファリング | App Settings > Model Offering Catalog > Live | なし(Live 無効) | GPT-Live のデプロイ。登録するとボタンが表示されます。 |
| Live delegation | App Settings > Model Offering Catalog > Task model assignments | 選択中エージェントのモデル | 任された作業を実行するチャットモデル。 |
| Live voice | App Settings > Speech | marin | alloy、ash、ballad、beacon、bossa、cedar、cinder、coral、delta、echo、gleam、marin、meridian、quartz、ripple、sage、shimmer、stone、tempo、verse、vesper、willow |
| Live session limit (seconds) | App Settings > Speech | 1200(20 分) | 終了の 1 分前に通知が出ます。 |
| Live silence timeout (seconds) | App Settings > Speech | 60 | 双方が無音のままこの時間が過ぎると終了します。 |
| Live delegation timeout (seconds) | App Settings > Speech | 300(5 分) | エージェントの作業 1 回あたりの上限です。 |
いずれも再起動なしで、次の Live 会話から反映されます。
プライバシーと費用
- Azure の資格情報はサーバーの外に出ません。Live 会話の開始・監視・終了はすべて サーバーが行い、ブラウザがサービスとやり取りするのは音声だけです。
- 誰も見ていない Live 会話(閉じたタブなど)は 15 秒後に終了し、サーバーを止めると すべて終了します。
- Live から始まったエージェントの作業は、トークン使用量ダッシュボード
のレーン
liveに集計されます。話していた時間は同じ画面の Live voice ビューで 日別・チャット別に見られます。音声時間は使用量の記録の隣に保存されるため、チャットを 削除しても残ります。料金の計算は行いません。