本ページの調整値は .env ではなく、アプリ内の App Settings 画面(サイドバー下部の
スライダーアイコン)で設定し、app_settings.jsonc に保存されます。.env に残った値は
無視され、起動ログにキー名が 1 度だけ列挙されます。既存の設定を引き継ぐには
chatwalaau settings migrate --write を実行してください。機能の有効化ゲートと
シークレットは .env のままです。
詳細は 設定 -> アプリケーション設定。
音声とスピーチ
音声入力(STT)
マイクボタンで録音し、POST /api/transcribe で文字起こしします。トランスポートは
デプロイ名から自動選択されます。
REST パス(ゼロ設定)
従来の Whisper 系モデル向け:
WHISPER_DEPLOYMENT_NAME=whisper # または whisper-1 / gpt-4o-transcribe / gpt-4o-mini-transcribe
バックエンドは POST /audio/transcriptions を同期的に呼び、文字起こしを返します。
追加デプロイは不要です。
Realtime パス(gpt-realtime-whisper)
gpt-realtime-whisper は文字起こし専用で、音声 Realtime モデルと併用するため 2 つの
デプロイが必要です:
WHISPER_DEPLOYMENT_NAME=gpt-realtime-whisper
WHISPER_REALTIME_CONNECTION_DEPLOYMENT=gpt-realtime-mini # 最も安価な音声モデル
トランスポートは WHISPER_DEPLOYMENT_NAME 内の realtime 部分文字列で選択され、
WHISPER_MODEL_KIND=rest|realtime で上書きできます。任意の調整:
# 空なら GA URL を選択。gpt-4o-realtime-preview などレガシーモデルのときだけ
# プレビュー値を設定。
AZURE_OPENAI_REALTIME_API_VERSION=
# ブラウザの webm/Opus はこの PCM レートに再サンプリング。許可: 16000, 24000。
WHISPER_REALTIME_AUDIO_RATE=24000
POST /api/transcribe の契約は両トランスポートでバイト単位まで同一のため、SPA は
変更不要です。
読み上げ(TTS)
任意のメッセージをオンデマンドで読み上げます。スピーカーボタンで再生、ダウンロード
ボタンで MP3 保存。音声はキャッシュされ重複呼び出しを避けます。プロバイダは
TTS_PROVIDER(既定 elevenlabs)で選びます。
オプション A -- ElevenLabs:
TTS_PROVIDER=elevenlabs
ELEVENLABS_API_KEY=your-api-key
TTS_MODEL_ID=eleven_multilingual_v2
TTS_VOICE_ID=your-voice-id
オプション B -- Azure OpenAI Realtime 音声(例: gpt-realtime-2)。既存の
AZURE_OPENAI_ENDPOINT と資格情報を再利用:
TTS_PROVIDER=azure-realtime
TTS_REALTIME_DEPLOYMENT=gpt-realtime-2
TTS_REALTIME_VOICE=alloy
# TTS_REALTIME_AUDIO_RATE=24000
Azure Realtime レーンはメッセージ本文をそのまま読み上げます(会話はしません)。 ElevenLabs と同じ挙動です。
Live 会話(GPT-Live)
v0.169.0 の新機能。 マイクの隣にある Live conversation ボタン(音の波のアイコン)を
押すと、エージェントとリアルタイムの音声で会話できます。Live は GPT-Live(Azure
OpenAI の gpt-live-1)を使います。聞きながら同時に話す全二重のモデルで、話している
あいだに相づちを打ち、こちらが話し始めると譲り、考えているあいだは待ちます。
Live 会話で起きること
- 作業はエージェントが行います。 事実の確認、ツール、ファイル、長い回答が必要な 依頼は、GPT-Live が選択中のエージェント(Built-in エージェント、または Prompt エージェント)に任せます。そのエージェント自身のモデル、ツール、MCP サーバー、 スキルが使われます。
- 回答は 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 | 600 | 終了の 1 分前に通知が出ます。 |
| Live silence timeout (seconds) | App Settings > Speech | 60 | 双方が無音のままこの時間が過ぎると終了します。 |
| Live delegation timeout (seconds) | App Settings > Speech | 120 | エージェントの作業 1 回あたりの上限です。 |
いずれも再起動なしで、次の Live 会話から反映されます。
プライバシーと費用
- Azure の資格情報はサーバーの外に出ません。Live 会話の開始・監視・終了はすべて サーバーが行い、ブラウザがサービスとやり取りするのは音声だけです。
- 誰も見ていない Live 会話(閉じたタブなど)は 15 秒後に終了し、サーバーを止めると すべて終了します。
- Live から始まったエージェントの作業は、トークン使用量ダッシュボード
のレーン
liveに集計されます。話していた時間は同じ画面の Live voice ビューで 日別・チャット別に見られます。音声時間は使用量の記録の隣に保存されるため、チャットを 削除しても残ります。料金の計算は行いません。