OpenClaw dapat mengonversi balasan keluar menjadi audio di 14 penyedia ucapan dan mengirim pesan suara native di Feishu, Matrix, Telegram, dan WhatsApp, lampiran audio di tempat lain, serta stream PCM/Ulaw untuk telepon dan Talk. TTS adalah separuh keluaran ucapan dari modeDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
stt-tts Talk. Sesi Talk
realtime native penyedia menyintesis ucapan di dalam penyedia realtime, bukan
memanggil jalur TTS ini, sementara sesi transcription tidak menyintesis
respons suara asisten.
Mulai cepat
Pilih penyedia
OpenAI dan ElevenLabs adalah opsi hosted yang paling andal. Microsoft dan
Local CLI berfungsi tanpa kunci API. Lihat matriks penyedia
untuk daftar lengkapnya.
Atur kunci API
Ekspor variabel env untuk penyedia Anda (misalnya
OPENAI_API_KEY,
ELEVENLABS_API_KEY). Microsoft dan Local CLI tidak memerlukan kunci.Auto-TTS nonaktif secara default. Ketika
messages.tts.provider belum diatur,
OpenClaw memilih penyedia pertama yang dikonfigurasi dalam urutan pilih otomatis registry.
Tool agen tts bawaan hanya untuk niat eksplisit: chat biasa tetap berupa
teks kecuali pengguna meminta audio, menggunakan /tts, atau mengaktifkan ucapan
Auto-TTS/direktif.Penyedia yang didukung
| Penyedia | Auth | Catatan |
|---|---|---|
| Azure Speech | AZURE_SPEECH_KEY + AZURE_SPEECH_REGION (juga AZURE_SPEECH_API_KEY, SPEECH_KEY, SPEECH_REGION) | Keluaran catatan suara Ogg/Opus native dan telepon. |
| DeepInfra | DEEPINFRA_API_KEY | TTS kompatibel OpenAI. Default ke hexgrad/Kokoro-82M. |
| ElevenLabs | ELEVENLABS_API_KEY atau XI_API_KEY | Kloning suara, multibahasa, deterministik melalui seed; di-stream untuk pemutaran suara Discord. |
| Google Gemini | GEMINI_API_KEY atau GOOGLE_API_KEY | TTS batch Gemini API; sadar persona melalui promptTemplate: "audio-profile-v1". |
| Gradium | GRADIUM_API_KEY | Keluaran catatan suara dan telepon. |
| Inworld | INWORLD_API_KEY | API TTS streaming. Catatan suara Opus native dan telepon PCM. |
| Local CLI | tidak ada | Menjalankan perintah TTS lokal yang dikonfigurasi. |
| Microsoft | tidak ada | TTS neural Edge publik melalui node-edge-tts. Upaya terbaik, tanpa SLA. |
| MiniMax | MINIMAX_API_KEY (atau Paket Token: MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY) | API T2A v2. Default ke speech-2.8-hd. |
| OpenAI | OPENAI_API_KEY | Juga digunakan untuk ringkasan otomatis; mendukung persona instructions. |
| OpenRouter | OPENROUTER_API_KEY (dapat memakai ulang models.providers.openrouter.apiKey) | Model default hexgrad/kokoro-82m. |
| Volcengine | VOLCENGINE_TTS_API_KEY atau BYTEPLUS_SEED_SPEECH_API_KEY (AppID/token lama: VOLCENGINE_TTS_APPID/_TOKEN) | API HTTP BytePlus Seed Speech. |
| Vydra | VYDRA_API_KEY | Penyedia gambar, video, dan ucapan bersama. |
| xAI | XAI_API_KEY | TTS batch xAI. Catatan suara Opus native tidak didukung. |
| Xiaomi MiMo | XIAOMI_API_KEY | TTS MiMo melalui completion chat Xiaomi. |
summaryModel (atau
agents.defaults.model.primary), sehingga penyedia tersebut juga harus diautentikasi
jika Anda tetap mengaktifkan ringkasan.
Konfigurasi
Konfigurasi TTS berada di bawahmessages.tts dalam ~/.openclaw/openclaw.json. Pilih
preset dan sesuaikan blok penyedia:
- Azure Speech
- ElevenLabs
- Google Gemini
- Gradium
- Inworld
- Local CLI
- Microsoft (tanpa kunci)
- MiniMax
- OpenAI + ElevenLabs
- OpenRouter
- Volcengine
- xAI
- Xiaomi MiMo
Penggantian suara per agen
Gunakanagents.list[].tts ketika satu agen harus berbicara dengan penyedia,
suara, model, persona, atau mode Auto-TTS yang berbeda. Blok agen melakukan deep merge di atas
messages.tts, sehingga kredensial penyedia dapat tetap berada di konfigurasi penyedia global:
agents.list[].tts.persona bersama
konfigurasi provider — ini menimpa messages.tts.persona global hanya untuk agen tersebut.
Urutan prioritas untuk balasan otomatis, /tts audio, /tts status, dan
tool agen tts:
messages.ttsagents.list[].ttsaktif- override channel, ketika channel mendukung
channels.<channel>.tts - override akun, ketika channel meneruskan
channels.<channel>.accounts.<id>.tts - preferensi
/ttslokal untuk host ini - direktif inline
[[tts:...]]ketika override model diaktifkan
messages.tts dan
melakukan deep-merge di atas lapisan sebelumnya, sehingga kredensial provider bersama dapat tetap berada di
messages.tts sementara channel atau akun bot hanya mengubah suara, model, persona,
atau mode otomatis:
Persona
Persona adalah identitas lisan stabil yang dapat diterapkan secara deterministik di berbagai provider. Persona dapat mengutamakan satu provider, mendefinisikan intensi prompt yang netral terhadap provider, dan membawa binding khusus provider untuk suara, model, template prompt, seed, dan pengaturan suara.Persona minimal
Persona lengkap (prompt netral provider)
Resolusi persona
Persona aktif dipilih secara deterministik:- preferensi lokal
/tts persona <id>, jika diatur. messages.tts.persona, jika diatur.- Tanpa persona.
- Override langsung (CLI, Gateway, Talk, direktif TTS yang diizinkan).
- preferensi lokal
/tts provider <id>. providermilik persona aktif.messages.tts.provider.- Pemilihan otomatis registry.
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- Override permintaan tepercaya
- Override direktif TTS yang dipancarkan model dan diizinkan
Cara provider menggunakan prompt persona
Field prompt persona (profile, scene, sampleContext, style, accent,
pacing, constraints) bersifat netral terhadap provider. Setiap provider memutuskan cara
menggunakannya:
Google Gemini
Google Gemini
Membungkus field prompt persona dalam struktur prompt TTS Gemini hanya ketika
konfigurasi provider Google efektif mengatur
promptTemplate: "audio-profile-v1"
atau personaPrompt. Field lama audioProfile dan speakerName masih
ditambahkan di awal sebagai teks prompt khusus Google. Tag audio inline seperti
[whispers] atau [laughs] di dalam blok [[tts:text]] dipertahankan
di dalam transkrip Gemini; OpenClaw tidak membuat tag ini.OpenAI
OpenAI
Memetakan field prompt persona ke field permintaan
instructions hanya ketika
tidak ada instructions OpenAI eksplisit yang dikonfigurasi. instructions eksplisit
selalu menang.Provider lain
Provider lain
Hanya menggunakan binding persona khusus provider di bawah
personas.<id>.providers.<provider>. Field prompt persona diabaikan
kecuali provider menerapkan pemetaan prompt-persona sendiri.Kebijakan fallback
fallbackPolicy mengontrol perilaku ketika persona tidak memiliki binding untuk
provider yang dicoba:
| Kebijakan | Perilaku |
|---|---|
preserve-persona | Default. Field prompt yang netral terhadap provider tetap tersedia; provider dapat menggunakannya atau mengabaikannya. |
provider-defaults | Persona dihilangkan dari persiapan prompt untuk upaya tersebut; provider menggunakan default netralnya sementara fallback ke provider lain berlanjut. |
fail | Lewati upaya provider tersebut dengan reasonCode: "not_configured" dan personaBinding: "missing". Provider fallback tetap dicoba. |
talk.catalog dan meneruskannya
melalui sesi Talk atau permintaan handoff. Membuka sesi suara sebaiknya
tidak mengubah messages.tts atau default provider Talk global.
Direktif berbasis model
Secara default, asisten dapat memancarkan direktif[[tts:...]] untuk menimpa
suara, model, atau kecepatan untuk satu balasan, plus blok opsional
[[tts:text]]...[[/tts:text]] untuk isyarat ekspresif yang seharusnya muncul
hanya dalam audio:
messages.tts.auto adalah "tagged", direktif diperlukan untuk memicu
audio. Pengiriman blok streaming menghapus direktif dari teks yang terlihat sebelum
channel melihatnya, bahkan ketika terpisah di blok yang bersebelahan.
provider=... diabaikan kecuali modelOverrides.allowProvider: true. Ketika sebuah
balasan mendeklarasikan provider=..., key lain dalam direktif tersebut diurai
hanya oleh provider tersebut; key yang tidak didukung dihapus dan dilaporkan sebagai peringatan
direktif TTS.
Key direktif yang tersedia:
provider(id provider terdaftar; memerlukanallowProvider: true)voice/voiceName/voice_name/google_voice/voiceIdmodel/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(volume MiniMax, 0–10)pitch(pitch bilangan bulat MiniMax, −12 hingga 12; nilai pecahan dipotong)emotion(tag emosi Volcengine)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Perintah slash
Satu perintah/tts. Di Discord, OpenClaw juga mendaftarkan /voice karena
/tts adalah perintah bawaan Discord — teks /tts ... tetap berfungsi.
Perintah memerlukan pengirim yang berwenang (aturan allowlist/pemilik berlaku) dan antara
commands.text atau pendaftaran perintah native harus diaktifkan./tts onmenulis preferensi TTS lokal kealways;/tts offmenulisnya keoff./tts chat on|off|defaultmenulis override TTS otomatis yang dibatasi sesi untuk chat saat ini./tts persona <id>menulis preferensi persona lokal;/tts persona offmenghapusnya./tts latestmembaca balasan asisten terbaru dari transkrip sesi saat ini dan mengirimkannya sebagai audio satu kali. Perintah ini hanya menyimpan hash balasan tersebut pada entri sesi untuk menekan pengiriman suara duplikat./tts audiomenghasilkan balasan audio sekali pakai (tidak mengaktifkan TTS).limitdansummarydisimpan di preferensi lokal, bukan konfigurasi utama./tts statusmenyertakan diagnostik fallback untuk upaya terbaru —Fallback: <primary> -> <used>,Attempts: ..., dan detail per upaya (provider:outcome(reasonCode) latency)./statusmenampilkan mode TTS aktif plus provider, model, suara, dan metadata endpoint kustom yang disanitasi ketika TTS diaktifkan.
Preferensi per pengguna
Perintah slash menulis override lokal keprefsPath. Default-nya adalah
~/.openclaw/settings/tts.json; timpa dengan variabel env OPENCLAW_TTS_PREFS
atau messages.tts.prefsPath.
| Field tersimpan | Efek |
|---|---|
auto | Override TTS otomatis lokal (always, off, …) |
provider | Override provider utama lokal |
persona | Override persona lokal |
maxLength | Ambang ringkasan (default 1500 karakter) |
summarize | Toggle ringkasan (default true) |
messages.tts plus blok
agents.list[].tts aktif untuk host tersebut.
Format output (tetap)
Pengiriman suara TTS digerakkan oleh kapabilitas channel. Plugin channel mengiklankan apakah TTS bergaya suara harus meminta targetvoice-note native kepada provider atau
mempertahankan sintesis audio-file normal dan hanya menandai output yang kompatibel untuk pengiriman
suara.
- Saluran yang mendukung catatan suara: balasan catatan suara lebih memilih Opus (
opus_48000_64dari ElevenLabs,opusdari OpenAI).- 48kHz / 64kbps adalah tradeoff yang baik untuk pesan suara.
- Feishu / WhatsApp: ketika balasan catatan suara dibuat sebagai MP3/WebM/WAV/M4A
atau file audio lain yang kemungkinan sesuai, Plugin saluran mentranskodenya ke 48kHz
Ogg/Opus dengan
ffmpegsebelum mengirim pesan suara native. WhatsApp mengirim hasilnya melalui payloadaudioBaileys denganptt: truedanaudio/ogg; codecs=opus. Jika konversi gagal, Feishu menerima file asli sebagai lampiran; pengiriman WhatsApp gagal alih-alih memposting payload PTT yang tidak kompatibel. - Saluran lain: MP3 (
mp3_44100_128dari ElevenLabs,mp3dari OpenAI).- 44.1kHz / 128kbps adalah keseimbangan default untuk kejernihan ucapan.
- MiniMax: MP3 (model
speech-2.8-hd, laju sampel 32kHz) untuk lampiran audio normal. Untuk target catatan suara yang diiklankan saluran, OpenClaw mentranskode MP3 MiniMax ke Opus 48kHz denganffmpegsebelum pengiriman ketika saluran mengiklankan transcoding. - Xiaomi MiMo: MP3 secara default, atau WAV ketika dikonfigurasi. Untuk target catatan suara yang diiklankan saluran, OpenClaw mentranskode output Xiaomi ke Opus 48kHz dengan
ffmpegsebelum pengiriman ketika saluran mengiklankan transcoding. - CLI Lokal: menggunakan
outputFormatyang dikonfigurasi. Target catatan suara dikonversi ke Ogg/Opus dan output telepon dikonversi ke PCM mono mentah 16 kHz denganffmpeg. - Google Gemini: TTS Gemini API mengembalikan PCM mentah 24kHz. OpenClaw membungkusnya sebagai WAV untuk lampiran audio, mentranskodenya ke Opus 48kHz untuk target catatan suara, dan mengembalikan PCM langsung untuk Talk/telepon.
- Gradium: WAV untuk lampiran audio, Opus untuk target catatan suara, dan
ulaw_8000pada 8 kHz untuk telepon. - Inworld: MP3 untuk lampiran audio normal,
OGG_OPUSnative untuk target catatan suara, danPCMmentah pada 22050 Hz untuk Talk/telepon. - xAI: MP3 secara default;
responseFormatdapat berupamp3,wav,pcm,mulaw, ataualaw. OpenClaw menggunakan endpoint TTS REST batch xAI dan mengembalikan lampiran audio lengkap; WebSocket TTS streaming xAI tidak digunakan oleh jalur penyedia ini. Format catatan suara Opus native tidak didukung oleh jalur ini. - Microsoft: menggunakan
microsoft.outputFormat(defaultaudio-24khz-48kbitrate-mono-mp3).- Transport yang dibundel menerima
outputFormat, tetapi tidak semua format tersedia dari layanan. - Nilai format output mengikuti format output Microsoft Speech (termasuk Ogg/WebM Opus).
- Telegram
sendVoicemenerima OGG/MP3/M4A; gunakan OpenAI/ElevenLabs jika Anda memerlukan pesan suara Opus yang terjamin. - Jika format output Microsoft yang dikonfigurasi gagal, OpenClaw mencoba lagi dengan MP3.
- Transport yang dibundel menerima
Perilaku Auto-TTS
Ketikamessages.tts.auto diaktifkan, OpenClaw:
- Melewati TTS jika balasan sudah berisi media atau direktif
MEDIA:. - Melewati balasan yang sangat pendek (di bawah 10 karakter).
- Meringkas balasan panjang ketika ringkasan diaktifkan, menggunakan
summaryModel(atauagents.defaults.model.primary). - Melampirkan audio yang dihasilkan ke balasan.
- Dalam
mode: "final", tetap mengirim TTS hanya-audio untuk balasan final yang di-streaming setelah stream teks selesai; media yang dihasilkan melalui normalisasi media saluran yang sama seperti lampiran balasan normal.
maxLength dan ringkasan nonaktif (atau tidak ada API key untuk
model ringkasan), audio dilewati dan balasan teks normal dikirim.
Format output berdasarkan saluran
| Target | Format |
|---|---|
| Feishu / Matrix / Telegram / WhatsApp | Balasan catatan suara lebih memilih Opus (opus_48000_64 dari ElevenLabs, opus dari OpenAI). 48 kHz / 64 kbps menyeimbangkan kejernihan dan ukuran. |
| Saluran lain | MP3 (mp3_44100_128 dari ElevenLabs, mp3 dari OpenAI). 44.1 kHz / 128 kbps default untuk ucapan. |
| Talk / telefoni | PCM native penyedia (Inworld 22050 Hz, Google 24 kHz), atau ulaw_8000 dari Gradium untuk telefoni. |
- Transkode Feishu / WhatsApp: Ketika balasan catatan suara masuk sebagai MP3/WebM/WAV/M4A, plugin saluran mentranskode ke Ogg/Opus 48 kHz dengan
ffmpeg. WhatsApp mengirim melalui Baileys denganptt: truedanaudio/ogg; codecs=opus. Jika konversi gagal: Feishu fallback dengan melampirkan file asli; pengiriman WhatsApp gagal alih-alih memposting payload PTT yang tidak kompatibel. - MiniMax / Xiaomi MiMo: MP3 default (32 kHz untuk MiniMax
speech-2.8-hd); ditranskode ke Opus 48 kHz untuk target catatan suara melaluiffmpeg. - CLI lokal: Menggunakan
outputFormatyang dikonfigurasi. Target catatan suara dikonversi ke Ogg/Opus dan keluaran telefoni ke PCM mono 16 kHz mentah. - Google Gemini: Mengembalikan PCM 24 kHz mentah. OpenClaw membungkusnya sebagai WAV untuk lampiran, mentranskode ke Opus 48 kHz untuk target catatan suara, mengembalikan PCM langsung untuk Talk/telefoni.
- Inworld: Lampiran MP3, catatan suara
OGG_OPUSnative,PCMmentah 22050 Hz untuk Talk/telefoni. - xAI: MP3 secara default;
responseFormatdapat berupamp3|wav|pcm|mulaw|alaw. Menggunakan endpoint REST batch xAI — TTS WebSocket streaming tidak digunakan. Format catatan suara Opus native tidak didukung. - Microsoft: Menggunakan
microsoft.outputFormat(defaultaudio-24khz-48kbitrate-mono-mp3).sendVoiceTelegram menerima OGG/MP3/M4A; gunakan OpenAI/ElevenLabs jika Anda memerlukan pesan suara Opus yang dijamin. Jika format Microsoft yang dikonfigurasi gagal, OpenClaw mencoba ulang dengan MP3.
Referensi bidang
Top-level messages.tts.*
Top-level messages.tts.*
Mode Auto-TTS.
inbound hanya mengirim audio setelah pesan suara masuk; tagged hanya mengirim audio ketika balasan menyertakan direktif [[tts:...]] atau blok [[tts:text]].Toggle lama.
openclaw doctor --fix memigrasikan ini ke auto."all" menyertakan balasan alat/blok selain balasan final.ID penyedia ucapan. Jika tidak disetel, OpenClaw menggunakan penyedia pertama yang dikonfigurasi dalam urutan pilih otomatis registry.
provider: "edge" lama ditulis ulang menjadi "microsoft" oleh openclaw doctor --fix.ID persona aktif dari
personas. Dinormalisasi ke huruf kecil.Identitas lisan yang stabil. Bidang:
label, description, provider, fallbackPolicy, prompt, providers.<provider>. Lihat Persona.Model murah untuk ringkasan otomatis; default ke
agents.defaults.model.primary. Menerima provider/model atau alias model yang dikonfigurasi.Izinkan model memancarkan direktif TTS.
enabled default ke true; allowProvider default ke false.Pengaturan milik penyedia yang dikunci berdasarkan ID penyedia ucapan. Blok langsung lama (
messages.tts.openai, .elevenlabs, .microsoft, .edge) ditulis ulang oleh openclaw doctor --fix; commit hanya messages.tts.providers.<id>.Batas keras untuk karakter input TTS.
/tts audio gagal jika terlampaui.Timeout permintaan dalam milidetik.
Timpa path JSON preferensi lokal (penyedia/batas/ringkasan). Default
~/.openclaw/settings/tts.json.Azure Speech
Azure Speech
Env:
AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY, atau SPEECH_KEY.Region Azure Speech (mis.
eastus). Env: AZURE_SPEECH_REGION atau SPEECH_REGION.Penimpaan endpoint Azure Speech opsional (alias
baseUrl).ShortName suara Azure. Default
en-US-JennyNeural.Kode bahasa SSML. Default
en-US.X-Microsoft-OutputFormat Azure untuk audio standar. Default audio-24khz-48kbitrate-mono-mp3.X-Microsoft-OutputFormat Azure untuk keluaran catatan suara. Default ogg-24khz-16bit-mono-opus.ElevenLabs
ElevenLabs
Fallback ke
ELEVENLABS_API_KEY atau XI_API_KEY.ID model (mis.
eleven_multilingual_v2, eleven_v3).ID suara ElevenLabs.
stability, similarityBoost, style (masing-masing 0..1), useSpeakerBoost (true|false), speed (0.5..2.0, 1.0 = normal).Mode normalisasi teks.
ISO 639-1 2 huruf (mis.
en, de).Bilangan bulat
0..4294967295 untuk determinisme best-effort.Timpa URL dasar API ElevenLabs.
Google Gemini
Google Gemini
Fallback ke
GEMINI_API_KEY / GOOGLE_API_KEY. Jika dihilangkan, TTS dapat menggunakan kembali models.providers.google.apiKey sebelum fallback env.Model TTS Gemini. Default
gemini-3.1-flash-tts-preview.Nama suara bawaan Gemini. Default
Kore. Alias: voice.Prompt gaya bahasa alami yang ditambahkan sebelum teks lisan.
Label pembicara opsional yang ditambahkan sebelum teks lisan ketika prompt Anda menggunakan pembicara bernama.
Setel ke
audio-profile-v1 untuk membungkus bidang prompt persona aktif dalam struktur prompt TTS Gemini yang deterministik.Teks prompt persona ekstra khusus Google yang ditambahkan ke Catatan Sutradara template.
Hanya
https://generativelanguage.googleapis.com yang diterima.Gradium
Gradium
Inworld
Inworld
CLI Lokal (tts-local-cli)
CLI Lokal (tts-local-cli)
Executable lokal atau string perintah untuk CLI TTS.
Argumen perintah. Mendukung placeholder
{{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}.Format output CLI yang diharapkan. Bawaan
mp3 untuk lampiran audio.Batas waktu perintah dalam milidetik. Bawaan
120000.Direktori kerja perintah opsional.
Override lingkungan opsional untuk perintah.
Microsoft (tanpa kunci API)
Microsoft (tanpa kunci API)
Izinkan penggunaan suara Microsoft.
Nama suara neural Microsoft (mis.
en-US-MichelleNeural).Kode bahasa (mis.
en-US).Format output Microsoft. Bawaan
audio-24khz-48kbitrate-mono-mp3. Tidak semua format didukung oleh transport bawaan berbasis Edge.String persen (mis.
+10%, -5%).Tulis subtitel JSON bersama file audio.
URL proksi untuk permintaan suara Microsoft.
Override batas waktu permintaan (md).
Alias lama. Jalankan
openclaw doctor --fix untuk menulis ulang konfigurasi tersimpan ke providers.microsoft.MiniMax
MiniMax
Fallback ke
MINIMAX_API_KEY. Autentikasi Token Plan melalui MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, atau MINIMAX_CODING_API_KEY.Bawaan
https://api.minimax.io. Lingkungan: MINIMAX_API_HOST.Bawaan
speech-2.8-hd. Lingkungan: MINIMAX_TTS_MODEL.Bawaan
English_expressive_narrator. Lingkungan: MINIMAX_TTS_VOICE_ID.0.5..2.0. Bawaan 1.0.(0, 10]. Bawaan 1.0.Bilangan bulat
-12..12. Bawaan 0. Nilai pecahan dipotong sebelum permintaan.OpenAI
OpenAI
Fallback ke
OPENAI_API_KEY.ID model TTS OpenAI (mis.
gpt-4o-mini-tts).Nama suara (mis.
alloy, cedar).Kolom OpenAI
instructions eksplisit. Saat disetel, kolom prompt persona tidak dipetakan otomatis.Kolom JSON tambahan yang digabungkan ke dalam body permintaan
/audio/speech setelah kolom TTS OpenAI yang dihasilkan. Gunakan ini untuk endpoint yang kompatibel dengan OpenAI seperti Kokoro yang memerlukan kunci khusus penyedia seperti lang; kunci prototipe yang tidak aman diabaikan.Override endpoint TTS OpenAI. Urutan resolusi: konfigurasi →
OPENAI_TTS_BASE_URL → https://api.openai.com/v1. Nilai non-bawaan diperlakukan sebagai endpoint TTS yang kompatibel dengan OpenAI, sehingga nama model dan suara khusus diterima.OpenRouter
OpenRouter
Lingkungan:
OPENROUTER_API_KEY. Dapat menggunakan ulang models.providers.openrouter.apiKey.Bawaan
https://openrouter.ai/api/v1. Lama https://openrouter.ai/v1 dinormalisasi.Bawaan
hexgrad/kokoro-82m. Alias: modelId.Bawaan
af_alloy. Alias: voiceId.Bawaan
mp3.Override kecepatan bawaan penyedia.
Volcengine (BytePlus Seed Speech)
Volcengine (BytePlus Seed Speech)
Lingkungan:
VOLCENGINE_TTS_API_KEY atau BYTEPLUS_SEED_SPEECH_API_KEY.Bawaan
seed-tts-1.0. Lingkungan: VOLCENGINE_TTS_RESOURCE_ID. Gunakan seed-tts-2.0 saat proyek Anda memiliki hak TTS 2.0.Header kunci aplikasi. Bawaan
aGjiRDfUWi. Lingkungan: VOLCENGINE_TTS_APP_KEY.Override endpoint HTTP Seed Speech TTS. Lingkungan:
VOLCENGINE_TTS_BASE_URL.Jenis suara. Bawaan
en_female_anna_mars_bigtts. Lingkungan: VOLCENGINE_TTS_VOICE.Rasio kecepatan bawaan penyedia.
Tag emosi bawaan penyedia.
Kolom lama Volcengine Speech Console. Lingkungan:
VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (bawaan volcano_tts).xAI
xAI
Lingkungan:
XAI_API_KEY.Bawaan
https://api.x.ai/v1. Lingkungan: XAI_BASE_URL.Bawaan
eve. Suara live: ara, eve, leo, rex, sal, una.Kode bahasa BCP-47 atau
auto. Bawaan en.Bawaan
mp3.Override kecepatan bawaan penyedia.
Xiaomi MiMo
Xiaomi MiMo
Lingkungan:
XIAOMI_API_KEY.Bawaan
https://api.xiaomimimo.com/v1. Lingkungan: XIAOMI_BASE_URL.Bawaan
mimo-v2.5-tts. Lingkungan: XIAOMI_TTS_MODEL. Juga mendukung mimo-v2-tts.Bawaan
mimo_default. Lingkungan: XIAOMI_TTS_VOICE.Bawaan
mp3. Lingkungan: XIAOMI_TTS_FORMAT.Instruksi gaya bahasa alami opsional yang dikirim sebagai pesan pengguna; tidak diucapkan.
Alat agen
Alattts mengonversi teks menjadi ucapan dan mengembalikan lampiran audio untuk
pengiriman balasan. Di Feishu, Matrix, Telegram, dan WhatsApp, audio
dikirim sebagai pesan suara, bukan lampiran file. Feishu dan
WhatsApp dapat mentranskode output TTS non-Opus pada jalur ini saat ffmpeg
tersedia.
WhatsApp mengirim audio melalui Baileys sebagai catatan suara PTT (audio dengan
ptt: true) dan mengirim teks yang terlihat secara terpisah dari audio PTT karena
klien tidak selalu merender keterangan pada catatan suara secara konsisten.
Alat ini menerima kolom channel dan timeoutMs opsional; timeoutMs adalah
batas waktu permintaan penyedia per panggilan dalam milidetik.
RPC Gateway
| Metode | Tujuan |
|---|---|
tts.status | Membaca status TTS saat ini dan percobaan terakhir. |
tts.enable | Mengatur preferensi otomatis lokal ke always. |
tts.disable | Mengatur preferensi otomatis lokal ke off. |
tts.convert | Teks satu kali → audio. |
tts.setProvider | Mengatur preferensi penyedia lokal. |
tts.setPersona | Mengatur preferensi persona lokal. |
tts.providers | Mencantumkan penyedia yang dikonfigurasi dan statusnya. |
Tautan layanan
- Panduan teks-ke-ucapan OpenAI
- Referensi API Audio OpenAI
- Teks-ke-ucapan REST Azure Speech
- Penyedia Azure Speech
- Teks ke Ucapan ElevenLabs
- Autentikasi ElevenLabs
- Gradium
- API TTS Inworld
- API MiniMax T2A v2
- API HTTP TTS Volcengine
- Sintesis ucapan Xiaomi MiMo
- node-edge-tts
- Format output Microsoft Speech
- Teks ke ucapan xAI