stt-tts モードにおける音声出力側の機能です(talk.speak も
同じ合成パスを呼び出します)。プロバイダーにネイティブ対応する realtime Talk セッションでは、
リアルタイムプロバイダー内で音声を合成します。一方、transcription セッションでは
アシスタントの音声返信を合成しません。
クイックスタート
1
プロバイダーを選択
OpenAI と ElevenLabs は、最も信頼性の高いホスティング型の選択肢です。Microsoft と
Local CLI は API キーなしで動作します。完全な一覧については、プロバイダー一覧表
を参照してください。
2
API キーを設定
プロバイダーの環境変数(例:
OPENAI_API_KEY、
ELEVENLABS_API_KEY)をエクスポートします。Microsoft と Local CLI にはキーが不要です。3
設定で有効化
tts.auto: "always" と tts.provider を設定します。4
チャットで試す
/tts status で現在の状態を表示します。/tts audio Hello from OpenClaw で
一度限りの音声返信を送信します。自動 TTS はデフォルトでオフです。
tts.provider が未設定の場合、
OpenClaw はレジストリの自動選択順で、最初に設定済みのプロバイダーを選択します。
組み込みの tts エージェントツールは、明示的な意図がある場合にのみ動作します。ユーザーが音声を要求するか、
/tts を使用するか、自動 TTS/ディレクティブ音声を有効にしない限り、通常のチャットは
テキストのままです。対応プロバイダー
複数のプロバイダーが設定されている場合、選択したプロバイダーが最初に使用され、
ほかのプロバイダーはフォールバック候補になります。自動要約では
summaryModel(または
agents.defaults.model.primary)が使用されるため、要約を有効なままにする場合は、そのプロバイダーでも
認証が必要です。
設定
TTS 設定は~/.openclaw/openclaw.json の tts 配下にあります。プリセットを
選択し、プロバイダーブロックを調整してください。以下に示す speakerVoice/speakerVoiceId
フィールドが正規の形式です。各プロバイダー固有の voice/voiceId/
voiceName フィールド名も、従来のエイリアスとして引き続き使用できます。
- Azure Speech
- ElevenLabs
- Google Gemini
- Gradium
- Inworld
- Local CLI
- Microsoft(キー不要)
- MiniMax
- OpenAI + ElevenLabs
- OpenRouter
- Volcengine
- xAI
- Xiaomi MiMo
mimo-v2.5-tts-voicedesign では、speakerVoice を省略し、style に
音声設計プロンプトを設定します。OpenClaw はそのプロンプトを TTS の user メッセージとして送信し、
voicedesign モデルには audio.voice を送信しません。
エージェントごとの音声オーバーライド
1 つのエージェントで異なるプロバイダー、音声、モデル、ペルソナ、または自動 TTS モードを 使用する場合は、agents.entries.*.tts を使用します。エージェントブロックは
tts にディープマージされるため、プロバイダーの認証情報はグローバルなプロバイダー設定に保持できます。
agents.entries.*.tts.persona を設定します。これは、そのエージェントに限りグローバルな tts.persona を上書きします。
自動返信、/tts audio、/tts status、および
tts エージェントツールの優先順位:
tts- 有効な
agents.entries.*.tts - チャンネルが
channels.<channel>.ttsをサポートしている場合のチャンネル上書き - チャンネルが
channels.<channel>.accounts.<id>.ttsを渡す場合のアカウント上書き - このホストのローカルな
/tts設定 - モデル駆動ディレクティブが有効な場合のインライン
[[tts:...]]ディレクティブ
tts と同じ形式を使用し、
前のレイヤーに対してディープマージされます。そのため、共有プロバイダー認証情報を
tts に保持したまま、チャンネルまたはボットアカウントで話者の声、モデル、ペルソナ、
または自動モードのみを変更できます。
ペルソナ
ペルソナとは、プロバイダー間で決定論的に適用できる、安定した音声上のアイデンティティです。 特定のプロバイダーを優先し、プロバイダーに依存しないプロンプトの意図を定義し、 音声、モデル、プロンプトテンプレート、シード、音声設定に対する プロバイダー固有のバインディングを保持できます。最小構成のペルソナ
完全なペルソナ(プロバイダー固有の調整)
ペルソナの解決
有効なペルソナは決定論的に選択されます。- 設定されている場合、ローカル設定の
/tts persona <id>。 - 設定されている場合、
tts.persona。 - ペルソナなし。
- 直接上書き(CLI、Gateway、Talk、許可された TTS ディレクティブ)。
- ローカル設定の
/tts provider <id>。 - 有効なペルソナの
provider。 tts.provider。- レジストリによる自動選択。
tts.providers.<id>tts.personas.<persona>.providers.<id>- 信頼されたリクエストによる上書き
- 許可された、モデルが出力した TTS ディレクティブによる上書き
カスタムペルソナの調整
プロバイダーに依存しないpersonas.<id>.prompt.* 設定は廃止されました。Doctor は
これらのフィールドを削除し、音声プロバイダーのシームを案内します。組み込みプロバイダーの
設定は personas.<id>.providers.<provider> 配下に配置します(たとえば Google の
personaPrompt または OpenAI の instructions)。カスタム調整を行うには、
prepareSynthesis(ctx) を備えた音声プロバイダー Plugin を実装し、
synthesize() が実行される前に、調整済みのテキスト、プロバイダー設定、または上書きを返します。
これにより、表現力のあるプロンプトの構築を、リクエストのセマンティクスを把握している
プロバイダーコード内に維持できます。
フォールバックポリシー
fallbackPolicy は、試行対象のプロバイダーにペルソナのバインディングがない場合の
動作を制御します。
TTS リクエスト全体が失敗するのは、試行したすべてのプロバイダーがスキップされるか
失敗した場合のみです。
Talk セッションのプロバイダー選択はセッション単位です。Talk クライアントは
talk.catalog からプロバイダー ID、モデル ID、音声 ID、ロケールを選択し、
Talk セッションまたはハンドオフリクエストを通じて渡す必要があります。音声セッションを開く際に、
tts やグローバルな Talk プロバイダーのデフォルトを変更してはなりません。
モデル駆動ディレクティブ
デフォルトでは、アシスタントは[[tts:...]] ディレクティブを出力して、
単一の返信に対する音声、モデル、または速度を上書きできます。さらに、
音声のみに含める表現上の指示として、任意の
[[tts:text]]...[[/tts:text]] ブロックも使用できます。
tts.auto が "tagged" の場合、音声をトリガーするには
ディレクティブが必須です。ストリーミングのブロック配信では、隣接するブロックに
分割されている場合でも、チャンネルに届く前に表示テキストからディレクティブが除去されます。
provider=... は、modelOverrides.allowProvider: true でない限り無視されます。
返信で provider=... が宣言されている場合、そのディレクティブ内の他のキーは
そのプロバイダーのみが解析します。サポートされていないキーは除去され、
TTS ディレクティブの警告として報告されます。
利用可能なディレクティブキー:
provider(登録済みのプロバイダー ID。allowProvider: trueが必要)speakerVoice/speakerVoiceId(旧エイリアス:voice、voiceName、voice_name、google_voice、voiceId)model/google_modelstability、similarityBoost、style、speed、useSpeakerBoostvol/volume(MiniMax の音量、(0, 10])pitch(MiniMax の整数ピッチ、−12~12。小数値は切り捨て)emotion(Volcengine の感情タグ)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
スラッシュコマンド
単一コマンド/tts。Discord では、/tts が Discord の
組み込みコマンドであるため、OpenClaw は /voice も登録します。
テキストの /tts ... も引き続き機能します。
コマンドには認可済みの送信者が必要です(許可リスト/所有者ルールが適用されます)。
また、
commands.text またはネイティブコマンド登録のいずれかを有効にする必要があります。/tts onはローカルの TTS 設定をalwaysに書き込み、/tts offはoffに書き込みます。/tts chat on|off|defaultは、現在のチャットに対するセッション単位の自動 TTS 上書きを書き込みます。/tts persona <id>はローカルのペルソナ設定を書き込み、/tts persona offはそれを消去します。/tts latestは現在のセッショントランスクリプトから最新のアシスタント返信を読み取り、音声として一度送信します。音声の重複送信を抑止するため、その返信のハッシュのみをセッションエントリに保存します。/tts audioは一回限りの音声返信を生成します(TTS をオンには切り替えません)。/tts limit <chars>は 100~4096 を受け付けます(4096 は Telegram のキャプション/メッセージの最大値)。範囲外の値は拒否されます。limitとsummaryはメイン設定ではなく、ローカル設定に保存されます。/tts statusには、最新の試行に関するフォールバック診断(Fallback: <primary> -> <used>、Attempts: ...、および試行ごとの詳細(provider:outcome(reasonCode) latency))が含まれます。/statusは、TTS が有効な場合に、有効な TTS モードと、設定済みのプロバイダー、モデル、音声、サニタイズ済みカスタムエンドポイントのメタデータを表示します。
ユーザーごとの設定
スラッシュコマンドは、ローカルの上書きを TTS 設定パスに書き込みます。デフォルトは~/.openclaw/settings/tts.json です。OPENCLAW_TTS_PREFS で上書きできます。Doctor は、
廃止されたグローバルな tts.prefsPath の値を共有マシン状態へ移動します。
高度なマルチエージェント構成では、エージェントが意図的に個別の設定ストアを使用する場合、
引き続き agents.entries.<id>.tts.prefsPath を設定できます。
これらは、そのホストにおける
tts と有効な
agents.entries.*.tts ブロックから得られる実効設定を上書きします。
出力形式
TTS 音声配信は、チャンネルの機能によって決まります。チャンネル Plugin は、 音声形式の TTS でプロバイダーにネイティブなvoice-note ターゲットを要求するか、
通常の audio-file 合成を維持するか、また、送信前にチャンネルが
非ネイティブ出力をトランスコードするかどうかを通知します。
プロバイダー別の注記:
- Feishu / WhatsApp のトランスコード: 音声メモへの返信が MP3/WebM/WAV/M4A またはその他の音声ファイルと思われる形式で届いた場合、チャネル Plugin はネイティブ音声メッセージを送信する前に、
ffmpeg(libopus、64 kbps)を使用して 48 kHz Ogg/Opus にトランスコードします。WhatsApp は、ptt: trueおよびaudio/ogg; codecs=opusを指定した Baileys のaudioペイロードを通じて結果を送信します。トランスコードに失敗した場合、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を使用して raw 16 kHz モノラル PCM に変換されます。 - Google Gemini: raw 24 kHz PCM を返します。OpenClaw は音声添付ファイル用にこれを WAV としてラップし、音声メモのターゲット用に 48 kHz Opus にトランスコードし、Talk/電話用には PCM を直接返します。
- Gradium: 音声添付ファイルには WAV、音声メモのターゲットには Opus、電話には 8 kHz の
ulaw_8000を使用します。 - Inworld: 通常の音声添付ファイルには MP3、音声メモのターゲットにはネイティブの
OGG_OPUS、Talk/電話には 22050 Hz の rawPCMを使用します。 - xAI: デフォルトでは MP3 を使用します。音声ファイルの合成では、バッファリング出力とストリーミング出力の両方に
mp3、wav、pcm、mulaw、またはalawを使用できます。xAI のpcm、mulaw、およびalawの出力はヘッダーのない raw 音声であるため、音声メモのターゲットではストリーミングおよびバッファリング時のフォールバックに MP3 を使用します。バッファリング合成では xAI のバッチ REST/v1/ttsエンドポイントを使用し、textToSpeechStreamではネイティブのwss://api.x.ai/v1/ttsを使用します。これはリアルタイム音声の契約ではありません。ネイティブ 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-XiaoxiaoNeural、zh-CNロケール)に自動的に切り替えます。
- バンドルされたトランスポートは
自動 TTS の動作
tts.auto が有効な場合、OpenClaw は次のように動作します。
- 返信に構造化メディアがすでに含まれている場合は、TTS をスキップします。
- 非常に短い返信(10 文字未満)はスキップします。
- 要約が有効な場合、
summaryModel(またはagents.defaults.model.primary)を使用して 長い返信を要約します。 - 生成された音声を返信に添付します。
mode: "final"では、テキストストリームの完了後も、ストリーミングされた最終返信に対して 音声のみの TTS を送信します。生成されたメディアには、通常の返信添付ファイルと同じ チャネルメディア正規化が適用されます。
maxLength を超えた場合でも、OpenClaw が音声を完全にスキップすることはありません。
- 要約オン(デフォルト)で要約モデルが利用可能な場合:テキストを
約
maxLength文字に要約し、その要約を音声合成します。 - 要約オフ、要約に失敗した場合、または要約モデル用の API キーが利用できない場合:
テキストを
maxLength文字に切り詰め、切り詰めたテキストを 音声合成します。
フィールドリファレンス
トップレベルの tts.*
トップレベルの tts.*
"off" | "always" | "inbound" | "tagged"
自動 TTS モード。
inbound は受信した音声メッセージの後にのみ音声を送信します。tagged は返信に [[tts:...]] ディレクティブまたは [[tts:text]] ブロックが含まれている場合にのみ音声を送信します。boolean
非推奨
旧式の切り替え設定。
openclaw doctor --fix はこれを auto に移行します。"final" | "all"
デフォルト:"final"
"all" は最終返信に加えて、ツール/ブロックの返信も含めます。string
音声プロバイダー ID。未設定の場合、OpenClaw はレジストリの自動選択順で最初に設定されているプロバイダーを使用します。旧式の
provider: "edge" は openclaw doctor --fix によって "microsoft" に書き換えられます。string
personas のアクティブなペルソナ ID。小文字に正規化されます。object
安定した発話アイデンティティ。フィールド:
label、description、provider、fallbackPolicy、prompt、providers.<provider>。ペルソナを参照してください。string
自動要約用の低コストモデル。デフォルトは
agents.defaults.model.primary です。provider/model または設定済みのモデルエイリアスを受け付けます。object
モデルが TTS ディレクティブを出力できるようにします。
enabled のデフォルトは true、allowProvider のデフォルトは false です。object
音声プロバイダー ID をキーとする、プロバイダー所有の設定。旧式の直接ブロック(
tts.openai、.elevenlabs、.microsoft、.edge)は openclaw doctor --fix によって書き換えられます。tts.providers.<id> のみをコミットしてください。number
デフォルト:"4096"
TTS 入力文字数の上限。超過した場合、
/tts audio、tts.convert、および tts.speak は失敗します。number
デフォルト:"30000"
リクエストのタイムアウト(ミリ秒単位)。呼び出しごとの
timeoutMs(エージェントツール、Gateway)が設定されている場合はそれが優先されます。それ以外の場合、明示的に設定された tts.timeoutMs が、Plugin によって設定されたプロバイダーのデフォルト値より優先されます。apiKey フィールドには、raw 文字列または SecretRef を指定できます。Gateway のコールド
起動時に TTS SecretRef が利用できない場合、Gateway を停止する代わりに、組み込みの TTS 機能が
設定済みだが利用不可としてマークされます。その後、tts.speak は理由 SECRET_SURFACE_UNAVAILABLE とともに
UNAVAILABLE を返し、プロバイダーへのリクエストは
送信されません。ステータスと doctor には、機能が低下した TTS の所有者とその設定パスが表示されます。
明示的な参照はランタイムスナップショットに残るため、環境またはプロファイルの
認証情報によって別のアカウントが暗黙的に選択されることはありません。リロードおよび設定書き込みの
事前チェックでは、所有者を考慮した機能低下ポリシーが適用されます。変更されていない適格な TTS
所有者は、最後に正常だった認証情報を古い状態のまま維持できますが、新規または変更された
障害は、正常な所有者をブロックせずにコールド状態になります。構造的に無効な参照
および解決済みの値は、引き続き起動を失敗させるか、更新を拒否します。Azure Speech
Azure Speech
string
環境変数:
AZURE_SPEECH_KEY、AZURE_SPEECH_API_KEY、または SPEECH_KEY。string
Azure Speech のリージョン(例:
eastus)。環境変数:AZURE_SPEECH_REGION または SPEECH_REGION。string
Azure Speech エンドポイントの任意の上書き(エイリアス
baseUrl)。string
Azure 音声の ShortName。デフォルトは
en-US-JennyNeural。旧式のエイリアス:voice。string
SSML 言語コード。デフォルトは
en-US。string
標準音声用の Azure
X-Microsoft-OutputFormat。デフォルトは audio-24khz-48kbitrate-mono-mp3。string
音声メモ出力用の Azure
X-Microsoft-OutputFormat。デフォルトは ogg-24khz-16bit-mono-opus。ElevenLabs
ElevenLabs
string
ELEVENLABS_API_KEY または XI_API_KEY にフォールバックします。string
モデル ID。デフォルトは
eleven_multilingual_v2。旧式の ID eleven_turbo_v2_5/eleven_turbo_v2 は、対応する flash モデルに正規化されます。string
ElevenLabs の音声 ID。デフォルトは
pMsXgVXv3BLzUgSXRplE。旧式のエイリアス:voiceId。object
stability、similarityBoost、style(それぞれ 0..1、デフォルトは 0.5/0.75/0)、useSpeakerBoost(true|false、デフォルトは true)、speed(0.5..2.0、デフォルトは 1.0)。"auto" | "on" | "off"
テキスト正規化モード。
string
2 文字の ISO 639-1(例:
en、de)。number
可能な限り決定性を確保するための整数
0..4294967295。string
ElevenLabs API のベース URL を上書きします。
Google Gemini
Google Gemini
string
GEMINI_API_KEY / GOOGLE_API_KEY にフォールバックします。省略した場合、TTS は環境変数へのフォールバック前に models.providers.google.apiKey を再利用できます。string
Gemini TTS モデル。デフォルトは
gemini-3.1-flash-tts-preview。string
Gemini の事前構築済み音声名。デフォルトは
Kore。レガシーエイリアス: voiceName、voice。string
発話テキストの前に付加される自然言語のスタイルプロンプト。
string
プロンプトで名前付き話者を使用する場合に、発話テキストの前に付加される任意の話者ラベル。
"audio-profile-v1"
audio-profile-v1 に設定すると、アクティブなペルソナプロンプトフィールドが決定論的な Gemini TTS プロンプト構造でラップされます。string
テンプレートのディレクターノートに追加される、Google 固有の追加ペルソナプロンプトテキスト。
string
https://generativelanguage.googleapis.com のみ受け付けます。Gradium
Gradium
Inworld
Inworld
ローカル CLI (tts-local-cli)
ローカル CLI (tts-local-cli)
string
CLI TTS 用のローカル実行ファイルまたはコマンド文字列。
string[]
コマンド引数。プレースホルダー
{{Text}}、{{OutputPath}}、{{OutputDir}}、{{OutputBase}} をサポートします。"mp3" | "opus" | "wav"
想定される CLI 出力形式。音声添付ファイルのデフォルトは
mp3。number
コマンドのタイムアウト(ミリ秒)。デフォルトは
120000。string
任意のコマンド作業ディレクトリ。
Record<string, string>
コマンド用の任意の環境変数オーバーライド。
Microsoft(API キー不要)
Microsoft(API キー不要)
boolean
デフォルト:"true"
Microsoft 音声の使用を許可します。
string
Microsoft ニューラル音声名(例:
en-US-MichelleNeural)。レガシーエイリアス: voice。デフォルトの英語音声が有効で、返信テキストの大部分が CJK の場合、OpenClaw は自動的に zh-CN-XiaoxiaoNeural に切り替えます。string
言語コード(例:
en-US)。string
Microsoft 出力形式。デフォルトは
audio-24khz-48kbitrate-mono-mp3。バンドルされている Edge ベースのトランスポートでは、すべての形式がサポートされるわけではありません。string
パーセント文字列(例:
+10%、-5%)。boolean
音声ファイルとともに JSON 字幕を書き込みます。
string
Microsoft 音声リクエスト用のプロキシ URL。
number
リクエストタイムアウトのオーバーライド(ミリ秒)。
object
非推奨
レガシーエイリアス。
openclaw doctor --fix を実行して、永続化された設定を providers.microsoft に書き換えてください。MiniMax
MiniMax
string
MINIMAX_API_KEY にフォールバックします。MINIMAX_OAUTH_TOKEN、MINIMAX_CODE_PLAN_KEY、または MINIMAX_CODING_API_KEY による Token Plan 認証。string
デフォルトは
https://api.minimax.io。環境変数: MINIMAX_API_HOST。string
デフォルトは
speech-2.8-hd。環境変数: MINIMAX_TTS_MODEL。string
デフォルトは
English_expressive_narrator。環境変数: MINIMAX_TTS_VOICE_ID。レガシーエイリアス: voiceId。number
0.5..2.0。デフォルトは 1.0。number
(0, 10]。デフォルトは 1.0。number
整数
-12..12。デフォルトは 0。小数値はリクエスト前に切り捨てられます。OpenAI
OpenAI
string
OPENAI_API_KEY にフォールバックします。string
OpenAI TTS モデル ID。デフォルトは
gpt-4o-mini-tts。string
音声名(例:
alloy、cedar)。デフォルトは coral。レガシーエイリアス: voice。string
明示的な OpenAI
instructions フィールド。設定すると、ペルソナプロンプトフィールドは自動マッピングされません。Record<string, unknown>
生成された OpenAI TTS フィールドの後で、
/audio/speech リクエスト本文にマージされる追加の JSON フィールド。lang のようなプロバイダー固有のキーを必要とする Kokoro などの OpenAI 互換エンドポイントに使用します。安全でないプロトタイプキーは無視されます。string
OpenAI TTS エンドポイントをオーバーライドします。解決順序: 設定 →
OPENAI_TTS_BASE_URL → https://api.openai.com/v1。デフォルト以外の値は OpenAI 互換 TTS エンドポイントとして扱われるため、カスタムのモデル名と音声名が受け付けられ、speed には 0.25..4.0 の範囲チェックが適用されなくなります。OpenRouter
OpenRouter
string
環境変数:
OPENROUTER_API_KEY。models.providers.openrouter.apiKey を再利用できます。string
デフォルトは
https://openrouter.ai/api/v1。レガシーの https://openrouter.ai/v1 は正規化されます。string
デフォルトは
hexgrad/kokoro-82m。エイリアス: modelId。string
デフォルトは
af_alloy。レガシーエイリアス: voice、voiceId。"mp3" | "pcm"
デフォルトは
mp3。number
プロバイダー固有の速度オーバーライド。
Volcengine (BytePlus Seed Speech)
Volcengine (BytePlus Seed Speech)
string
環境変数:
VOLCENGINE_TTS_API_KEY または BYTEPLUS_SEED_SPEECH_API_KEY。string
デフォルトは
seed-tts-1.0。環境変数: VOLCENGINE_TTS_RESOURCE_ID。プロジェクトに TTS 2.0 の利用資格がある場合は seed-tts-2.0 を使用します。string
App キーヘッダー。デフォルトは
aGjiRDfUWi。環境変数: VOLCENGINE_TTS_APP_KEY。string
Seed Speech TTS HTTP エンドポイントをオーバーライドします。環境変数:
VOLCENGINE_TTS_BASE_URL。string
音声タイプ。デフォルトは
en_female_anna_mars_bigtts。環境変数: VOLCENGINE_TTS_VOICE。レガシーエイリアス: voice。number
プロバイダー固有の速度比率、
0.2..3。string
プロバイダー固有の感情タグ。
string
非推奨
レガシーの Volcengine Speech Console フィールド。環境変数:
VOLCENGINE_TTS_APPID、VOLCENGINE_TTS_TOKEN、VOLCENGINE_TTS_CLUSTER(デフォルトは volcano_tts)。xAI
xAI
string
環境変数:
XAI_API_KEY。string
デフォルトは
https://api.x.ai/v1。環境変数: XAI_BASE_URL。string
デフォルトは
eve。認証がある場合、openclaw infer tts voices --provider xai は現在の組み込みカタログを取得します。認証がない場合は、オフラインフォールバック ara、eve、leo、rex、sal を一覧表示します。アカウントのカスタム音声 ID は、組み込みリストに存在しない場合でも転送されます。レガシーエイリアス: voiceId。string
BCP-47 言語コードまたは
auto。デフォルトは en。"mp3" | "wav" | "pcm" | "mulaw" | "alaw"
デフォルトは
mp3。number
プロバイダー固有の速度オーバーライド、
0.7..1.5。Xiaomi MiMo
Xiaomi MiMo
string
環境変数:
XIAOMI_API_KEY。string
デフォルトは
https://api.xiaomimimo.com/v1。環境変数: XIAOMI_BASE_URL。string
デフォルトは
mimo-v2.5-tts。環境変数: XIAOMI_TTS_MODEL。mimo-v2.5-tts-voicedesign もサポートします。string
プリセット音声モデルのデフォルトは
mimo_default。環境変数: XIAOMI_TTS_VOICE。レガシーエイリアス: voice。mimo-v2.5-tts-voicedesign には送信されません。"mp3" | "wav"
デフォルトは
mp3。環境変数: XIAOMI_TTS_FORMAT。string
ユーザーメッセージとして送信される任意の自然言語スタイル指示。読み上げられません。
mimo-v2.5-tts-voicedesign では、これは音声デザインプロンプトです。省略すると OpenClaw がデフォルトを提供します。エージェントツール
tts ツールはテキストを音声に変換し、返信配信用の音声添付ファイルを返します。
Feishu、Matrix、Telegram、WhatsApp では、音声はファイル添付ではなく
音声メッセージとして配信されます。この経路では ffmpeg が
利用可能な場合、Feishu と WhatsApp は Opus 以外の TTS 出力をトランスコードできます。
WhatsApp は Baileys を介して音声を PTT ボイスノート(audio と
ptt: true)として送信します。また、クライアントがボイスノートのキャプションを
一貫して表示しないため、表示テキストを PTT 音声とは別に送信します。
このツールは任意の channel フィールドと timeoutMs フィールドを受け付けます。timeoutMs は
呼び出しごとのプロバイダーリクエストタイムアウト(ミリ秒)です。呼び出しごとの値は
tts.timeoutMs をオーバーライドします。設定された TTS タイムアウトは、Plugin が指定した
プロバイダーのデフォルト値をオーバーライドします。
Gateway RPC
サービスへのリンク
- OpenAI テキスト読み上げガイド
- OpenAI Audio API リファレンス
- Azure Speech REST テキスト読み上げ
- Azure Speech プロバイダー
- ElevenLabs テキスト読み上げ
- ElevenLabs 認証
- Gradium
- Inworld TTS API
- MiniMax T2A v2 API
- Volcengine TTS HTTP API
- Xiaomi MiMo 音声合成
- node-edge-tts
- Microsoft Speech の出力形式
- xAI テキスト読み上げ