Tools

テキスト読み上げ

OpenClaw は、送信する返信を 14 の音声プロバイダーを通じて音声に変換します。 Feishu、Matrix、Telegram、WhatsApp ではネイティブ音声メッセージ、その他では音声 添付ファイル、テレフォニーと Talk では PCM/Ulaw ストリームとして出力します。

TTS は Talk の stt-tts モードにおける音声出力側です(talk.speak もこれと 同じ音声合成パスを呼び出します)。プロバイダーネイティブの realtime Talk セッションでは、 代わりにリアルタイムプロバイダー内で音声が合成されます。transcription セッションでは、 アシスタントの音声返信は一切合成されません。

クイックスタート

  • プロバイダーを選択

    OpenAI と ElevenLabs は、最も信頼性の高いホステッドオプションです。Microsoft と Local CLI は API キーなしで動作します。完全な一覧については、プロバイダー一覧 を参照してください。

  • API キーを設定

    使用するプロバイダーの環境変数をエクスポートします(例: OPENAI_API_KEYELEVENLABS_API_KEY)。Microsoft と Local CLI にはキーは不要です。

  • 設定で有効化

    messages.tts.auto: "always"messages.tts.provider を設定します。

    json5
    {  messages: {    tts: {      auto: "always",      provider: "elevenlabs",    },  },}
  • チャットで試す

    /tts status は現在の状態を表示します。/tts audio Hello from OpenClaw は単発の音声返信を送信します。

  • 対応プロバイダー

    プロバイダー 認証 備考
    Azure Speech AZURE_SPEECH_KEY + AZURE_SPEECH_REGIONAZURE_SPEECH_API_KEYSPEECH_KEYSPEECH_REGION も可) ネイティブ Ogg/Opus ボイスメモ出力とテレフォニー。
    DeepInfra DEEPINFRA_API_KEY OpenAI 互換 TTS。デフォルトは hexgrad/Kokoro-82M
    ElevenLabs ELEVENLABS_API_KEY または XI_API_KEY 音声クローニング、多言語対応、seed による決定性。Discord の音声再生ではストリーミングされます。
    Google Gemini GEMINI_API_KEY または GOOGLE_API_KEY Gemini API バッチ TTS。promptTemplate: "audio-profile-v1" によりペルソナに対応します。
    Gradium GRADIUM_API_KEY ボイスメモとテレフォニー出力。
    Inworld INWORLD_API_KEY ストリーミング TTS API。ネイティブ Opus ボイスメモと PCM テレフォニー。
    Local CLI なし 設定済みのローカル TTS コマンドを実行します。
    Microsoft なし node-edge-tts を介したパブリックな Edge ニューラル TTS。ベストエフォートで、SLA はありません。
    MiniMax MINIMAX_API_KEY(または Token Plan: MINIMAX_OAUTH_TOKENMINIMAX_CODE_PLAN_KEYMINIMAX_CODING_API_KEY T2A v2 API。デフォルトは speech-2.8-hd
    OpenAI OPENAI_API_KEY 自動要約にも使用されます。ペルソナ用の instructions をサポートします。
    OpenRouter OPENROUTER_API_KEYmodels.providers.openrouter.apiKey を再利用可能) デフォルトモデルは hexgrad/kokoro-82m
    Volcengine VOLCENGINE_TTS_API_KEY または BYTEPLUS_SEED_SPEECH_API_KEY(旧 AppID/token: VOLCENGINE_TTS_APPID/_TOKEN BytePlus Seed Speech HTTP API。
    Vydra VYDRA_API_KEY 画像、動画、音声で共有されるプロバイダー。
    xAI XAI_API_KEY xAI バッチ TTS。ネイティブ Opus ボイスメモはサポートされません
    Xiaomi MiMo XIAOMI_API_KEY Xiaomi のチャット補完を介した MiMo TTS。

    複数のプロバイダーが設定されている場合、選択されたプロバイダーが最初に使用され、 その他はフォールバックオプションになります。自動要約では summaryModel(または agents.defaults.model.primary)を使用するため、要約を有効なままにする場合は、 そのプロバイダーについても認証が必要です。

    設定

    TTS 設定は ~/.openclaw/openclaw.jsonmessages.tts 配下にあります。 プリセットを選択し、プロバイダーブロックを調整してください。以下に示す speakerVoice/speakerVoiceId フィールドが正式なフィールドです。各プロバイダー固有の voice/voiceId/voiceName フィールド名も、旧エイリアスとして引き続き使用できます。

    Azure Speech

    json5
    {messages: {tts: {  auto: "always",  provider: "azure-speech",  providers: {    "azure-speech": {      apiKey: "${AZURE_SPEECH_KEY}",      region: "eastus",      speakerVoice: "en-US-JennyNeural",      lang: "en-US",      outputFormat: "audio-24khz-48kbitrate-mono-mp3",      voiceNoteOutputFormat: "ogg-24khz-16bit-mono-opus",    },  },},},}

    ElevenLabs

    json5
    {messages: {tts: {  auto: "always",  provider: "elevenlabs",  providers: {    elevenlabs: {      apiKey: "${ELEVENLABS_API_KEY}",      model: "eleven_multilingual_v2",      speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",    },  },},},}

    Google Gemini

    json5
    {messages: {tts: {  auto: "always",  provider: "google",  providers: {    google: {      apiKey: "${GEMINI_API_KEY}",      model: "gemini-3.1-flash-tts-preview",      speakerVoice: "Kore",      // 自然言語によるスタイル指定(任意):      // audioProfile: "落ち着いたポッドキャスト司会者の口調で話してください。",      // speakerName: "Alex",    },  },},},}

    Gradium

    json5
    {messages: {tts: {  auto: "always",  provider: "gradium",  providers: {    gradium: {      apiKey: "${GRADIUM_API_KEY}",      speakerVoiceId: "YTpq7expH9539ERJ",    },  },},},}

    Inworld

    json5
    {messages: {tts: {  auto: "always",  provider: "inworld",  providers: {    inworld: {      apiKey: "${INWORLD_API_KEY}",      modelId: "inworld-tts-1.5-max",      speakerVoiceId: "Sarah",      temperature: 0.7,    },  },},},}

    Local CLI

    json5
    {messages: {tts: {  auto: "always",  provider: "tts-local-cli",  providers: {    "tts-local-cli": {      command: "say",      args: ["-o", "{{OutputPath}}", "{{Text}}"],      outputFormat: "wav",      timeoutMs: 120000,    },  },},},}

    Microsoft(キー不要)

    json5
    {messages: {tts: {  auto: "always",  provider: "microsoft",  providers: {    microsoft: {      enabled: true,      speakerVoice: "en-US-MichelleNeural",      lang: "en-US",      outputFormat: "audio-24khz-48kbitrate-mono-mp3",      rate: "+0%",      pitch: "+0%",    },  },},},}

    MiniMax

    json5
    {messages: {tts: {  auto: "always",  provider: "minimax",  providers: {    minimax: {      apiKey: "${MINIMAX_API_KEY}",      model: "speech-2.8-hd",      speakerVoiceId: "English_expressive_narrator",      speed: 1.0,      vol: 1.0,      pitch: 0,    },  },},},}

    OpenAI + ElevenLabs

    json5
    {messages: {tts: {  auto: "always",  provider: "openai",  summaryModel: "openai/gpt-4.1-mini",  modelOverrides: { enabled: true },  providers: {    openai: {      apiKey: "${OPENAI_API_KEY}",      model: "gpt-4o-mini-tts",      speakerVoice: "alloy",    },    elevenlabs: {      apiKey: "${ELEVENLABS_API_KEY}",      model: "eleven_multilingual_v2",      speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",      voiceSettings: { stability: 0.5, similarityBoost: 0.75, style: 0.0, useSpeakerBoost: true, speed: 1.0 },      applyTextNormalization: "auto",      languageCode: "en",    },  },},},}

    OpenRouter

    json5
    {messages: {tts: {  auto: "always",  provider: "openrouter",  providers: {    openrouter: {      apiKey: "${OPENROUTER_API_KEY}",      model: "hexgrad/kokoro-82m",      speakerVoice: "af_alloy",      responseFormat: "mp3",    },  },},},}

    Volcengine

    json5
    {messages: {tts: {  auto: "always",  provider: "volcengine",  providers: {    volcengine: {      apiKey: "${VOLCENGINE_TTS_API_KEY}",      resourceId: "seed-tts-1.0",      speakerVoice: "en_female_anna_mars_bigtts",    },  },},},}

    xAI

    json5
    {messages: {tts: {  auto: "always",  provider: "xai",  providers: {    xai: {      apiKey: "${XAI_API_KEY}",      speakerVoiceId: "eve",      language: "en",      responseFormat: "mp3",    },  },},},}

    Xiaomi MiMo

    json5
    {messages: {tts: {  auto: "always",  provider: "xiaomi",  providers: {    xiaomi: {      apiKey: "${XIAOMI_API_KEY}",      model: "mimo-v2.5-tts",      speakerVoice: "mimo_default",      format: "mp3",    },  },},},}

    Xiaomi の mimo-v2.5-tts-voicedesign では、speakerVoice を省略し、 style に音声デザイン用プロンプトを設定してください。OpenClaw はそのプロンプトを TTS の user メッセージとして送信し、voicedesign モデルには audio.voice を送信しません。

    エージェントごとの音声オーバーライド

    1 つのエージェントだけに異なるプロバイダー、音声、モデル、ペルソナ、または自動 TTS モードで発話させる場合は、agents.list[].tts を使用します。エージェントブロックは messages.tts にディープマージされるため、プロバイダーの認証情報はグローバルなプロバイダー設定に保持できます。

    json5
    {  messages: {    tts: {      auto: "always",      provider: "elevenlabs",      providers: {        elevenlabs: { apiKey: "${ELEVENLABS_API_KEY}", model: "eleven_multilingual_v2" },      },    },  },  agents: {    list: [      {        id: "reader",        tts: {          providers: {            elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL" },          },        },      },    ],  },}

    エージェントごとのペルソナを固定するには、プロバイダー設定と並べて agents.list[].tts.persona を設定します。これは、そのエージェントに対してのみグローバルな messages.tts.persona を上書きします。

    自動応答、/tts audio/tts status、および tts エージェントツールの優先順位は次のとおりです。

    1. messages.tts
    2. アクティブな agents.list[].tts
    3. チャンネルが channels.<channel>.tts をサポートしている場合のチャンネルオーバーライド
    4. チャンネルが channels.<channel>.accounts.<id>.tts を渡す場合のアカウントオーバーライド
    5. このホストのローカル /tts 設定
    6. モデルによるディレクティブが有効な場合のインライン [[tts:...]] ディレクティブ

    チャンネルおよびアカウントのオーバーライドは messages.tts と同じ構造を使用し、先行するレイヤーにディープマージされます。そのため、共有プロバイダーの認証情報は messages.tts に保持したまま、チャンネルまたはボットアカウントでは話者の音声、モデル、ペルソナ、または自動モードだけを変更できます。

    json5
    {  messages: {    tts: {      provider: "openai",      providers: {        openai: { apiKey: "${OPENAI_API_KEY}", model: "gpt-4o-mini-tts" },      },    },  },  channels: {    feishu: {      accounts: {        english: {          tts: {            providers: {              openai: { speakerVoice: "shimmer" },            },          },        },      },    },  },}

    ペルソナ

    ペルソナは、プロバイダー間で決定論的に適用できる、一貫した発話アイデンティティです。特定のプロバイダーを優先し、プロバイダーに依存しないプロンプトの意図を定義し、音声、モデル、プロンプトテンプレート、シード、音声設定に対するプロバイダー固有のバインディングを保持できます。

    最小構成のペルソナ

    json5
    {  messages: {    tts: {      auto: "always",      persona: "narrator",      personas: {        narrator: {          label: "ナレーター",          provider: "elevenlabs",          providers: {            elevenlabs: {              speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",              modelId: "eleven_multilingual_v2",            },          },        },      },    },  },}

    完全なペルソナ(プロバイダーに依存しないプロンプト)

    json5
    {  messages: {    tts: {      auto: "always",      persona: "alfred",      personas: {        alfred: {          label: "アルフレッド",          description: "ドライで温かみのある英国人執事のナレーター。",          provider: "google",          fallbackPolicy: "preserve-persona",          prompt: {            profile: "優秀な英国人執事。ドライで機知に富み、温かく魅力的で、感情表現が豊か。決してありきたりにならない。",            scene: "静かな深夜の書斎。信頼できるオペレーターに向けた近接マイクでのナレーション。",            sampleContext: "話者は、非公開の技術的な依頼に対し、簡潔な自信とドライな温かみをもって回答している。",            style: "洗練され、控えめで、わずかに愉快そう。",            accent: "イギリス英語。",            pacing: "落ち着いた速度で、短い劇的な間を入れる。",            constraints: ["設定値を声に出して読まない。", "ペルソナについて説明しない。"],          },          providers: {            google: {              model: "gemini-3.1-flash-tts-preview",              speakerVoice: "Algieba",              promptTemplate: "audio-profile-v1",            },            openai: { model: "gpt-4o-mini-tts", speakerVoice: "cedar" },            elevenlabs: {              speakerVoiceId: "voice_id",              modelId: "eleven_multilingual_v2",              seed: 42,              voiceSettings: {                stability: 0.65,                similarityBoost: 0.8,                style: 0.25,                useSpeakerBoost: true,                speed: 0.95,              },            },          },        },      },    },  },}

    ペルソナの解決

    アクティブなペルソナは決定論的に選択されます。

    1. 設定されている場合は、/tts persona <id> のローカル設定。
    2. 設定されている場合は、messages.tts.persona
    3. ペルソナなし。

    プロバイダーの選択では、明示的な指定が優先されます。

    1. 直接オーバーライド(CLI、gateway、Talk、許可された TTS ディレクティブ)。
    2. /tts provider <id> のローカル設定。
    3. アクティブなペルソナの provider
    4. messages.tts.provider
    5. レジストリによる自動選択。

    OpenClaw は、プロバイダーを試行するたびに、次の順序で設定をマージします。

    1. messages.tts.providers.<id>
    2. messages.tts.personas.<persona>.providers.<id>
    3. 信頼されたリクエストのオーバーライド
    4. 許可された、モデルが出力した TTS ディレクティブのオーバーライド

    プロバイダーによるペルソナプロンプトの使用方法

    ペルソナのプロンプトフィールド(profilescenesampleContextstyleaccentpacingconstraints)は、プロバイダーに依存しません。各プロバイダーが、その使用方法を決定します。

    Google Gemini

    有効な Google プロバイダー設定で promptTemplate: "audio-profile-v1" または personaPrompt が設定されている場合にのみ、ペルソナのプロンプトフィールドを Gemini TTS のプロンプト構造でラップします。従来の audioProfile および speakerName フィールドは、引き続き Google 固有のプロンプトテキストとして先頭に付加されます。[[tts:text]] ブロック内の [whispers][laughs] などのインライン音声タグは、Gemini のトランスクリプト内に保持されます。OpenClaw はこれらのタグを生成しません。

    OpenAI

    明示的な OpenAI の instructions が設定されていない場合にのみ、ペルソナのプロンプトフィールドをリクエストの instructions フィールドにマッピングします。明示的な instructions が常に優先されます。

    その他のプロバイダー

    personas.<id>.providers.<provider> 配下のプロバイダー固有のペルソナバインディングのみを使用します。プロバイダーが独自のペルソナプロンプトのマッピングを実装していない限り、ペルソナのプロンプトフィールドは無視されます。

    フォールバックポリシー

    fallbackPolicy は、試行対象のプロバイダーに対するバインディングがペルソナに存在しない場合の動作を制御します。

    ポリシー 動作
    preserve-persona デフォルト。 プロバイダーに依存しないプロンプトフィールドは引き続き利用可能であり、プロバイダーはそれらを使用することも無視することもできます。
    provider-defaults その試行のプロンプト準備からペルソナを除外します。ほかのプロバイダーへのフォールバックを継続しながら、そのプロバイダーはプロバイダー固有ではないデフォルトを使用します。
    fail reasonCode: "not_configured" および personaBinding: "missing" として、そのプロバイダーの試行をスキップします。フォールバックプロバイダーは引き続き試行されます。

    試行したすべてのプロバイダーがスキップされるか失敗した場合にのみ、TTS リクエスト全体が失敗します。

    Talk セッションのプロバイダー選択は、セッション単位です。Talk クライアントは、talk.catalog からプロバイダー ID、モデル ID、音声 ID、ロケールを選択し、Talk セッションまたはハンドオフリクエストを介して渡す必要があります。音声セッションを開いても、messages.tts やグローバルな Talk プロバイダーのデフォルトを変更してはなりません。

    モデルによるディレクティブ

    デフォルトでは、アシスタントは [[tts:...]] ディレクティブを出力して、単一の応答に対する音声、モデル、または速度を上書きできます。さらに、音声にのみ含める表現上の指示のために、オプションの [[tts:text]]...[[/tts:text]] ブロックも使用できます。

    text
    どうぞ。 [[tts:speakerVoiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]][[tts:text]](笑いながら)その歌をもう一度読んでください。[[/tts:text]]

    messages.tts.auto"tagged" の場合、音声をトリガーするにはディレクティブが必須です。ストリーミングブロック配信では、隣接するブロックに分割されている場合でも、チャンネルに表示テキストが渡される前にディレクティブが除去されます。

    modelOverrides.allowProvider: true でない限り、provider=... は無視されます。応答で provider=... が宣言されている場合、そのディレクティブ内のほかのキーは、そのプロバイダーによってのみ解析されます。サポートされていないキーは除去され、TTS ディレクティブの警告として報告されます。

    使用可能なディレクティブキー:

    • provider(登録済みプロバイダー ID。allowProvider: true が必要)
    • speakerVoice / speakerVoiceId(従来のエイリアス:voicevoiceNamevoice_namegoogle_voicevoiceId
    • model / google_model
    • stabilitysimilarityBooststylespeeduseSpeakerBoost
    • vol / volume(MiniMax の音量、(0, 10]
    • pitch(MiniMax の整数ピッチ、−12~12。小数値は切り捨て)
    • emotion(Volcengine の感情タグ)
    • applyTextNormalizationauto|on|off
    • languageCode(ISO 639-1)
    • seed

    モデルによるオーバーライドを完全に無効にする:

    json5
    { messages: { tts: { modelOverrides: { enabled: false } } } }

    ほかの調整項目を設定可能な状態に保ちながら、プロバイダーの切り替えを許可する:

    json5
    { messages: { tts: { modelOverrides: { enabled: true, allowProvider: true, allowSeed: false } } } }

    スラッシュコマンド

    コマンドは /tts の 1 つです。Discord では、/tts が Discord の組み込みコマンドであるため、OpenClaw は /voice も登録します。テキストの /tts ... も引き続き機能します。

    text
    /tts off | on | status/tts chat on | off | default/tts latest/tts provider <id>/tts persona <id> | off/tts limit <chars>/tts summary off/tts audio <text>

    動作に関する注意事項:

    • /tts on はローカル TTS 設定に always を書き込み、/tts offoff を書き込みます。
    • /tts chat on|off|default は、現在のチャットに対するセッション単位の自動 TTS オーバーライドを書き込みます。
    • /tts persona <id> はローカルのペルソナ設定を書き込み、/tts persona off はそれをクリアします。
    • /tts latest は、現在のセッショントランスクリプトから最新のアシスタント応答を読み取り、1 回だけ音声として送信します。音声の重複送信を抑止するため、セッションエントリにはその応答のハッシュのみを保存します。
    • /tts audio は 1 回限りの音声応答を生成します(TTS をオンに切り替えることはありません)。
    • /tts limit <chars>100~4096 を受け付けます(4096 は Telegram のキャプション/メッセージの最大値)。範囲外の値は拒否されます。
    • limitsummary は、メイン設定ではなくローカル設定に保存されます。
    • /tts status には、最新の試行に関するフォールバック診断(Fallback: <primary> -> <used>Attempts: ...、および試行ごとの詳細(provider:outcome(reasonCode) latency))が含まれます。
    • /status は、TTS が有効な場合、アクティブな TTS モードに加えて、設定済みのプロバイダー、モデル、音声、サニタイズ済みのカスタムエンドポイントのメタデータを表示します。

    ユーザーごとの設定

    スラッシュコマンドは、ローカルオーバーライドを prefsPath に書き込みます。デフォルトは ~/.openclaw/settings/tts.json です。OPENCLAW_TTS_PREFS 環境変数または messages.tts.prefsPath で上書きできます。

    保存フィールド 効果
    auto ローカルの自動 TTS オーバーライド(alwaysoff など)
    provider ローカルのプライマリプロバイダーオーバーライド
    persona ローカルのペルソナオーバーライド
    maxLength 要約/切り詰めのしきい値(デフォルトは 1500 文字、/tts limit の範囲は 100~4096)
    summarize 要約の切り替え(デフォルトは true

    これらは、そのホストに対して、messages.tts とアクティブな agents.list[].tts ブロックから得られる有効な設定を上書きします。

    出力形式

    TTS 音声配信は、チャンネルの機能に応じて決まります。チャンネル Plugin は、 音声形式の TTS でプロバイダーにネイティブの voice-note ターゲットを要求するか、 通常の audio-file 合成を維持するか、また送信前にチャンネルが 非ネイティブ出力をトランスコードするかどうかを通知します。

    ターゲット 形式
    Feishu / Matrix / Telegram / WhatsApp 音声メモの返信では Opus(ElevenLabs の opus_48000_64、OpenAI の opus)を優先します。48 kHz / 64 kbps は明瞭さとサイズのバランスを取ります。
    その他のチャンネル MP3(ElevenLabs の mp3_44100_128、OpenAI の mp3)。44.1 kHz / 128 kbps が音声の明瞭さとサイズのデフォルトのバランスです。
    Talk / 電話 プロバイダーネイティブの PCM(Inworld は 22050 Hz、Google は 24 kHz)、または電話用の Gradium の ulaw_8000

    プロバイダーごとの注意事項:

    • Feishu / WhatsApp のトランスコード: 音声メモの返信が MP3/WebM/WAV/M4A、またはその他の音声ファイルと思われる形式で届いた場合、チャンネル Plugin は、ネイティブ音声メッセージを送信する前に、ffmpeglibopus、64 kbps)で 48 kHz Ogg/Opus にトランスコードします。WhatsApp は、Baileys の audio ペイロードを通じて、ptt: true および audio/ogg; codecs=opus を指定して結果を送信します。トランスコードに失敗した場合:Feishu はエラーを捕捉し、元のファイルを通常の添付ファイルとして送信するようフォールバックします。WhatsApp にはフォールバックがないため、互換性のない PTT ペイロードを投稿するのではなく、送信自体が失敗します。
    • MiniMax: 通常の音声添付ファイルには MP3(speech-2.8-hd モデル、32 kHz サンプルレート)を使用し、チャンネルが通知した音声メモターゲットには ffmpeg で 48 kHz Opus にトランスコードします。
    • Xiaomi MiMo: デフォルトでは MP3、設定時は WAV を使用します。チャンネルが通知した音声メモターゲットには ffmpeg で 48 kHz Opus にトランスコードします。
    • ローカル CLI: 設定された outputFormat を使用します。音声メモターゲットは Ogg/Opus に変換され、電話出力は ffmpeg で未加工の 16 kHz モノラル PCM に変換されます。
    • Google Gemini: 未加工の 24 kHz PCM を返します。OpenClaw は、音声添付ファイルではこれを WAV としてラップし、音声メモターゲットでは 48 kHz Opus にトランスコードし、Talk/電話では PCM を直接返します。
    • Gradium: 音声添付ファイルには WAV、音声メモターゲットには Opus、電話には 8 kHz の ulaw_8000 を使用します。
    • Inworld: 通常の音声添付ファイルには MP3、音声メモターゲットにはネイティブの OGG_OPUS、Talk/電話には 22050 Hz の未加工 PCM を使用します。
    • xAI: デフォルトでは MP3 を使用します。responseFormat には mp3wavpcmmulaw、または alaw を指定できます。xAI のバッチ REST TTS エンドポイントを使用し、完全な音声添付ファイルを返します。このプロバイダーパスでは、xAI のストリーミング TTS WebSocket は使用されません。ネイティブ Opus の音声メモ形式はサポートされていません。
    • Microsoft: microsoft.outputFormat(デフォルトは audio-24khz-48kbitrate-mono-mp3)を使用します。
      • バンドルされたトランスポートは outputFormat を受け付けますが、すべての形式をサービスから利用できるわけではありません。
      • 出力形式の値は Microsoft Speech の出力形式(Ogg/WebM Opus を含む)に従います。
      • Telegram の sendVoice は OGG/MP3/M4A を受け付けます。Opus 音声メッセージを確実に使用する必要がある場合は、OpenAI/ElevenLabs を使用してください。
      • 設定された Microsoft の出力形式で失敗した場合、OpenClaw は MP3 で再試行します。
      • 明示的な音声オーバーライドが設定されておらず、デフォルトの英語音声が使用されている場合、返信テキストの大部分が CJK 文字であれば、OpenClaw は中国語のニューラル音声(zh-CN-XiaoxiaoNeuralzh-CN ロケール)へ自動的に切り替えます。

    OpenAI と ElevenLabs の出力形式は、上記のとおりチャンネルごとに固定されています。

    自動 TTS の動作

    messages.tts.auto が有効な場合、OpenClaw は次のように動作します:

    • 返信に構造化メディアがすでに含まれている場合、TTS をスキップします。
    • 非常に短い返信(10 文字未満)をスキップします。
    • 要約が有効な場合、summaryModel(または agents.defaults.model.primary)を使用して長い返信を要約します。
    • 生成された音声を返信に添付します。
    • mode: "final" では、テキストストリームの完了後も、ストリーミングされた最終返信に対して音声のみの TTS を送信します。生成されたメディアには、通常の返信添付ファイルと同じチャンネルメディア正規化が適用されます。

    返信が maxLength を超えた場合、OpenClaw が音声を完全にスキップすることはありません:

    • 要約オン(デフォルト)で要約モデルを利用できる場合:テキストをおよそ maxLength 文字に要約し、その要約を合成します。
    • 要約オフ、要約に失敗した場合、または要約モデルの API キーを利用できない場合:テキストを maxLength 文字に切り詰め、切り詰めたテキストを合成します。
    text
    返信 -> TTS は有効?  いいえ -> テキストを送信  はい   -> メディアあり / 短い?              はい   -> テキストを送信              いいえ -> 長さ > 上限?                         いいえ -> TTS -> 音声を添付                         はい   -> 要約が有効かつ利用可能?                                    いいえ -> 切り詰め -> TTS -> 音声を添付                                    はい   -> 要約 -> TTS -> 音声を添付

    フィールドリファレンス

    トップレベルの messages.tts.*
    auto"off" | "always" | "inbound" | "tagged"

    自動 TTS モード。inbound は受信音声メッセージの後にのみ音声を送信します。tagged は、返信に [[tts:...]] ディレクティブまたは [[tts:text]] ブロックが含まれる場合にのみ音声を送信します。

    enabledboolean

    旧トグル。openclaw doctor --fix はこれを auto に移行します。

    mode"final" | "all"default: final

    "all" では、最終返信に加えてツール/ブロック返信も対象になります。

    providerstring

    音声プロバイダー ID。未設定の場合、OpenClaw はレジストリの自動選択順で最初に設定されているプロバイダーを使用します。旧設定の provider: "edge" は、openclaw doctor --fix によって "microsoft" に書き換えられます。

    personastring

    personas のアクティブなペルソナ ID。小文字に正規化されます。

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBlcnNvbmFzLjxpZA " type="object"> 安定した発話アイデンティティ。フィールド:labeldescriptionproviderfallbackPolicypromptproviders.<provider>ペルソナを参照してください。

    summaryModelstring

    自動要約用の低コストモデル。デフォルトは agents.defaults.model.primary です。provider/model または設定済みのモデルエイリアスを受け付けます。

    modelOverridesobject

    モデルによる TTS ディレクティブの出力を許可します。enabled のデフォルトは trueallowProvider のデフォルトは false です。

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb3ZpZGVycy48aWQ " type="object"> 音声プロバイダー ID をキーとする、プロバイダー所有の設定。旧形式の直接ブロック(messages.tts.openai.elevenlabs.microsoft.edge)は openclaw doctor --fix によって書き換えられます。コミットするのは messages.tts.providers.<id> のみにしてください。

    maxTextLengthnumberdefault: 4096

    TTS 入力文字数の上限。超過した場合、/tts audiotts.converttts.speak は失敗します。

    timeoutMsnumberdefault: 30000

    リクエストのタイムアウト(ミリ秒)。呼び出しごとの timeoutMs(エージェントツール、Gateway)が設定されている場合はそれが優先されます。それ以外の場合、明示的に設定された messages.tts.timeoutMs が、Plugin が指定したプロバイダーのデフォルト値より優先されます。

    prefsPathstring

    ローカル設定 JSON のパス(プロバイダー/上限/要約)を上書きします。デフォルトは ~/.openclaw/settings/tts.json

    Azure Speech

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 環境変数:AZURE_SPEECH_KEYAZURE_SPEECH_API_KEY、または SPEECH_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlZ2lvbiIgdHlwZT0ic3RyaW5nIg Azure Speech のリージョン(例:eastus)。環境変数:AZURE_SPEECH_REGION または SPEECH_REGION。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVuZHBvaW50IiB0eXBlPSJzdHJpbmci Azure Speech エンドポイントの任意の上書き(エイリアス:baseUrl)。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Azure 音声の ShortName。デフォルトは en-US-JennyNeural。旧エイリアス:voice。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI SSML 言語コード。デフォルトは en-US。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg 標準音声用の Azure X-Microsoft-OutputFormat。デフォルトは audio-24khz-48kbitrate-mono-mp3。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlTm90ZU91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg 音声メモ出力用の Azure X-Microsoft-OutputFormat。デフォルトは ogg-24khz-16bit-mono-opus。 OPENCLAW_DOCS_MARKER:paramClose:

    ElevenLabs

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg ELEVENLABS_API_KEY または XI_API_KEY にフォールバックします。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci モデル ID。デフォルトは eleven_multilingual_v2。旧 ID の eleven_turbo_v2_5/eleven_turbo_v2 は、対応する flash モデルに正規化されます。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci ElevenLabs の音声 ID。デフォルトは pMsXgVXv3BLzUgSXRplE。旧エイリアス:voiceId。 OPENCLAW_DOCS_MARKER:paramClose:

    voiceSettingsobject

    stabilitysimilarityBooststyle(それぞれ 0..1、デフォルトは 0.5/0.75/0)、useSpeakerBoosttrue|false、デフォルトは true)、speed0.5..2.0、デフォルトは 1.0)。

    applyTextNormalization"auto" | "on" | "off"

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlQ29kZSIgdHlwZT0ic3RyaW5nIg 2 文字の ISO 639-1(例:ende)。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNlZWQiIHR5cGU9Im51bWJlciI ベストエフォートの決定性に使用する整数 0..4294967295。 OPENCLAW_DOCS_MARKER:paramClose:

    baseUrlstring
    Google Gemini

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg GEMINI_API_KEY / GOOGLE_API_KEY にフォールバックします。省略した場合、TTS は環境変数へのフォールバック前に models.providers.google.apiKey を再利用できます。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci Gemini TTS モデル。デフォルトは gemini-3.1-flash-tts-preview。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Gemini の組み込み音声名。デフォルトは Kore。旧エイリアス:voiceNamevoice。 OPENCLAW_DOCS_MARKER:paramClose:

    audioProfilestring
    speakerNamestring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb21wdFRlbXBsYXRlIiB0eXBlPSciYXVkaW8tcHJvZmlsZS12MSIn audio-profile-v1 に設定すると、アクティブなペルソナのプロンプトフィールドが決定的な Gemini TTS プロンプト構造でラップされます。 OPENCLAW_DOCS_MARKER:paramClose:

    personaPromptstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI https://generativelanguage.googleapis.com のみ受け付けます。 OPENCLAW_DOCS_MARKER:paramClose:

    Gradium

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 環境変数:GRADIUM_API_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI api.gradium.ai 上の HTTPS Gradium API URL。デフォルトは https://api.gradium.ai。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci デフォルトは Emma(YTpq7expH9539ERJ)。旧エイリアス:voiceId。 OPENCLAW_DOCS_MARKER:paramClose:

    Inworld

    Inworld のプライマリ

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 環境変数: INWORLD_API_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI デフォルトは https://api.inworld.ai。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsSWQiIHR5cGU9InN0cmluZyI デフォルトは inworld-tts-1.5-max。ほかに inworld-tts-1.5-miniinworld-tts-1-maxinworld-tts-1。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci デフォルトは Sarah。レガシーエイリアス: voiceId。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRlbXBlcmF0dXJlIiB0eXBlPSJudW1iZXIi サンプリング温度 0..2(0 を除く)。 OPENCLAW_DOCS_MARKER:paramClose:

    ローカル CLI (tts-local-cli)
    commandstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFyZ3MiIHR5cGU9InN0cmluZ1tdIg コマンド引数。{{Text}}{{OutputPath}}{{OutputDir}}{{OutputBase}} プレースホルダーをサポートします。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0nIm1wMyIgfCAib3B1cyIgfCAid2F2Iic 想定される CLI 出力形式。音声添付ファイルのデフォルトは mp3。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRpbWVvdXRNcyIgdHlwZT0ibnVtYmVyIg コマンドのタイムアウト(ミリ秒)。デフォルトは 120000。 OPENCLAW_DOCS_MARKER:paramClose:

    cwdstring
    envRecord<string, string��-�����4

    コマンドの標準出力と、生成または変換された音声は 50 MiB に制限されます。診断用の標準エラー出力は 1 MiB に制限されます。いずれかの上限を超えると、OpenClaw はコマンドを終了し、音声合成を失敗させます。

    Microsoft(API キー不要)
    enabledbooleandefault: true

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Microsoft ニューラル音声名(例: en-US-MichelleNeural)。レガシーエイリアス: voice。デフォルトの英語音声が有効で、返信テキストが CJK 中心の場合、OpenClaw は自動的に zh-CN-XiaoxiaoNeural に切り替えます。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI 言語コード(例: en-US)。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg Microsoft の出力形式。デフォルトは audio-24khz-48kbitrate-mono-mp3。同梱の Edge ベースのトランスポートでは、すべての形式がサポートされているわけではありません。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJhdGUgLyBwaXRjaCAvIHZvbHVtZSIgdHlwZT0ic3RyaW5nIg パーセント文字列(例: +10%-5%)。 OPENCLAW_DOCS_MARKER:paramClose:

    saveSubtitlesboolean
    proxystring
    timeoutMsnumber

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVkZ2UuKiIgdHlwZT0ib2JqZWN0IiBkZXByZWNhdGVk レガシーエイリアス。openclaw doctor --fix を実行して、永続化された設定を providers.microsoft に書き換えてください。 OPENCLAW_DOCS_MARKER:paramClose:

    MiniMax

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg MINIMAX_API_KEY にフォールバックします。Token Plan 認証には MINIMAX_OAUTH_TOKENMINIMAX_CODE_PLAN_KEY、または MINIMAX_CODING_API_KEY を使用します。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI デフォルトは https://api.minimax.io。環境変数: MINIMAX_API_HOST。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci デフォルトは speech-2.8-hd。環境変数: MINIMAX_TTS_MODEL。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci デフォルトは English_expressive_narrator。環境変数: MINIMAX_TTS_VOICE_ID。レガシーエイリアス: voiceId。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi 0.5..2.0。デフォルトは 1.0。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvbCIgdHlwZT0ibnVtYmVyIg (0, 10]。デフォルトは 1.0。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBpdGNoIiB0eXBlPSJudW1iZXIi 整数 -12..12。デフォルトは 0。小数値はリクエスト前に切り捨てられます。 OPENCLAW_DOCS_MARKER:paramClose:

    OpenAI

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg OPENAI_API_KEY にフォールバックします。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci OpenAI TTS モデル ID。デフォルトは gpt-4o-mini-tts。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg 音声名(例: alloycedar)。デフォルトは coral。レガシーエイリアス: voice。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imluc3RydWN0aW9ucyIgdHlwZT0ic3RyaW5nIg 明示的な OpenAI の instructions フィールド。設定した場合、ペルソナプロンプトのフィールドは自動マッピングされません。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImV4dHJhQm9keSAvIGV4dHJhX2JvZHkiIHR5cGU9IlJlY29yZDxzdHJpbmcsIHVua25vd24 ">生成された OpenAI TTS フィールドの後に、/audio/speech リクエスト本文へマージされる追加の JSON フィールド。lang などのプロバイダー固有キーを必要とする Kokoro のような OpenAI 互換エンドポイントに使用します。安全でないプロトタイプキーは無視されます。 OPENCLAW_DOCS_MARKER:paramClose:

    baseUrlstring

    OpenAI TTS エンドポイントをオーバーライドします。解決順序: 設定 → OPENAI_TTS_BASE_URLhttps://api.openai.com/v1。デフォルト以外の値は OpenAI 互換 TTS エンドポイントとして扱われるため、カスタムのモデル名と音声名が受け入れられ、speed に対する 0.25..4.0 の範囲チェックは適用されなくなります。

    OpenRouter

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 環境変数: OPENROUTER_API_KEYmodels.providers.openrouter.apiKey を再利用できます。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI デフォルトは https://openrouter.ai/api/v1。レガシーの https://openrouter.ai/v1 は正規化されます。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci デフォルトは hexgrad/kokoro-82m。エイリアス: modelId。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg デフォルトは af_alloy。レガシーエイリアス: voicevoiceId。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJwY20iJw デフォルトは mp3。 OPENCLAW_DOCS_MARKER:paramClose:

    speednumber
    Volcengine (BytePlus Seed Speech)

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 環境変数: VOLCENGINE_TTS_API_KEY または BYTEPLUS_SEED_SPEECH_API_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc291cmNlSWQiIHR5cGU9InN0cmluZyI デフォルトは seed-tts-1.0。環境変数: VOLCENGINE_TTS_RESOURCE_ID。プロジェクトに TTS 2.0 の利用権限がある場合は seed-tts-2.0 を使用してください。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcEtleSIgdHlwZT0ic3RyaW5nIg アプリキーヘッダー。デフォルトは aGjiRDfUWi。環境変数: VOLCENGINE_TTS_APP_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Seed Speech TTS HTTP エンドポイントをオーバーライドします。環境変数: VOLCENGINE_TTS_BASE_URL。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg 音声タイプ。デフォルトは en_female_anna_mars_bigtts。環境変数: VOLCENGINE_TTS_VOICE。レガシーエイリアス: voice。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkUmF0aW8iIHR5cGU9Im51bWJlciI プロバイダーネイティブの速度比率、0.2..3。 OPENCLAW_DOCS_MARKER:paramClose:

    emotionstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcElkIC8gdG9rZW4gLyBjbHVzdGVyIiB0eXBlPSJzdHJpbmciIGRlcHJlY2F0ZWQ レガシーの Volcengine Speech Console フィールド。環境変数: VOLCENGINE_TTS_APPIDVOLCENGINE_TTS_TOKENVOLCENGINE_TTS_CLUSTER(デフォルトは volcano_tts)。 OPENCLAW_DOCS_MARKER:paramClose:

    xAI

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 環境変数: XAI_API_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI デフォルトは https://api.x.ai/v1。環境変数: XAI_BASE_URL。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci デフォルトは eve。認証がある場合、openclaw infer tts voices --provider xai は現在の組み込みカタログを取得します。認証がない場合は、オフラインのフォールバック araeveleorexsal を一覧表示します。アカウントのカスタム音声 ID は、組み込みリストにない場合でも転送されます。レガシーエイリアス: voiceId。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlIiB0eXBlPSJzdHJpbmci BCP-47 言語コードまたは auto。デフォルトは en。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJ3YXYiIHwgInBjbSIgfCAibXVsYXciIHwgImFsYXciJw デフォルトは mp3。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi プロバイダーネイティブの速度オーバーライド、0.7..1.5。 OPENCLAW_DOCS_MARKER:paramClose:

    Xiaomi MiMo

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 環境変数: XIAOMI_API_KEY。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI デフォルトは https://api.xiaomimimo.com/v1。環境変数: XIAOMI_BASE_URL。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci デフォルトは mimo-v2.5-tts。環境変数: XIAOMI_TTS_MODELmimo-v2-ttsmimo-v2.5-tts-voicedesign もサポートします。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg プリセット音声モデルのデフォルトは mimo_default。環境変数: XIAOMI_TTS_VOICE。レガシーエイリアス: voicemimo-v2.5-tts-voicedesign では送信されません。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImZvcm1hdCIgdHlwZT0nIm1wMyIgfCAid2F2Iic デフォルトは mp3。環境変数: XIAOMI_TTS_FORMAT。 OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InN0eWxlIiB0eXBlPSJzdHJpbmci ユーザーメッセージとして送信される、オプションの自然言語によるスタイル指示。読み上げられません。mimo-v2.5-tts-voicedesign では、これが音声デザインのプロンプトになります。省略した場合、OpenClaw がデフォルトを指定します。 OPENCLAW_DOCS_MARKER:paramClose:

    エージェントツール

    tts ツールはテキストを音声に変換し、返信配信用の音声添付ファイルを返します。 Feishu、Matrix、Telegram、WhatsApp では、音声はファイル添付ではなく ボイスメッセージとして配信されます。この経路では ffmpeg が 利用可能な場合、Feishu と WhatsApp は Opus 以外の TTS 出力をトランスコードできます。

    WhatsApp は Baileys を介して音声を PTT ボイスノート(audioptt: true)として送信し、クライアントがボイスノートのキャプションを 一貫して表示しないため、表示テキストを PTT 音声とは別に送信します。

    このツールはオプションの channel フィールドと timeoutMs フィールドを受け入れます。timeoutMs は、 呼び出しごとのプロバイダーリクエストタイムアウト(ミリ秒)です。呼び出しごとの値は messages.tts.timeoutMs をオーバーライドし、設定された TTS タイムアウトは Plugin が指定した プロバイダーのデフォルト値をオーバーライドします。

    Gateway RPC

    メソッド 目的
    tts.status 現在の TTS 状態と直前の試行を読み取ります。
    tts.enable ローカルの自動設定を always にします。
    tts.disable ローカルの自動設定を off にします。
    tts.convert 1 回限りのテキスト → 音声変換。
    tts.setProvider ローカルのプロバイダー設定を指定します。
    tts.personas 設定済みのペルソナと有効なペルソナを一覧表示します。
    tts.setPersona ローカルのペルソナ設定を指定します。
    tts.providers 設定済みプロバイダーと状態を一覧表示します。

    サービスリンク

    関連項目

    Was this useful?
    On this page

    On this page