Talk モードには 2 つのランタイム形態があります。Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- ネイティブ macOS/iOS/Android Talk は、ローカルの音声認識、Gateway チャット、
talk.speakTTS を使用します。ノードはtalkcapability を広告し、対応するtalk.*コマンドを宣言します。 - ブラウザー Talk は、クライアント所有の
webrtcおよびprovider-websocketセッションにはtalk.client.createを使用し、Gateway 所有のgateway-relayセッションにはtalk.session.createを使用します。managed-roomは Gateway ハンドオフとトランシーバー型ルーム用に予約されています。 - 文字起こし専用クライアントは、アシスタントの音声応答なしでキャプションやディクテーションが必要な場合に、
talk.session.create({ mode: "transcription", transport: "gateway-relay", brain: "none" })を使用し、その後talk.session.appendAudio、talk.session.cancelTurn、talk.session.closeを使用します。
- 音声を聞き取る
- アクティブなセッションを通じてモデルへ文字起こしを送信する
- 応答を待つ
- 設定済みの Talk プロバイダー(
talk.speak)経由で読み上げる
talk.client.toolCall 経由で転送します。ブラウザークライアントはリアルタイム相談で chat.send を直接呼び出しません。
文字起こし専用 Talk は、リアルタイムおよび STT/TTS セッションと同じ共通 Talk イベントエンベロープを発行しますが、mode: "transcription" と brain: "none" を使用します。これはキャプション、ディクテーション、観察専用の音声キャプチャ向けです。1 回限りでアップロードされた音声メモは、引き続きメディア/音声パスを使用します。
動作 (macOS)
- Talk モードが有効な間は 常時表示オーバーレイ。
- Listening → Thinking → Speaking のフェーズ遷移。
- 短い一時停止(無音ウィンドウ)で、現在の文字起こしが送信されます。
- 返信は WebChat に書き込まれます(入力した場合と同じ)。
- 発話による割り込み(既定でオン): アシスタントが話している間にユーザーが話し始めると、再生を停止し、次のプロンプト用に割り込み時刻を記録します。
返信内の音声ディレクティブ
アシスタントは、音声を制御するために返信の先頭に 単一の JSON 行 を付けることがあります。- 最初の空でない行のみ。
- 不明なキーは無視されます。
once: trueは現在の返信にのみ適用されます。onceがない場合、その音声が Talk モードの新しい既定値になります。- JSON 行は TTS 再生前に削除されます。
voice/voice_id/voiceIdmodel/model_id/modelIdspeed,rate(WPM),stability,similarity,style,speakerBoostseed,normalize,lang,output_format,latency_tieronce
設定 (~/.openclaw/openclaw.json)
interruptOnSpeech: truesilenceTimeoutMs: 未設定の場合、Talk は文字起こしを送信する前にプラットフォーム既定の一時停止ウィンドウを維持します(macOS と Android では 700 ms、iOS では 900 ms)provider: アクティブな Talk プロバイダーを選択します。macOS ローカル再生パスにはelevenlabs、mlx、またはsystemを使用します。providers.<provider>.voiceId: ElevenLabs ではELEVENLABS_VOICE_ID/SAG_VOICE_IDにフォールバックします(または API キーが利用可能な場合は最初の ElevenLabs 音声)。providers.elevenlabs.modelId: 未設定の場合はeleven_v3が既定です。providers.mlx.modelId: 未設定の場合はmlx-community/Soprano-80M-bf16が既定です。providers.elevenlabs.apiKey:ELEVENLABS_API_KEYにフォールバックします(または利用可能な場合は Gateway シェルプロファイル)。consultThinkingLevel: リアルタイムopenclaw_agent_consult呼び出しの背後で実行される完全な OpenClaw エージェント実行の任意の思考レベル上書き。consultFastMode: リアルタイムopenclaw_agent_consult呼び出しの任意の高速モード上書き。realtime.provider: アクティブなブラウザー/サーバーのリアルタイム音声プロバイダーを選択します。WebRTC にはopenai、プロバイダー WebSocket にはgoogle、Gateway リレー経由のブリッジ専用プロバイダーを使用します。realtime.providers.<provider>は、プロバイダー所有のリアルタイム設定を保存します。ブラウザーが受け取るのは一時的または制約付きのセッションクレデンシャルのみで、標準 API キーは受け取りません。realtime.providers.openai.voice: 組み込みの OpenAI Realtime 音声 id。現在のgpt-realtime-2の音声はalloy、ash、ballad、coral、echo、sage、shimmer、verse、marin、cedarです。最高品質にはmarinとcedarが推奨されます。realtime.brain:agent-consultはリアルタイムツール呼び出しを Gateway ポリシー経由でルーティングします。direct-toolsは所有者専用の互換動作です。noneは文字起こしまたは外部オーケストレーション用です。realtime.instructions: OpenClaw の組み込みリアルタイムプロンプトに、プロバイダー向けシステム指示を追加します。音声スタイルやトーンに使用します。OpenClaw は既定のopenclaw_agent_consultガイダンスを維持します。talk.catalogは、各プロバイダーの有効なモード、トランスポート、brain 戦略、リアルタイム音声フォーマット、capability フラグを公開し、ファーストパーティ Talk クライアントが未対応の組み合わせを避けられるようにします。- ストリーミング文字起こしプロバイダーは
talk.catalog.transcription経由で検出されます。現在の Gateway リレーは、専用の Talk 文字起こし設定サーフェスが追加されるまで、Voice Call ストリーミングプロバイダー設定を使用します。 speechLocale: iOS/macOS 上のオンデバイス Talk 音声認識用の任意の BCP 47 ロケール id。デバイスの既定値を使用するには未設定のままにします。outputFormat: macOS/iOS ではpcm_44100、Android ではpcm_24000が既定です(MP3 ストリーミングを強制するにはmp3_*を設定)
macOS UI
- メニューバートグル: Talk
- 設定タブ: Talk Mode グループ(音声 id + 割り込みトグル)
- オーバーレイ:
- Listening: 雲がマイクレベルに合わせて脈動
- Thinking: 沈み込むアニメーション
- Speaking: 放射状のリング
- 雲をクリック: 発話を停止
- X をクリック: Talk モードを終了
Android UI
- Voice タブトグル: Talk
- 手動の Mic と Talk は、同時に使えないランタイムキャプチャモードです。
- 手動 Mic は、アプリがフォアグラウンドを離れるか、ユーザーが Voice タブを離れると停止します。
- Talk Mode は、オフに切り替えられるか Android ノードが切断されるまで実行を続け、アクティブな間は Android のマイク foreground-service type を使用します。
注記
- Speech + Microphone 権限が必要です。
- ネイティブ Talk はアクティブな Gateway セッションを使用し、応答イベントが利用できない場合のみ履歴ポーリングにフォールバックします。
- ブラウザーリアルタイム Talk は、プロバイダー所有のブラウザーセッションに
chat.sendを公開する代わりに、openclaw_agent_consultにtalk.client.toolCallを使用します。 - 文字起こし専用 Talk は
talk.session.create、talk.session.appendAudio、talk.session.cancelTurn、talk.session.closeを使用します。クライアントは部分/最終文字起こし更新のためにtalk.eventを購読します。 - Gateway は、アクティブな Talk プロバイダーを使用して
talk.speak経由で Talk 再生を解決します。Android はその RPC が利用できない場合のみ、ローカルシステム TTS にフォールバックします。 - macOS ローカル MLX 再生は、存在する場合はバンドルされた
openclaw-mlx-ttsヘルパーを使用し、そうでなければPATH上の実行可能ファイルを使用します。開発中にカスタムヘルパーバイナリを指すにはOPENCLAW_MLX_TTS_BINを設定します。 eleven_v3のstabilityは0.0、0.5、または1.0として検証されます。他のモデルは0..1を受け付けます。latency_tierは、設定時に0..4として検証されます。- Android は、低レイテンシー AudioTrack ストリーミング用の
pcm_16000、pcm_22050、pcm_24000、pcm_44100出力フォーマットに対応しています。