メインコンテンツまでスキップ
v0.129.0 で App Settings へ移動

本ページの調整値は .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 は赤のまま)、状態(ConnectingLiveWorkingMuted)、残り時間、ミュート送信停止が並びます。Live 中は読み上げ (TTS)が止まります。
  • ミュートはお使いの端末でマイクを切り、サービスにも伝えます。ミュート中は音声が コンピューターから出ません。
  • Live 中もテキストを入力できます。 入力した内容は同じ会話に加わり、チャットに 自分のメッセージとして表示され、アシスタントはそれに答えます。名前・住所・URL など、 声で伝えにくいものに便利です。Live 中は添付とスラッシュコマンドは使えません。
  • 作業の様子が見え、止められます。 2 件動いていれば行に Working (2) と表示され、 各タスクは回答が出る位置にチャット内で表示されます。Show progress は折りたたみで (書きかけの回答でチャットが埋まらないように)、Cancel で取り消せます。取り消した タスクは途中までの内容を残し、アシスタントはその結果を待つのをやめます。

Live を使える場所

全画面のチャット(デスクトップとスマートフォン)で、選択中の run-target が Built-in エージェントまたは Prompt エージェントのときです。Workflow やハーネス エージェント、 ポップアップ / サイドパネルのチャット、デモモードでは表示されません。マイクには安全な ページ(https:// または localhost)が必要です。

設定

  1. Azure OpenAI リソースに gpt-live-1 をデプロイします。

  2. App Settings > Model Offering CatalogLive セクションにオファリングを追加します。 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"]
    }
  3. 任意: Task model assignmentsLive delegation で、Live から任された作業に エージェントが使うチャットモデルを選びます。Follow session / default のままなら、 選択中のエージェント自身のモデルを使います。

  4. 任意: App Settings > SpeechLive voice(声)を選びます。

Live オファリングは 1 つまでで、azure-openai プロバイダを使い、他の用途(operation)とは 兼用できません。

設定場所既定値意味
Live オファリングApp Settings > Model Offering Catalog > Liveなし(Live 無効)GPT-Live のデプロイ。登録するとボタンが表示されます。
Live delegationApp Settings > Model Offering Catalog > Task model assignments選択中エージェントのモデル任された作業を実行するチャットモデル。
Live voiceApp Settings > Speechmarinalloy、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 > Speech600終了の 1 分前に通知が出ます。
Live silence timeout (seconds)App Settings > Speech60双方が無音のままこの時間が過ぎると終了します。
Live delegation timeout (seconds)App Settings > Speech120エージェントの作業 1 回あたりの上限です。

いずれも再起動なしで、次の Live 会話から反映されます。

プライバシーと費用

  • Azure の資格情報はサーバーの外に出ません。Live 会話の開始・監視・終了はすべて サーバーが行い、ブラウザがサービスとやり取りするのは音声だけです。
  • 誰も見ていない Live 会話(閉じたタブなど)は 15 秒後に終了し、サーバーを止めると すべて終了します。
  • Live から始まったエージェントの作業は、トークン使用量ダッシュボード のレーン live に集計されます。話していた時間は同じ画面の Live voice ビューで 日別・チャット別に見られます。音声時間は使用量の記録の隣に保存されるため、チャットを 削除しても残ります。料金の計算は行いません。