stt-tts w Talk odpowiedzialna za wyjście mowy. Natywne dla dostawcy
sesje Talk typu realtime syntetyzują mowę wewnątrz dostawcy czasu rzeczywistego zamiast
wywoływać tę ścieżkę TTS, natomiast sesje transcription nie syntetyzują
głosowej odpowiedzi asystenta.
Szybki start
1
Wybierz dostawcę
OpenAI i ElevenLabs to najbardziej niezawodne opcje hostowane. Microsoft i
Local CLI działają bez klucza API. Pełną listę znajdziesz w macierzy dostawców.
2
Ustaw klucz API
Wyeksportuj zmienną środowiskową dla swojego dostawcy (na przykład
OPENAI_API_KEY,
ELEVENLABS_API_KEY). Microsoft i Local CLI nie wymagają klucza.3
Włącz w konfiguracji
Ustaw
messages.tts.auto: "always" i messages.tts.provider:4
Wypróbuj w czacie
/tts status pokazuje bieżący stan. /tts audio Hello from OpenClaw
wysyła jednorazową odpowiedź audio.Auto-TTS jest domyślnie wyłączone. Gdy
messages.tts.provider nie jest ustawione,
OpenClaw wybiera pierwszego skonfigurowanego dostawcę zgodnie z kolejnością automatycznego wyboru w rejestrze.
Wbudowane narzędzie agenta tts działa tylko przy wyraźnej intencji: zwykły czat pozostaje
tekstowy, chyba że użytkownik poprosi o audio, użyje /tts albo włączy mowę Auto-TTS/dyrektywy.Obsługiwani dostawcy
Jeśli skonfigurowano wielu dostawców, wybrany dostawca jest używany jako pierwszy, a
pozostali są opcjami zapasowymi. Automatyczne podsumowanie używa
summaryModel (lub
agents.defaults.model.primary), więc ten dostawca także musi być uwierzytelniony,
jeśli podsumowania pozostają włączone.
Konfiguracja
Konfiguracja TTS znajduje się podmessages.tts w ~/.openclaw/openclaw.json. Wybierz
preset i dostosuj blok dostawcy:
- Azure Speech
- ElevenLabs
- Google Gemini
- Gradium
- Inworld
- Local CLI
- Microsoft (bez klucza)
- MiniMax
- OpenAI + ElevenLabs
- OpenRouter
- Volcengine
- xAI
- Xiaomi MiMo
mimo-v2.5-tts-voicedesign pomiń speakerVoice i ustaw style na
prompt projektowania głosu. OpenClaw wysyła ten prompt jako wiadomość user TTS
i nie wysyła audio.voice dla modelu voicedesign.
Nadpisania głosu dla poszczególnych agentów
Użyjagents.list[].tts, gdy jeden agent powinien mówić z innym dostawcą,
głosem, modelem, personą lub trybem auto-TTS. Blok agenta jest głęboko scalany z
messages.tts, więc dane uwierzytelniające dostawcy mogą pozostać w globalnej konfiguracji dostawcy:
agents.list[].tts.persona obok konfiguracji
dostawcy — zastępuje ona globalne messages.tts.persona tylko dla tego agenta.
Kolejność pierwszeństwa dla automatycznych odpowiedzi, /tts audio, /tts status i narzędzia agenta
tts:
messages.tts- aktywne
agents.list[].tts - nadpisanie kanału, gdy kanał obsługuje
channels.<channel>.tts - nadpisanie konta, gdy kanał przekazuje
channels.<channel>.accounts.<id>.tts - lokalne preferencje
/ttsdla tego hosta - dyrektywy inline
[[tts:...]], gdy nadpisania modelu są włączone
messages.tts i
głęboko scalają się z wcześniejszymi warstwami, więc współdzielone dane uwierzytelniające dostawcy mogą pozostać w
messages.tts, podczas gdy kanał lub konto bota zmienia tylko głos lektora, model, personę
albo tryb automatyczny:
Persony
Persona to stabilna tożsamość mówiona, którą można deterministycznie stosować u różnych dostawców. Może preferować jednego dostawcę, definiować neutralną wobec dostawców intencję promptu oraz przenosić powiązania specyficzne dla dostawcy dla głosów, modeli, szablonów promptów, ziaren i ustawień głosu.Minimalna persona
Pełna persona (prompt neutralny wobec dostawcy)
Rozstrzyganie persony
Aktywna persona jest wybierana deterministycznie:- lokalna preferencja
/tts persona <id>, jeśli ustawiona. messages.tts.persona, jeśli ustawione.- Brak persony.
- Bezpośrednie nadpisania (CLI, Gateway, Talk, dozwolone dyrektywy TTS).
- Lokalna preferencja
/tts provider <id>. provideraktywnej persony.messages.tts.provider.- Automatyczny wybór z rejestru.
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- Zaufane nadpisania żądania
- Dozwolone nadpisania z dyrektyw TTS wyemitowanych przez model
Jak dostawcy używają promptów persony
Pola promptu persony (profile, scene, sampleContext, style, accent,
pacing, constraints) są neutralne wobec dostawcy. Każdy dostawca decyduje, jak
ich używać:
Google Gemini
Google Gemini
Opakowuje pola promptu persony w strukturę promptu Gemini TTS tylko wtedy, gdy
efektywna konfiguracja dostawcy Google ustawia
promptTemplate: "audio-profile-v1"
albo personaPrompt. Starsze pola audioProfile i speakerName nadal są
dołączane na początku jako tekst promptu specyficzny dla Google. Tagi audio inline, takie jak
[whispers] lub [laughs] wewnątrz bloku [[tts:text]], są zachowywane
w transkrypcie Gemini; OpenClaw nie generuje tych tagów.OpenAI
OpenAI
Mapuje pola promptu persony na pole żądania
instructions tylko wtedy, gdy
nie skonfigurowano jawnych OpenAI instructions. Jawne instructions
zawsze ma pierwszeństwo.Inni dostawcy
Inni dostawcy
Używają tylko powiązań persony specyficznych dla dostawcy pod
personas.<id>.providers.<provider>. Pola promptu persony są ignorowane,
chyba że dostawca implementuje własne mapowanie promptu persony.Zasada fallbacku
fallbackPolicy kontroluje zachowanie, gdy persona nie ma powiązania dla
próbowanego dostawcy:
Całe żądanie TTS kończy się niepowodzeniem tylko wtedy, gdy każdy próbowany dostawca zostanie pominięty
albo zakończy się niepowodzeniem.
Wybór dostawcy sesji Talk jest ograniczony do sesji. Klient Talk powinien wybierać
identyfikatory dostawców, identyfikatory modeli, identyfikatory głosów i ustawienia regionalne z
talk.catalog oraz przekazywać
je przez sesję Talk lub żądanie handoff. Otwarcie sesji głosowej nie powinno
mutować messages.tts ani globalnych domyślnych ustawień dostawców Talk.
Dyrektywy sterowane modelem
Domyślnie asystent może emitować dyrektywy[[tts:...]], aby nadpisać
głos, model lub prędkość dla pojedynczej odpowiedzi, a także opcjonalny
blok [[tts:text]]...[[/tts:text]] dla wskazówek ekspresyjnych, które powinny pojawić się
tylko w audio:
messages.tts.auto ma wartość "tagged", dyrektywy są wymagane, aby wyzwolić
audio. Dostarczanie bloków strumieniowych usuwa dyrektywy z widocznego tekstu, zanim
kanał je zobaczy, nawet gdy są podzielone między sąsiednie bloki.
provider=... jest ignorowane, chyba że modelOverrides.allowProvider: true. Gdy
odpowiedź deklaruje provider=..., pozostałe klucze w tej dyrektywie są parsowane
tylko przez tego dostawcę; nieobsługiwane klucze są usuwane i raportowane jako ostrzeżenia
dyrektyw TTS.
Dostępne klucze dyrektyw:
provider(zarejestrowany identyfikator dostawcy; wymagaallowProvider: true)speakerVoice/speakerVoiceId(starsze aliasy:voice,voiceName,voice_name,google_voice,voiceId)model/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(głośność MiniMax, 0–10)pitch(całkowita wysokość tonu MiniMax, −12 do 12; wartości ułamkowe są obcinane)emotion(tag emocji Volcengine)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Polecenia slash
Pojedyncze polecenie/tts. W Discord OpenClaw rejestruje także /voice, ponieważ
/tts jest wbudowanym poleceniem Discord — tekstowe /tts ... nadal działa.
Polecenia wymagają autoryzowanego nadawcy (obowiązują reguły listy dozwolonych/właściciela) oraz włączenia
commands.text albo natywnej rejestracji poleceń./tts onzapisuje lokalną preferencję TTS jakoalways;/tts offzapisuje ją jakooff./tts chat on|off|defaultzapisuje nadpisanie auto-TTS o zakresie sesji dla bieżącego czatu./tts persona <id>zapisuje lokalną preferencję persony;/tts persona offją czyści./tts latestodczytuje najnowszą odpowiedź asystenta z transkryptu bieżącej sesji i wysyła ją jednorazowo jako audio. Przechowuje tylko skrót tej odpowiedzi we wpisie sesji, aby tłumić zduplikowane wysyłki głosowe./tts audiogeneruje jednorazową odpowiedź audio (nie włącza TTS).limitisummarysą przechowywane w lokalnych preferencjach, nie w głównej konfiguracji./tts statuszawiera diagnostykę fallbacku dla najnowszej próby —Fallback: <primary> -> <used>,Attempts: ...oraz szczegóły każdej próby (provider:outcome(reasonCode) latency)./statuspokazuje aktywny tryb TTS oraz skonfigurowanego dostawcę, model, głos i oczyszczone metadane niestandardowego punktu końcowego, gdy TTS jest włączony.
Preferencje użytkownika
Polecenia slash zapisują lokalne nadpisania doprefsPath. Wartość domyślna to
~/.openclaw/settings/tts.json; nadpisz ją zmienną środowiskową OPENCLAW_TTS_PREFS
albo messages.tts.prefsPath.
Zastępują one efektywną konfigurację z
messages.tts oraz aktywny
blok agents.list[].tts dla tego hosta.
Formaty wyjściowe (stałe)
Dostarczanie głosu TTS jest sterowane możliwościami kanału. Pluginy kanałów ogłaszają, czy TTS w stylu głosu powinien prosić dostawców o natywny celvoice-note, czy
zachować zwykłą syntezę audio-file i tylko oznaczać zgodne wyjście do dostarczania
głosu.
- Kanały obsługujące notatki głosowe: odpowiedzi jako notatki głosowe preferują Opus (
opus_48000_64z ElevenLabs,opusz OpenAI).- 48 kHz / 64 kbps to dobry kompromis dla wiadomości głosowej.
- Feishu / WhatsApp: gdy odpowiedź jako notatka głosowa zostanie utworzona jako MP3/WebM/WAV/M4A
lub inny prawdopodobny plik audio, Plugin kanału transkoduje ją do 48 kHz
Ogg/Opus za pomocą
ffmpegprzed wysłaniem natywnej wiadomości głosowej. WhatsApp wysyła wynik przez ładunek Baileysaudiozptt: trueiaudio/ogg; codecs=opus. Jeśli konwersja się nie powiedzie, Feishu otrzymuje oryginalny plik jako załącznik; wysyłanie WhatsApp kończy się niepowodzeniem zamiast opublikowania niezgodnego ładunku PTT. - Inne kanały: MP3 (
mp3_44100_128z ElevenLabs,mp3z OpenAI).- 44,1 kHz / 128 kbps to domyślny balans dla klarowności mowy.
- MiniMax: MP3 (model
speech-2.8-hd, częstotliwość próbkowania 32 kHz) dla zwykłych załączników audio. W przypadku celów notatek głosowych ogłaszanych przez kanał OpenClaw transkoduje MP3 MiniMax do 48 kHz Opus za pomocąffmpegprzed dostarczeniem, gdy kanał ogłasza obsługę transkodowania. - Xiaomi MiMo: domyślnie MP3 albo WAV po skonfigurowaniu. W przypadku celów notatek głosowych ogłaszanych przez kanał OpenClaw transkoduje wyjście Xiaomi do 48 kHz Opus za pomocą
ffmpegprzed dostarczeniem, gdy kanał ogłasza obsługę transkodowania. - Lokalny CLI: używa skonfigurowanego
outputFormat. Cele notatek głosowych są konwertowane do Ogg/Opus, a wyjście telefoniczne jest konwertowane do surowego, monofonicznego PCM 16 kHz za pomocąffmpeg. - Google Gemini: TTS Gemini API zwraca surowy PCM 24 kHz. OpenClaw opakowuje go jako WAV dla załączników audio, transkoduje go do 48 kHz Opus dla celów notatek głosowych i zwraca PCM bezpośrednio dla Talk/telefonii.
- Gradium: WAV dla załączników audio, Opus dla celów notatek głosowych i
ulaw_8000przy 8 kHz dla telefonii. - Inworld: MP3 dla zwykłych załączników audio, natywne
OGG_OPUSdla celów notatek głosowych i surowePCMprzy 22050 Hz dla Talk/telefonii. - xAI: domyślnie MP3;
responseFormatmoże byćmp3,wav,pcm,mulawalboalaw. OpenClaw używa wsadowego punktu końcowego REST TTS xAI i zwraca kompletny załącznik audio; strumieniowy WebSocket TTS xAI nie jest używany przez tę ścieżkę dostawcy. Natywny format notatek głosowych Opus nie jest obsługiwany przez tę ścieżkę. - Microsoft: używa
microsoft.outputFormat(domyślnieaudio-24khz-48kbitrate-mono-mp3).- Dołączony transport akceptuje
outputFormat, ale nie wszystkie formaty są dostępne z usługi. - Wartości formatu wyjściowego są zgodne z formatami wyjściowymi Microsoft Speech (w tym Ogg/WebM Opus).
- Telegram
sendVoiceakceptuje OGG/MP3/M4A; użyj OpenAI/ElevenLabs, jeśli potrzebujesz gwarantowanych wiadomości głosowych Opus. - Jeśli skonfigurowany format wyjściowy Microsoft zawiedzie, OpenClaw ponawia próbę z MP3.
- Dołączony transport akceptuje
Zachowanie Auto-TTS
Gdymessages.tts.auto jest włączone, OpenClaw:
- Pomija TTS, jeśli odpowiedź zawiera już media strukturalne.
- Pomija bardzo krótkie odpowiedzi (poniżej 10 znaków).
- Streszcza długie odpowiedzi, gdy streszczenia są włączone, używając
summaryModel(alboagents.defaults.model.primary). - Dołącza wygenerowane audio do odpowiedzi.
- W
mode: "final"nadal wysyła TTS tylko audio dla strumieniowanych odpowiedzi końcowych po zakończeniu strumienia tekstu; wygenerowane media przechodzą przez tę samą normalizację mediów kanału co zwykłe załączniki odpowiedzi.
maxLength, a streszczenie jest wyłączone (albo brakuje klucza API dla
modelu streszczania), audio jest pomijane i wysyłana jest zwykła odpowiedź tekstowa.
Formaty wyjściowe według kanału
Uwagi dotyczące poszczególnych dostawców:
- Transkodowanie Feishu / WhatsApp: Gdy odpowiedź jako notatka głosowa trafia jako MP3/WebM/WAV/M4A, Plugin kanału transkoduje do 48 kHz Ogg/Opus za pomocą
ffmpeg. WhatsApp wysyła przez Baileys zptt: trueiaudio/ogg; codecs=opus. Jeśli konwersja się nie powiedzie: Feishu wraca do dołączenia oryginalnego pliku; wysyłanie WhatsApp kończy się niepowodzeniem zamiast opublikowania niezgodnego ładunku PTT. - MiniMax / Xiaomi MiMo: Domyślnie MP3 (32 kHz dla MiniMax
speech-2.8-hd); transkodowane do 48 kHz Opus dla celów notatek głosowych przezffmpeg. - Lokalny CLI: Używa skonfigurowanego
outputFormat. Cele notatek głosowych są konwertowane do Ogg/Opus, a wyjście telefoniczne do surowego, monofonicznego PCM 16 kHz. - Google Gemini: Zwraca surowy PCM 24 kHz. OpenClaw opakowuje jako WAV dla załączników, transkoduje do 48 kHz Opus dla celów notatek głosowych, zwraca PCM bezpośrednio dla Talk/telefonii.
- Inworld: załączniki MP3, natywne notatki głosowe
OGG_OPUS, surowePCM22050 Hz dla Talk/telefonii. - xAI: domyślnie MP3;
responseFormatmoże mieć wartośćmp3|wav|pcm|mulaw|alaw. Używa wsadowego punktu końcowego REST xAI — strumieniowy WebSocket TTS nie jest używany. Natywny format notatek głosowych Opus nie jest obsługiwany. - Microsoft: Używa
microsoft.outputFormat(domyślnieaudio-24khz-48kbitrate-mono-mp3). TelegramsendVoiceakceptuje OGG/MP3/M4A; użyj OpenAI/ElevenLabs, jeśli potrzebujesz gwarantowanych wiadomości głosowych Opus. Jeśli skonfigurowany format Microsoft zawiedzie, OpenClaw ponawia próbę z MP3.
Informacje o polach
messages.tts.* najwyższego poziomu
messages.tts.* najwyższego poziomu
"off" | "always" | "inbound" | "tagged"
Tryb Auto-TTS.
inbound wysyła audio tylko po przychodzącej wiadomości głosowej; tagged wysyła audio tylko wtedy, gdy odpowiedź zawiera dyrektywy [[tts:...]] albo blok [[tts:text]].boolean
przestarzałe
Przestarzały przełącznik.
openclaw doctor --fix migruje go do auto."final" | "all"
domyślnie:"final"
"all" obejmuje odpowiedzi narzędzi/bloków oprócz odpowiedzi końcowych.string
Identyfikator dostawcy mowy. Gdy nie jest ustawiony, OpenClaw używa pierwszego skonfigurowanego dostawcy w kolejności automatycznego wyboru rejestru. Przestarzałe
provider: "edge" jest przepisywane na "microsoft" przez openclaw doctor --fix.string
Aktywny identyfikator persony z
personas. Normalizowany do małych liter.object
Stabilna tożsamość mówiona. Pola:
label, description, provider, fallbackPolicy, prompt, providers.<provider>. Zobacz Persony.string
Tani model do automatycznego streszczania; domyślnie
agents.defaults.model.primary. Akceptuje provider/model albo skonfigurowany alias modelu.object
Zezwól modelowi na emitowanie dyrektyw TTS.
enabled domyślnie ma wartość true; allowProvider domyślnie ma wartość false.object
Ustawienia należące do dostawcy, indeksowane identyfikatorem dostawcy mowy. Przestarzałe bezpośrednie bloki (
messages.tts.openai, .elevenlabs, .microsoft, .edge) są przepisywane przez openclaw doctor --fix; zatwierdzaj tylko messages.tts.providers.<id>.number
Twardy limit znaków wejściowych TTS.
/tts audio kończy się niepowodzeniem po przekroczeniu.number
Limit czasu żądania w milisekundach.
string
Zastąp lokalną ścieżkę JSON preferencji (dostawca/limit/streszczenie). Domyślnie
~/.openclaw/settings/tts.json.Azure Speech
Azure Speech
string
Env:
AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY albo SPEECH_KEY.string
Region Azure Speech (np.
eastus). Env: AZURE_SPEECH_REGION albo SPEECH_REGION.string
Opcjonalne zastąpienie punktu końcowego Azure Speech (alias
baseUrl).string
ShortName głosu Azure. Domyślnie
en-US-JennyNeural. Przestarzały alias: voice.string
Kod języka SSML. Domyślnie
en-US.string
Azure
X-Microsoft-OutputFormat dla standardowego audio. Domyślnie audio-24khz-48kbitrate-mono-mp3.string
Azure
X-Microsoft-OutputFormat dla wyjścia notatek głosowych. Domyślnie ogg-24khz-16bit-mono-opus.ElevenLabs
ElevenLabs
string
Wraca do
ELEVENLABS_API_KEY albo XI_API_KEY.string
Identyfikator modelu (np.
eleven_multilingual_v2, eleven_v3).string
Identyfikator głosu ElevenLabs. Przestarzały alias:
voiceId.object
stability, similarityBoost, style (każde 0..1), useSpeakerBoost (true|false), speed (0.5..2.0, 1.0 = normalne)."auto" | "on" | "off"
Tryb normalizacji tekstu.
string
2-literowy ISO 639-1 (np.
en, de).number
Liczba całkowita
0..4294967295 dla determinizmu w najlepszym możliwym zakresie.string
Zastąp bazowy URL API ElevenLabs.
Google Gemini
Google Gemini
string
Wraca do
GEMINI_API_KEY / GOOGLE_API_KEY. Jeśli pominięto, TTS może ponownie użyć models.providers.google.apiKey przed powrotem do zmiennych środowiskowych.string
Model TTS Gemini. Domyślnie
gemini-3.1-flash-tts-preview.string
Nazwa wbudowanego głosu Gemini. Domyślnie
Kore. Przestarzałe aliasy: voiceName, voice.string
Prompt stylu w języku naturalnym dodawany przed tekstem mówionym.
string
Opcjonalna etykieta mówcy dodawana przed tekstem mówionym, gdy prompt używa nazwanego mówcy.
"audio-profile-v1"
Ustaw na
audio-profile-v1, aby opakować aktywne pola promptu persony w deterministyczną strukturę promptu TTS Gemini.string
Dodatkowy tekst promptu persony specyficzny dla Google, dołączany do uwag reżysera w szablonie.
string
Akceptowane jest tylko
https://generativelanguage.googleapis.com.Gradium
Gradium
Inworld
Inworld
Lokalny CLI (tts-local-cli)
Lokalny CLI (tts-local-cli)
string
Lokalny plik wykonywalny lub ciąg polecenia dla CLI TTS.
string[]
Argumenty polecenia. Obsługuje symbole zastępcze
{{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}."mp3" | "opus" | "wav"
Oczekiwany format wyjściowy CLI. Domyślnie
mp3 dla załączników audio.number
Limit czasu polecenia w milisekundach. Domyślnie
120000.string
Opcjonalny katalog roboczy polecenia.
Record<string, string>
Opcjonalne nadpisania środowiska dla polecenia.
Microsoft (bez klucza API)
Microsoft (bez klucza API)
boolean
domyślnie:"true"
Zezwól na użycie mowy Microsoft.
string
Nazwa głosu neuronowego Microsoft (np.
en-US-MichelleNeural). Starszy alias: voice.string
Kod języka (np.
en-US).string
Format wyjściowy Microsoft. Domyślnie
audio-24khz-48kbitrate-mono-mp3. Nie wszystkie formaty są obsługiwane przez dołączony transport oparty na Edge.string
Ciągi procentowe (np.
+10%, -5%).boolean
Zapisz napisy JSON obok pliku audio.
string
URL proxy dla żądań mowy Microsoft.
number
Nadpisanie limitu czasu żądania (ms).
object
przestarzałe
Starszy alias. Uruchom
openclaw doctor --fix, aby przepisać utrwaloną konfigurację na providers.microsoft.MiniMax
MiniMax
string
W razie braku używa
MINIMAX_API_KEY. Uwierzytelnianie Token Plan przez MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY lub MINIMAX_CODING_API_KEY.string
Domyślnie
https://api.minimax.io. Środowisko: MINIMAX_API_HOST.string
Domyślnie
speech-2.8-hd. Środowisko: MINIMAX_TTS_MODEL.string
Domyślnie
English_expressive_narrator. Środowisko: MINIMAX_TTS_VOICE_ID. Starszy alias: voiceId.number
0.5..2.0. Domyślnie 1.0.number
(0, 10]. Domyślnie 1.0.number
Liczba całkowita
-12..12. Domyślnie 0. Wartości ułamkowe są obcinane przed żądaniem.OpenAI
OpenAI
string
W razie braku używa
OPENAI_API_KEY.string
Identyfikator modelu TTS OpenAI (np.
gpt-4o-mini-tts).string
Nazwa głosu (np.
alloy, cedar). Starszy alias: voice.string
Jawne pole OpenAI
instructions. Po ustawieniu pola promptu persony nie są automatycznie mapowane.Record<string, unknown>
Dodatkowe pola JSON scalane z treściami żądań
/audio/speech po wygenerowanych polach TTS OpenAI. Użyj tego dla punktów końcowych zgodnych z OpenAI, takich jak Kokoro, które wymagają kluczy specyficznych dla dostawcy, takich jak lang; niebezpieczne klucze prototypu są ignorowane.string
Nadpisz punkt końcowy TTS OpenAI. Kolejność rozstrzygania: konfiguracja →
OPENAI_TTS_BASE_URL → https://api.openai.com/v1. Wartości inne niż domyślne są traktowane jako punkty końcowe TTS zgodne z OpenAI, więc niestandardowe nazwy modeli i głosów są akceptowane.OpenRouter
OpenRouter
string
Środowisko:
OPENROUTER_API_KEY. Może ponownie użyć models.providers.openrouter.apiKey.string
Domyślnie
https://openrouter.ai/api/v1. Starszy https://openrouter.ai/v1 jest normalizowany.string
Domyślnie
hexgrad/kokoro-82m. Alias: modelId.string
Domyślnie
af_alloy. Starsze aliasy: voice, voiceId."mp3" | "pcm"
Domyślnie
mp3.number
Nadpisanie szybkości natywne dla dostawcy.
Volcengine (BytePlus Seed Speech)
Volcengine (BytePlus Seed Speech)
string
Środowisko:
VOLCENGINE_TTS_API_KEY lub BYTEPLUS_SEED_SPEECH_API_KEY.string
Domyślnie
seed-tts-1.0. Środowisko: VOLCENGINE_TTS_RESOURCE_ID. Użyj seed-tts-2.0, gdy Twój projekt ma uprawnienie TTS 2.0.string
Nagłówek klucza aplikacji. Domyślnie
aGjiRDfUWi. Środowisko: VOLCENGINE_TTS_APP_KEY.string
Nadpisz punkt końcowy HTTP Seed Speech TTS. Środowisko:
VOLCENGINE_TTS_BASE_URL.string
Typ głosu. Domyślnie
en_female_anna_mars_bigtts. Środowisko: VOLCENGINE_TTS_VOICE. Starszy alias: voice.number
Współczynnik szybkości natywny dla dostawcy.
string
Znacznik emocji natywny dla dostawcy.
string
przestarzałe
Starsze pola Volcengine Speech Console. Środowisko:
VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (domyślnie volcano_tts).xAI
xAI
string
Środowisko:
XAI_API_KEY.string
Domyślnie
https://api.x.ai/v1. Środowisko: XAI_BASE_URL.string
Domyślnie
eve. Aktywne głosy: ara, eve, leo, rex, sal, una. Starszy alias: voiceId.string
Kod języka BCP-47 lub
auto. Domyślnie en."mp3" | "wav" | "pcm" | "mulaw" | "alaw"
Domyślnie
mp3.number
Nadpisanie szybkości natywne dla dostawcy.
Xiaomi MiMo
Xiaomi MiMo
string
Środowisko:
XIAOMI_API_KEY.string
Domyślnie
https://api.xiaomimimo.com/v1. Środowisko: XIAOMI_BASE_URL.string
Domyślnie
mimo-v2.5-tts. Środowisko: XIAOMI_TTS_MODEL. Obsługuje także mimo-v2-tts i mimo-v2.5-tts-voicedesign.string
Domyślnie
mimo_default dla modeli z gotowym głosem. Środowisko: XIAOMI_TTS_VOICE. Starszy alias: voice. Nie jest wysyłane dla mimo-v2.5-tts-voicedesign."mp3" | "wav"
Domyślnie
mp3. Środowisko: XIAOMI_TTS_FORMAT.string
Opcjonalna instrukcja stylu w języku naturalnym wysyłana jako wiadomość użytkownika; nie jest wypowiadana. Dla
mimo-v2.5-tts-voicedesign jest to prompt projektowania głosu; OpenClaw dostarcza wartość domyślną, gdy zostanie pominięta.Narzędzie agenta
Narzędzietts konwertuje tekst na mowę i zwraca załącznik audio do
dostarczenia odpowiedzi. W Feishu, Matrix, Telegram i WhatsApp audio jest
dostarczane jako wiadomość głosowa, a nie jako załącznik pliku. Feishu i
WhatsApp mogą transkodować wyjście TTS inne niż Opus na tej ścieżce, gdy ffmpeg
jest dostępny.
WhatsApp wysyła audio przez Baileys jako notatkę głosową PTT (audio z
ptt: true) i wysyła widoczny tekst oddzielnie od audio PTT, ponieważ
klienci nie renderują konsekwentnie podpisów przy notatkach głosowych.
Narzędzie akceptuje opcjonalne pola channel i timeoutMs; timeoutMs to
limit czasu żądania dostawcy dla pojedynczego wywołania w milisekundach. Wartości
dla pojedynczego wywołania nadpisują messages.tts.timeoutMs; skonfigurowane
limity czasu TTS nadpisują dowolną domyślną wartość dostawcy utworzoną przez Plugin.
RPC Gateway
Łącza usług
- Przewodnik OpenAI po zamianie tekstu na mowę
- Dokumentacja API OpenAI Audio
- REST zamiany tekstu na mowę Azure Speech
- Dostawca Azure Speech
- Zamiana tekstu na mowę ElevenLabs
- Uwierzytelnianie ElevenLabs
- Gradium
- API Inworld TTS
- API MiniMax T2A v2
- API HTTP Volcengine TTS
- Synteza mowy Xiaomi MiMo
- node-edge-tts
- Formaty wyjściowe Microsoft Speech
- Zamiana tekstu na mowę xAI