stt-tts di Talk. Le sessioni Talk
realtime native del fornitore sintetizzano la voce all’interno del fornitore in tempo reale
invece di chiamare questo percorso TTS, mentre le sessioni transcription non sintetizzano
una risposta vocale dell’assistente.
Avvio rapido
Pick a provider
OpenAI ed ElevenLabs sono le opzioni ospitate più affidabili. Microsoft e
CLI locale funzionano senza chiave API. Vedi la matrice dei fornitori
per l’elenco completo.
Set the API key
Esporta la variabile d’ambiente per il tuo fornitore (ad esempio
OPENAI_API_KEY,
ELEVENLABS_API_KEY). Microsoft e CLI locale non richiedono alcuna chiave.Auto-TTS è disattivato per impostazione predefinita. Quando
messages.tts.provider non è impostato,
OpenClaw sceglie il primo fornitore configurato nell’ordine di selezione automatica del registro.
Lo strumento agente tts integrato è solo per intenzione esplicita: la chat ordinaria resta
testuale a meno che l’utente non chieda l’audio, usi /tts, o abiliti la voce
Auto-TTS/direttiva.Fornitori supportati
| Fornitore | Autenticazione | Note |
|---|---|---|
| Azure Speech | AZURE_SPEECH_KEY + AZURE_SPEECH_REGION (anche AZURE_SPEECH_API_KEY, SPEECH_KEY, SPEECH_REGION) | Output nativo di nota vocale Ogg/Opus e telefonia. |
| DeepInfra | DEEPINFRA_API_KEY | TTS compatibile con OpenAI. Predefinito: hexgrad/Kokoro-82M. |
| ElevenLabs | ELEVENLABS_API_KEY o XI_API_KEY | Clonazione vocale, multilingue, deterministico tramite seed; in streaming per la riproduzione vocale Discord. |
| Google Gemini | GEMINI_API_KEY o GOOGLE_API_KEY | TTS batch API Gemini; consapevole della persona tramite promptTemplate: "audio-profile-v1". |
| Gradium | GRADIUM_API_KEY | Output di nota vocale e telefonia. |
| Inworld | INWORLD_API_KEY | API TTS in streaming. Nota vocale Opus nativa e telefonia PCM. |
| Local CLI | nessuna | Esegue un comando TTS locale configurato. |
| Microsoft | nessuna | TTS neurale pubblico Edge tramite node-edge-tts. Miglior tentativo, nessuno SLA. |
| MiniMax | MINIMAX_API_KEY (o piano Token: MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY) | API T2A v2. Predefinito: speech-2.8-hd. |
| OpenAI | OPENAI_API_KEY | Usato anche per il riepilogo automatico; supporta instructions per la persona. |
| OpenRouter | OPENROUTER_API_KEY (può riutilizzare models.providers.openrouter.apiKey) | Modello predefinito hexgrad/kokoro-82m. |
| Volcengine | VOLCENGINE_TTS_API_KEY o BYTEPLUS_SEED_SPEECH_API_KEY (AppID/token legacy: VOLCENGINE_TTS_APPID/_TOKEN) | API HTTP BytePlus Seed Speech. |
| Vydra | VYDRA_API_KEY | Fornitore condiviso di immagini, video e sintesi vocale. |
| xAI | XAI_API_KEY | TTS batch xAI. La nota vocale Opus nativa non è supportata. |
| Xiaomi MiMo | XIAOMI_API_KEY | MiMo TTS tramite completamenti chat Xiaomi. |
summaryModel (o
agents.defaults.model.primary), quindi anche quel fornitore deve essere autenticato
se mantieni abilitati i riepiloghi.
Configurazione
La configurazione TTS si trova sottomessages.tts in ~/.openclaw/openclaw.json. Scegli un
preset e adatta il blocco del fornitore:
- Azure Speech
- ElevenLabs
- Google Gemini
- Gradium
- Inworld
- Local CLI
- Microsoft (no key)
- MiniMax
- OpenAI + ElevenLabs
- OpenRouter
- Volcengine
- xAI
- Xiaomi MiMo
mimo-v2.5-tts-voicedesign, ometti speakerVoice e imposta style sul
prompt di progettazione vocale. OpenClaw invia quel prompt come messaggio user TTS
e non invia audio.voice per il modello voicedesign.
Sostituzioni vocali per agente
Usaagents.list[].tts quando un agente deve parlare con un provider,
voce, modello, persona o modalità TTS automatica diversi. Il blocco dell’agente esegue un deep merge sopra
messages.tts, quindi le credenziali del provider possono restare nella configurazione globale del provider:
agents.list[].tts.persona insieme alla configurazione del provider:
sovrascrive messages.tts.persona globale solo per quell’agente.
Ordine di precedenza per risposte automatiche, /tts audio, /tts status e lo
strumento agente tts:
messages.ttsagents.list[].ttsattivo- override del canale, quando il canale supporta
channels.<channel>.tts - override dell’account, quando il canale passa
channels.<channel>.accounts.<id>.tts - preferenze locali
/ttsper questo host - direttive inline
[[tts:...]]quando gli override del modello sono abilitati
messages.tts ed eseguono
un deep merge sopra i livelli precedenti, quindi le credenziali condivise del provider possono restare in
messages.tts mentre un canale o account bot cambia solo voce del parlante, modello, persona
o modalità automatica:
Persone
Una persona è un’identità vocale stabile che può essere applicata in modo deterministico tra provider. Può preferire un provider, definire l’intento del prompt indipendente dal provider e contenere associazioni specifiche del provider per voci, modelli, template di prompt, seed e impostazioni vocali.Persona minima
Persona completa (prompt indipendente dal provider)
Risoluzione della persona
La persona attiva viene selezionata in modo deterministico:- preferenza locale
/tts persona <id>, se impostata. messages.tts.persona, se impostata.- Nessuna persona.
- Override diretti (CLI, Gateway, Talk, direttive TTS consentite).
- preferenza locale
/tts provider <id>. providerdella persona attiva.messages.tts.provider.- Selezione automatica del registro.
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- Override attendibili della richiesta
- Override consentiti delle direttive TTS emesse dal modello
Come i provider usano i prompt della persona
I campi del prompt della persona (profile, scene, sampleContext, style, accent,
pacing, constraints) sono indipendenti dal provider. Ogni provider decide come
usarli:
Google Gemini
Google Gemini
Incapsula i campi del prompt della persona in una struttura di prompt TTS Gemini solo quando
la configurazione effettiva del provider Google imposta
promptTemplate: "audio-profile-v1"
o personaPrompt. I campi precedenti audioProfile e speakerName vengono
ancora anteposti come testo di prompt specifico di Google. I tag audio inline come
[whispers] o [laughs] dentro un blocco [[tts:text]] vengono preservati
dentro la trascrizione Gemini; OpenClaw non genera questi tag.OpenAI
OpenAI
Mappa i campi del prompt della persona al campo
instructions della richiesta solo quando
non sono configurate instructions OpenAI esplicite. Le instructions esplicite
hanno sempre la precedenza.Other providers
Other providers
Usano solo le associazioni della persona specifiche del provider sotto
personas.<id>.providers.<provider>. I campi del prompt della persona vengono ignorati
a meno che il provider non implementi una propria mappatura dei prompt della persona.Criterio di fallback
fallbackPolicy controlla il comportamento quando una persona non ha nessuna associazione per il
provider tentato:
| Criterio | Comportamento |
|---|---|
preserve-persona | Predefinito. I campi del prompt indipendenti dal provider restano disponibili; il provider può usarli o ignorarli. |
provider-defaults | La persona viene omessa dalla preparazione del prompt per quel tentativo; il provider usa i suoi valori predefiniti neutrali mentre il fallback verso altri provider continua. |
fail | Salta quel tentativo di provider con reasonCode: "not_configured" e personaBinding: "missing". I provider di fallback vengono comunque provati. |
talk.catalog e passarli
attraverso la sessione Talk o la richiesta di handoff. L’apertura di una sessione vocale non dovrebbe
modificare messages.tts o i valori predefiniti globali del provider Talk.
Direttive guidate dal modello
Per impostazione predefinita, l’assistente può emettere direttive[[tts:...]] per sovrascrivere
voce, modello o velocità per una singola risposta, più un blocco facoltativo
[[tts:text]]...[[/tts:text]] per segnali espressivi che devono comparire solo
nell’audio:
messages.tts.auto è "tagged", le direttive sono obbligatorie per attivare
l’audio. La consegna dei blocchi in streaming rimuove le direttive dal testo visibile prima che il
canale le veda, anche quando sono divise tra blocchi adiacenti.
provider=... viene ignorato a meno che modelOverrides.allowProvider: true. Quando una
risposta dichiara provider=..., le altre chiavi in quella direttiva vengono analizzate
solo da quel provider; le chiavi non supportate vengono rimosse e segnalate come avvisi
di direttiva TTS.
Chiavi di direttiva disponibili:
provider(ID provider registrato; richiedeallowProvider: true)speakerVoice/speakerVoiceId(alias legacy:voice,voiceName,voice_name,google_voice,voiceId)model/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(volume MiniMax, 0–10)pitch(intonazione intera MiniMax, da −12 a 12; i valori frazionari vengono troncati)emotion(tag emozione Volcengine)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Comandi slash
Comando singolo/tts. Su Discord, OpenClaw registra anche /voice perché
/tts è un comando integrato di Discord: il testo /tts ... continua a funzionare.
I comandi richiedono un mittente autorizzato (si applicano regole di allowlist/proprietario) e
commands.text oppure la registrazione dei comandi nativi deve essere abilitata./tts onscrive la preferenza TTS locale sualways;/tts offla scrive suoff./tts chat on|off|defaultscrive un override TTS automatico con ambito di sessione per la chat corrente./tts persona <id>scrive la preferenza locale della persona;/tts persona offla cancella./tts latestlegge l’ultima risposta dell’assistente dalla trascrizione della sessione corrente e la invia una sola volta come audio. Memorizza solo un hash di quella risposta nella voce di sessione per evitare invii vocali duplicati./tts audiogenera una risposta audio una tantum (non attiva TTS).limitesummarysono memorizzati nelle preferenze locali, non nella configurazione principale./tts statusinclude diagnostica di fallback per l’ultimo tentativo:Fallback: <primary> -> <used>,Attempts: ...e dettagli per tentativo (provider:outcome(reasonCode) latency)./statusmostra la modalità TTS attiva più provider, modello, voce e metadati sanificati dell’endpoint personalizzato configurati quando TTS è abilitato.
Preferenze per utente
I comandi slash scrivono override locali inprefsPath. Il valore predefinito è
~/.openclaw/settings/tts.json; sovrascrivilo con la variabile d’ambiente OPENCLAW_TTS_PREFS
o messages.tts.prefsPath.
| Campo memorizzato | Effetto |
|---|---|
auto | Override TTS automatico locale (always, off, …) |
provider | Override del provider primario locale |
persona | Override locale della persona |
maxLength | Soglia di riepilogo (predefinita 1500 caratteri) |
summarize | Interruttore di riepilogo (predefinito true) |
messages.tts più il blocco
agents.list[].tts attivo per quell’host.
Formati di output (fissi)
La consegna vocale TTS è guidata dalle capacità del canale. I Plugin di canale dichiarano se il TTS in stile vocale deve chiedere ai provider un target nativovoice-note o
mantenere la normale sintesi audio-file e contrassegnare solo l’output compatibile per la consegna
vocale.
- Canali compatibili con le note vocali: le risposte con note vocali preferiscono Opus (
opus_48000_64da ElevenLabs,opusda OpenAI).- 48 kHz / 64 kbps è un buon compromesso per i messaggi vocali.
- Feishu / WhatsApp: quando una risposta con nota vocale viene prodotta come MP3/WebM/WAV/M4A
o come un altro probabile file audio, il Plugin del canale la transcodifica a 48 kHz
Ogg/Opus con
ffmpegprima di inviare il messaggio vocale nativo. WhatsApp invia il risultato tramite il payloadaudiodi Baileys conptt: trueeaudio/ogg; codecs=opus. Se la conversione non riesce, Feishu riceve il file originale come allegato; l’invio di WhatsApp non riesce invece di pubblicare un payload PTT incompatibile. - Altri canali: MP3 (
mp3_44100_128da ElevenLabs,mp3da OpenAI).- 44,1 kHz / 128 kbps è il bilanciamento predefinito per la chiarezza del parlato.
- MiniMax: MP3 (modello
speech-2.8-hd, frequenza di campionamento 32 kHz) per i normali allegati audio. Per le destinazioni di note vocali dichiarate dal canale, OpenClaw transcodifica l’MP3 di MiniMax in Opus a 48 kHz conffmpegprima della consegna quando il canale dichiara la transcodifica. - Xiaomi MiMo: MP3 per impostazione predefinita, oppure WAV quando configurato. Per le destinazioni di note vocali dichiarate dal canale, OpenClaw transcodifica l’output Xiaomi in Opus a 48 kHz con
ffmpegprima della consegna quando il canale dichiara la transcodifica. - CLI locale: usa il
outputFormatconfigurato. Le destinazioni di note vocali vengono convertite in Ogg/Opus e l’output di telefonia viene convertito in PCM mono grezzo a 16 kHz conffmpeg. - Google Gemini: il TTS dell’API Gemini restituisce PCM grezzo a 24 kHz. OpenClaw lo racchiude come WAV per gli allegati audio, lo transcodifica in Opus a 48 kHz per le destinazioni di note vocali e restituisce direttamente PCM per Talk/telefonia.
- Gradium: WAV per gli allegati audio, Opus per le destinazioni di note vocali e
ulaw_8000a 8 kHz per la telefonia. - Inworld: MP3 per i normali allegati audio,
OGG_OPUSnativo per le destinazioni di note vocali ePCMgrezzo a 22050 Hz per Talk/telefonia. - xAI: MP3 per impostazione predefinita;
responseFormatpuò esseremp3,wav,pcm,mulawoalaw. OpenClaw usa l’endpoint TTS REST batch di xAI e restituisce un allegato audio completo; il WebSocket TTS in streaming di xAI non viene usato da questo percorso del provider. Il formato nativo Opus per note vocali non è supportato da questo percorso. - Microsoft: usa
microsoft.outputFormat(predefinitoaudio-24khz-48kbitrate-mono-mp3).- Il trasporto incluso accetta un
outputFormat, ma non tutti i formati sono disponibili dal servizio. - I valori del formato di output seguono i formati di output di Microsoft Speech (inclusi Ogg/WebM Opus).
- Telegram
sendVoiceaccetta OGG/MP3/M4A; usa OpenAI/ElevenLabs se hai bisogno di messaggi vocali Opus garantiti. - Se il formato di output Microsoft configurato non riesce, OpenClaw ritenta con MP3.
- Il trasporto incluso accetta un
Comportamento Auto-TTS
Quandomessages.tts.auto è abilitato, OpenClaw:
- Salta il TTS se la risposta contiene già contenuti multimediali strutturati.
- Salta le risposte molto brevi (meno di 10 caratteri).
- Riassume le risposte lunghe quando i riassunti sono abilitati, usando
summaryModel(oagents.defaults.model.primary). - Allega l’audio generato alla risposta.
- In
mode: "final", invia comunque il TTS solo audio per le risposte finali in streaming dopo il completamento dello stream di testo; il contenuto multimediale generato passa attraverso la stessa normalizzazione multimediale del canale degli allegati di risposta normali.
maxLength e il riassunto è disattivato (o manca una chiave API per il
modello di riassunto), l’audio viene saltato e viene inviata la normale risposta testuale.
Formati di output per canale
| Destinazione | Formato |
|---|---|
| Feishu / Matrix / Telegram / WhatsApp | Le risposte con nota vocale preferiscono Opus (opus_48000_64 da ElevenLabs, opus da OpenAI). 48 kHz / 64 kbps bilancia chiarezza e dimensione. |
| Altri canali | MP3 (mp3_44100_128 da ElevenLabs, mp3 da OpenAI). 44,1 kHz / 128 kbps predefinito per il parlato. |
| Talk / telefonia | PCM nativo del provider (Inworld 22050 Hz, Google 24 kHz), oppure ulaw_8000 da Gradium per la telefonia. |
- Transcodifica Feishu / WhatsApp: Quando una risposta con nota vocale arriva come MP3/WebM/WAV/M4A, il Plugin del canale la transcodifica in Ogg/Opus a 48 kHz con
ffmpeg. WhatsApp invia tramite Baileys conptt: trueeaudio/ogg; codecs=opus. Se la conversione non riesce: Feishu ripiega sull’allegare il file originale; l’invio WhatsApp fallisce invece di pubblicare un payload PTT incompatibile. - MiniMax / Xiaomi MiMo: MP3 predefinito (32 kHz per MiniMax
speech-2.8-hd); transcodificato in Opus a 48 kHz per le destinazioni con nota vocale tramiteffmpeg. - CLI locale: Usa
outputFormatconfigurato. Le destinazioni con nota vocale sono convertite in Ogg/Opus e l’output di telefonia in PCM mono grezzo a 16 kHz. - Google Gemini: Restituisce PCM grezzo a 24 kHz. OpenClaw lo incapsula come WAV per gli allegati, lo transcodifica in Opus a 48 kHz per le destinazioni con nota vocale, restituisce direttamente PCM per Talk/telefonia.
- Inworld: Allegati MP3, nota vocale nativa
OGG_OPUS,PCMgrezzo a 22050 Hz per Talk/telefonia. - xAI: MP3 per impostazione predefinita;
responseFormatpuò esseremp3|wav|pcm|mulaw|alaw. Usa l’endpoint REST batch di xAI: lo streaming WebSocket TTS non viene usato. Il formato nativo Opus per note vocali non è supportato. - Microsoft: Usa
microsoft.outputFormat(predefinitoaudio-24khz-48kbitrate-mono-mp3). TelegramsendVoiceaccetta OGG/MP3/M4A; usa OpenAI/ElevenLabs se hai bisogno di messaggi vocali Opus garantiti. Se il formato Microsoft configurato fallisce, OpenClaw riprova con MP3.
Riferimento dei campi
messages.tts.* di primo livello
messages.tts.* di primo livello
Modalità Auto-TTS.
inbound invia audio solo dopo un messaggio vocale in ingresso; tagged invia audio solo quando la risposta include direttive [[tts:...]] o un blocco [[tts:text]].Interruttore legacy.
openclaw doctor --fix lo migra in auto."all" include le risposte di strumenti/blocchi oltre alle risposte finali.ID del provider vocale. Quando non è impostato, OpenClaw usa il primo provider configurato nell’ordine di selezione automatica del registro. Il legacy
provider: "edge" viene riscritto in "microsoft" da openclaw doctor --fix.ID della persona attiva da
personas. Normalizzato in minuscolo.Identità parlata stabile. Campi:
label, description, provider, fallbackPolicy, prompt, providers.<provider>. Vedi Personas.Modello economico per il riepilogo automatico; predefinito a
agents.defaults.model.primary. Accetta provider/model o un alias di modello configurato.Consente al modello di emettere direttive TTS.
enabled è predefinito a true; allowProvider è predefinito a false.Impostazioni di proprietà del provider indicizzate per ID del provider vocale. I blocchi diretti legacy (
messages.tts.openai, .elevenlabs, .microsoft, .edge) vengono riscritti da openclaw doctor --fix; committa solo messages.tts.providers.<id>.Limite rigido per i caratteri di input TTS.
/tts audio fallisce se viene superato.Timeout della richiesta in millisecondi.
Sovrascrive il percorso JSON delle preferenze locali (provider/limite/riepilogo). Predefinito
~/.openclaw/settings/tts.json.Azure Speech
Azure Speech
Env:
AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY o SPEECH_KEY.Regione Azure Speech (ad es.
eastus). Env: AZURE_SPEECH_REGION o SPEECH_REGION.Override opzionale dell’endpoint Azure Speech (alias
baseUrl).ShortName della voce Azure. Predefinito
en-US-JennyNeural. Alias legacy: voice.Codice lingua SSML. Predefinito
en-US.Azure
X-Microsoft-OutputFormat per audio standard. Predefinito audio-24khz-48kbitrate-mono-mp3.Azure
X-Microsoft-OutputFormat per output con nota vocale. Predefinito ogg-24khz-16bit-mono-opus.ElevenLabs
ElevenLabs
Ripiega su
ELEVENLABS_API_KEY o XI_API_KEY.ID del modello (ad es.
eleven_multilingual_v2, eleven_v3).ID della voce ElevenLabs. Alias legacy:
voiceId.stability, similarityBoost, style (ciascuno 0..1), useSpeakerBoost (true|false), speed (0.5..2.0, 1.0 = normale).Modalità di normalizzazione del testo.
ISO 639-1 a 2 lettere (ad es.
en, de).Intero
0..4294967295 per determinismo al meglio possibile.Sovrascrive l’URL base dell’API ElevenLabs.
Google Gemini
Google Gemini
Ripiega su
GEMINI_API_KEY / GOOGLE_API_KEY. Se omesso, TTS può riusare models.providers.google.apiKey prima del fallback env.Modello TTS Gemini. Predefinito
gemini-3.1-flash-tts-preview.Nome voce Gemini predefinita. Predefinito
Kore. Alias legacy: voiceName, voice.Prompt di stile in linguaggio naturale anteposto prima del testo parlato.
Etichetta opzionale del parlante anteposta prima del testo parlato quando il prompt usa un parlante nominato.
Imposta su
audio-profile-v1 per racchiudere i campi del prompt della persona attiva in una struttura deterministica di prompt TTS Gemini.Testo aggiuntivo del prompt della persona specifico per Google aggiunto alle Note del direttore del template.
È accettato solo
https://generativelanguage.googleapis.com.Gradium
Gradium
Inworld
Inworld
Primario Inworld
Env:
INWORLD_API_KEY.Predefinito
https://api.inworld.ai.Predefinito
inworld-tts-1.5-max. Anche: inworld-tts-1.5-mini, inworld-tts-1-max, inworld-tts-1.Predefinito
Sarah. Alias legacy: voiceId.Temperatura di campionamento
0..2.CLI locale (tts-local-cli)
CLI locale (tts-local-cli)
Eseguibile locale o stringa di comando per CLI TTS.
Argomenti del comando. Supporta i placeholder
{{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}.Formato di output CLI previsto. Predefinito
mp3 per gli allegati audio.Timeout del comando in millisecondi. Predefinito
120000.Directory di lavoro opzionale del comando.
Override opzionali dell’ambiente per il comando.
Microsoft (nessuna chiave API)
Microsoft (nessuna chiave API)
Consenti l’uso della sintesi vocale Microsoft.
Nome della voce neurale Microsoft (es.
en-US-MichelleNeural). Alias legacy: voice.Codice lingua (es.
en-US).Formato di output Microsoft. Predefinito
audio-24khz-48kbitrate-mono-mp3. Non tutti i formati sono supportati dal trasporto incluso basato su Edge.Stringhe percentuali (es.
+10%, -5%).Scrivi sottotitoli JSON accanto al file audio.
URL proxy per le richieste di sintesi vocale Microsoft.
Override del timeout della richiesta (ms).
Alias legacy. Esegui
openclaw doctor --fix per riscrivere la configurazione persistita in providers.microsoft.MiniMax
MiniMax
Ricorre a
MINIMAX_API_KEY. Autenticazione Token Plan tramite MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY o MINIMAX_CODING_API_KEY.Predefinito
https://api.minimax.io. Env: MINIMAX_API_HOST.Predefinito
speech-2.8-hd. Env: MINIMAX_TTS_MODEL.Predefinito
English_expressive_narrator. Env: MINIMAX_TTS_VOICE_ID. Alias legacy: voiceId.0.5..2.0. Predefinito 1.0.(0, 10]. Predefinito 1.0.Intero
-12..12. Predefinito 0. I valori frazionari vengono troncati prima della richiesta.OpenAI
OpenAI
Ricorre a
OPENAI_API_KEY.ID modello OpenAI TTS (es.
gpt-4o-mini-tts).Nome della voce (es.
alloy, cedar). Alias legacy: voice.Campo OpenAI
instructions esplicito. Quando impostato, i campi del prompt della persona non vengono mappati automaticamente.Campi JSON aggiuntivi uniti ai corpi delle richieste
/audio/speech dopo i campi OpenAI TTS generati. Usa questo per endpoint compatibili con OpenAI come Kokoro che richiedono chiavi specifiche del provider come lang; le chiavi di prototipo non sicure vengono ignorate.Esegui l’override dell’endpoint OpenAI TTS. Ordine di risoluzione: configurazione →
OPENAI_TTS_BASE_URL → https://api.openai.com/v1. I valori non predefiniti sono trattati come endpoint TTS compatibili con OpenAI, quindi sono accettati nomi di modelli e voci personalizzati.OpenRouter
OpenRouter
Env:
OPENROUTER_API_KEY. Può riutilizzare models.providers.openrouter.apiKey.Predefinito
https://openrouter.ai/api/v1. Il legacy https://openrouter.ai/v1 viene normalizzato.Predefinito
hexgrad/kokoro-82m. Alias: modelId.Predefinito
af_alloy. Alias legacy: voice, voiceId.Predefinito
mp3.Override della velocità nativo del provider.
Volcengine (BytePlus Seed Speech)
Volcengine (BytePlus Seed Speech)
Env:
VOLCENGINE_TTS_API_KEY o BYTEPLUS_SEED_SPEECH_API_KEY.Predefinito
seed-tts-1.0. Env: VOLCENGINE_TTS_RESOURCE_ID. Usa seed-tts-2.0 quando il tuo progetto ha diritto a TTS 2.0.Header della chiave app. Predefinito
aGjiRDfUWi. Env: VOLCENGINE_TTS_APP_KEY.Esegui l’override dell’endpoint HTTP Seed Speech TTS. Env:
VOLCENGINE_TTS_BASE_URL.Tipo di voce. Predefinito
en_female_anna_mars_bigtts. Env: VOLCENGINE_TTS_VOICE. Alias legacy: voice.Rapporto di velocità nativo del provider.
Tag di emozione nativo del provider.
Campi legacy della console Volcengine Speech. Env:
VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (predefinito volcano_tts).xAI
xAI
Env:
XAI_API_KEY.Predefinito
https://api.x.ai/v1. Env: XAI_BASE_URL.Predefinito
eve. Voci disponibili: ara, eve, leo, rex, sal, una. Alias legacy: voiceId.Codice lingua BCP-47 o
auto. Predefinito en.Predefinito
mp3.Override della velocità nativo del provider.
Xiaomi MiMo
Xiaomi MiMo
Env:
XIAOMI_API_KEY.Predefinito
https://api.xiaomimimo.com/v1. Env: XIAOMI_BASE_URL.Predefinito
mimo-v2.5-tts. Env: XIAOMI_TTS_MODEL. Supporta anche mimo-v2-tts e mimo-v2.5-tts-voicedesign.Predefinito
mimo_default per i modelli con voce preimpostata. Env: XIAOMI_TTS_VOICE. Alias legacy: voice. Non inviato per mimo-v2.5-tts-voicedesign.Predefinito
mp3. Env: XIAOMI_TTS_FORMAT.Istruzione di stile opzionale in linguaggio naturale inviata come messaggio utente; non viene pronunciata. Per
mimo-v2.5-tts-voicedesign, questo è il prompt di progettazione vocale; OpenClaw fornisce un valore predefinito quando viene omesso.Strumento agente
Lo strumentotts converte il testo in sintesi vocale e restituisce un allegato audio per
la consegna della risposta. Su Feishu, Matrix, Telegram e WhatsApp, l’audio viene
consegnato come messaggio vocale anziché come allegato file. Feishu e
WhatsApp possono transcodificare l’output TTS non Opus in questo percorso quando ffmpeg è
disponibile.
WhatsApp invia l’audio tramite Baileys come nota vocale PTT (audio con
ptt: true) e invia il testo visibile separatamente dall’audio PTT perché
i client non renderizzano in modo coerente le didascalie sulle note vocali.
Lo strumento accetta i campi opzionali channel e timeoutMs; timeoutMs è un
timeout di richiesta del provider per chiamata in millisecondi. I valori per chiamata eseguono l’override di
messages.tts.timeoutMs; i timeout TTS configurati eseguono l’override di qualsiasi valore predefinito
del provider definito dal Plugin.
RPC Gateway
| Metodo | Scopo |
|---|---|
tts.status | Leggi lo stato TTS corrente e l’ultimo tentativo. |
tts.enable | Imposta la preferenza automatica locale su always. |
tts.disable | Imposta la preferenza automatica locale su off. |
tts.convert | Testo una tantum → audio. |
tts.setProvider | Imposta la preferenza locale del provider. |
tts.setPersona | Imposta la preferenza locale della persona. |
tts.providers | Elenca i provider configurati e lo stato. |
Collegamenti ai servizi
- Guida OpenAI text-to-speech
- Riferimento API OpenAI Audio
- Azure Speech REST text-to-speech
- Provider Azure Speech
- ElevenLabs Text to Speech
- Autenticazione ElevenLabs
- Gradium
- API Inworld TTS
- API MiniMax T2A v2
- API HTTP Volcengine TTS
- Sintesi vocale Xiaomi MiMo
- node-edge-tts
- Formati di output Microsoft Speech
- Sintesi vocale xAI