Tools
Chuyển văn bản thành giọng nói
OpenClaw có thể chuyển đổi các phản hồi gửi đi thành âm thanh trên 14 nhà cung cấp giọng nói và gửi tin nhắn thoại gốc trên Feishu, Matrix, Telegram và WhatsApp, tệp đính kèm âm thanh ở mọi nơi khác, cũng như luồng PCM/Ulaw cho điện thoại và Talk.
TTS là nửa đầu ra giọng nói của chế độ stt-tts của Talk. Các phiên Talk
realtime gốc theo nhà cung cấp tổng hợp giọng nói bên trong nhà cung cấp realtime
thay vì gọi đường dẫn TTS này, trong khi các phiên transcription không tổng hợp
phản hồi giọng nói của trợ lý.
Bắt đầu nhanh
Pick a provider
OpenAI và ElevenLabs là các tùy chọn lưu trữ đáng tin cậy nhất. Microsoft và Local CLI hoạt động mà không cần khóa API. Xem ma trận nhà cung cấp để biết danh sách đầy đủ.
Set the API key
Xuất biến môi trường cho nhà cung cấp của bạn (ví dụ OPENAI_API_KEY,
ELEVENLABS_API_KEY). Microsoft và Local CLI không cần khóa.
Enable in config
Đặt messages.tts.auto: "always" và messages.tts.provider:
{
messages: {
tts: {
auto: "always",
provider: "elevenlabs",
},
},
}
Try it in chat
/tts status hiển thị trạng thái hiện tại. /tts audio Hello from OpenClaw
gửi một phản hồi âm thanh một lần.
Nhà cung cấp được hỗ trợ
| Nhà cung cấp | Xác thực | Ghi chú |
|---|---|---|
| Azure Speech | AZURE_SPEECH_KEY + AZURE_SPEECH_REGION (cũng có AZURE_SPEECH_API_KEY, SPEECH_KEY, SPEECH_REGION) |
Đầu ra ghi chú thoại Ogg/Opus gốc và điện thoại. |
| DeepInfra | DEEPINFRA_API_KEY |
TTS tương thích OpenAI. Mặc định là hexgrad/Kokoro-82M. |
| ElevenLabs | ELEVENLABS_API_KEY hoặc XI_API_KEY |
Nhân bản giọng nói, đa ngôn ngữ, xác định được qua seed. |
| Google Gemini | GEMINI_API_KEY hoặc GOOGLE_API_KEY |
TTS Gemini API; nhận biết persona qua promptTemplate: "audio-profile-v1". |
| Gradium | GRADIUM_API_KEY |
Đầu ra ghi chú thoại và điện thoại. |
| Inworld | INWORLD_API_KEY |
API TTS phát trực tuyến. Ghi chú thoại Opus gốc và điện thoại PCM. |
| Local CLI | không có | Chạy một lệnh TTS cục bộ đã cấu hình. |
| Microsoft | không có | TTS neural Edge công khai qua node-edge-tts. Nỗ lực tốt nhất, không SLA. |
| MiniMax | MINIMAX_API_KEY (hoặc Gói Token: MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY) |
API T2A v2. Mặc định là speech-2.8-hd. |
| OpenAI | OPENAI_API_KEY |
Cũng được dùng cho tự động tóm tắt; hỗ trợ persona instructions. |
| OpenRouter | OPENROUTER_API_KEY (có thể dùng lại models.providers.openrouter.apiKey) |
Mô hình mặc định hexgrad/kokoro-82m. |
| Volcengine | VOLCENGINE_TTS_API_KEY hoặc BYTEPLUS_SEED_SPEECH_API_KEY (AppID/token cũ: VOLCENGINE_TTS_APPID/_TOKEN) |
API HTTP BytePlus Seed Speech. |
| Vydra | VYDRA_API_KEY |
Nhà cung cấp hình ảnh, video và giọng nói dùng chung. |
| xAI | XAI_API_KEY |
TTS hàng loạt xAI. Ghi chú thoại Opus gốc không được hỗ trợ. |
| Xiaomi MiMo | XIAOMI_API_KEY |
MiMo TTS thông qua hoàn tất trò chuyện Xiaomi. |
Nếu cấu hình nhiều nhà cung cấp, nhà cung cấp đã chọn được dùng trước và các
nhà cung cấp còn lại là tùy chọn dự phòng. Tự động tóm tắt dùng summaryModel (hoặc
agents.defaults.model.primary), nên nhà cung cấp đó cũng phải được xác thực
nếu bạn giữ bật tính năng tóm tắt.
Cấu hình
Cấu hình TTS nằm dưới messages.tts trong ~/.openclaw/openclaw.json. Chọn một
preset và điều chỉnh khối nhà cung cấp:
Azure Speech
{
messages: {
tts: {
auto: "always",
provider: "azure-speech",
providers: {
"azure-speech": {
apiKey: "${AZURE_SPEECH_KEY}",
region: "eastus",
voice: "en-US-JennyNeural",
lang: "en-US",
outputFormat: "audio-24khz-48kbitrate-mono-mp3",
voiceNoteOutputFormat: "ogg-24khz-16bit-mono-opus",
},
},
},
},
}
ElevenLabs
{
messages: {
tts: {
auto: "always",
provider: "elevenlabs",
providers: {
elevenlabs: {
apiKey: "${ELEVENLABS_API_KEY}",
model: "eleven_multilingual_v2",
voiceId: "EXAVITQu4vr4xnSDxMaL",
},
},
},
},
}
Google Gemini
{
messages: {
tts: {
auto: "always",
provider: "google",
providers: {
google: {
apiKey: "${GEMINI_API_KEY}",
model: "gemini-3.1-flash-tts-preview",
voiceName: "Kore",
// Optional natural-language style prompts:
// audioProfile: "Speak in a calm, podcast-host tone.",
// speakerName: "Alex",
},
},
},
},
}
Gradium
{
messages: {
tts: {
auto: "always",
provider: "gradium",
providers: {
gradium: {
apiKey: "${GRADIUM_API_KEY}",
voiceId: "YTpq7expH9539ERJ",
},
},
},
},
}
Inworld
{
messages: {
tts: {
auto: "always",
provider: "inworld",
providers: {
inworld: {
apiKey: "${INWORLD_API_KEY}",
modelId: "inworld-tts-1.5-max",
voiceId: "Sarah",
temperature: 0.7,
},
},
},
},
}
Local CLI
{
messages: {
tts: {
auto: "always",
provider: "tts-local-cli",
providers: {
"tts-local-cli": {
command: "say",
args: ["-o", "{{OutputPath}}", "{{Text}}"],
outputFormat: "wav",
timeoutMs: 120000,
},
},
},
},
}
Microsoft (no key)
{
messages: {
tts: {
auto: "always",
provider: "microsoft",
providers: {
microsoft: {
enabled: true,
voice: "en-US-MichelleNeural",
lang: "en-US",
outputFormat: "audio-24khz-48kbitrate-mono-mp3",
rate: "+0%",
pitch: "+0%",
},
},
},
},
}
MiniMax
{
messages: {
tts: {
auto: "always",
provider: "minimax",
providers: {
minimax: {
apiKey: "${MINIMAX_API_KEY}",
model: "speech-2.8-hd",
voiceId: "English_expressive_narrator",
speed: 1.0,
vol: 1.0,
pitch: 0,
},
},
},
},
}
OpenAI + ElevenLabs
{
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",
voice: "alloy",
},
elevenlabs: {
apiKey: "${ELEVENLABS_API_KEY}",
model: "eleven_multilingual_v2",
voiceId: "EXAVITQu4vr4xnSDxMaL",
voiceSettings: { stability: 0.5, similarityBoost: 0.75, style: 0.0, useSpeakerBoost: true, speed: 1.0 },
applyTextNormalization: "auto",
languageCode: "en",
},
},
},
},
}
OpenRouter
{
messages: {
tts: {
auto: "always",
provider: "openrouter",
providers: {
openrouter: {
apiKey: "${OPENROUTER_API_KEY}",
model: "hexgrad/kokoro-82m",
voice: "af_alloy",
responseFormat: "mp3",
},
},
},
},
}
Volcengine
{
messages: {
tts: {
auto: "always",
provider: "volcengine",
providers: {
volcengine: {
apiKey: "${VOLCENGINE_TTS_API_KEY}",
resourceId: "seed-tts-1.0",
voice: "en_female_anna_mars_bigtts",
},
},
},
},
}
xAI
{
messages: {
tts: {
auto: "always",
provider: "xai",
providers: {
xai: {
apiKey: "${XAI_API_KEY}",
voiceId: "eve",
language: "en",
responseFormat: "mp3",
},
},
},
},
}
Xiaomi MiMo
{
messages: {
tts: {
auto: "always",
provider: "xiaomi",
providers: {
xiaomi: {
apiKey: "${XIAOMI_API_KEY}",
model: "mimo-v2.5-tts",
voice: "mimo_default",
format: "mp3",
},
},
},
},
}
Ghi đè giọng nói theo từng agent
Dùng agents.list[].tts khi một agent nên nói bằng nhà cung cấp,
giọng nói, mô hình, persona hoặc chế độ Auto-TTS khác. Khối agent được hợp nhất sâu lên
messages.tts, nên thông tin xác thực nhà cung cấp có thể vẫn ở cấu hình nhà cung cấp toàn cục:
{
messages: {
tts: {
auto: "always",
provider: "elevenlabs",
providers: {
elevenlabs: { apiKey: "${ELEVENLABS_API_KEY}", model: "eleven_multilingual_v2" },
},
},
},
agents: {
list: [
{
id: "reader",
tts: {
providers: {
elevenlabs: { voiceId: "EXAVITQu4vr4xnSDxMaL" },
},
},
},
],
},
}
Để cố định persona theo từng agent, đặt agents.list[].tts.persona cùng với cấu hình
nhà cung cấp — nó chỉ ghi đè messages.tts.persona toàn cục cho agent đó.
Thứ tự ưu tiên cho trả lời tự động, /tts audio, /tts status, và công cụ tác tử
tts:
messages.ttsagents.list[].ttsđang hoạt động- ghi đè kênh, khi kênh hỗ trợ
channels.<channel>.tts - ghi đè tài khoản, khi kênh truyền
channels.<channel>.accounts.<id>.tts - tùy chọn
/ttscục bộ cho máy chủ này - chỉ thị nội tuyến
[[tts:...]]khi bật ghi đè theo mô hình
Ghi đè kênh và tài khoản dùng cùng cấu trúc với messages.tts và
hợp nhất sâu lên các lớp trước đó, nên thông tin xác thực nhà cung cấp dùng chung có thể ở trong
messages.tts trong khi một kênh hoặc tài khoản bot chỉ thay đổi giọng nói, mô hình, persona,
hoặc chế độ tự động:
{
messages: {
tts: {
provider: "openai",
providers: {
openai: { apiKey: "${OPENAI_API_KEY}", model: "gpt-4o-mini-tts" },
},
},
},
channels: {
feishu: {
accounts: {
english: {
tts: {
providers: {
openai: { voice: "shimmer" },
},
},
},
},
},
},
}
Persona
Một persona là một danh tính nói ổn định có thể được áp dụng một cách xác định trên nhiều nhà cung cấp. Nó có thể ưu tiên một nhà cung cấp, định nghĩa ý định prompt trung lập với nhà cung cấp, và mang các ràng buộc riêng cho từng nhà cung cấp về giọng nói, mô hình, mẫu prompt, seed và thiết lập giọng nói.
Persona tối thiểu
{
messages: {
tts: {
auto: "always",
persona: "narrator",
personas: {
narrator: {
label: "Narrator",
provider: "elevenlabs",
providers: {
elevenlabs: { voiceId: "EXAVITQu4vr4xnSDxMaL", modelId: "eleven_multilingual_v2" },
},
},
},
},
},
}
Persona đầy đủ (prompt trung lập với nhà cung cấp)
{
messages: {
tts: {
auto: "always",
persona: "alfred",
personas: {
alfred: {
label: "Alfred",
description: "Dry, warm British butler narrator.",
provider: "google",
fallbackPolicy: "preserve-persona",
prompt: {
profile: "A brilliant British butler. Dry, witty, warm, charming, emotionally expressive, never generic.",
scene: "A quiet late-night study. Close-mic narration for a trusted operator.",
sampleContext: "The speaker is answering a private technical request with concise confidence and dry warmth.",
style: "Refined, understated, lightly amused.",
accent: "British English.",
pacing: "Measured, with short dramatic pauses.",
constraints: ["Do not read configuration values aloud.", "Do not explain the persona."],
},
providers: {
google: {
model: "gemini-3.1-flash-tts-preview",
voiceName: "Algieba",
promptTemplate: "audio-profile-v1",
},
openai: { model: "gpt-4o-mini-tts", voice: "cedar" },
elevenlabs: {
voiceId: "voice_id",
modelId: "eleven_multilingual_v2",
seed: 42,
voiceSettings: {
stability: 0.65,
similarityBoost: 0.8,
style: 0.25,
useSpeakerBoost: true,
speed: 0.95,
},
},
},
},
},
},
},
}
Phân giải persona
Persona đang hoạt động được chọn một cách xác định:
- tùy chọn cục bộ
/tts persona <id>, nếu được đặt. messages.tts.persona, nếu được đặt.- Không có persona.
Việc chọn nhà cung cấp chạy theo thứ tự ưu tiên mục rõ ràng trước:
- Ghi đè trực tiếp (CLI, gateway, Talk, các chỉ thị TTS được cho phép).
- tùy chọn cục bộ
/tts provider <id>. providercủa persona đang hoạt động.messages.tts.provider.- Tự động chọn từ sổ đăng ký.
Với mỗi lần thử nhà cung cấp, OpenClaw hợp nhất cấu hình theo thứ tự này:
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- Ghi đè yêu cầu đáng tin cậy
- Ghi đè từ chỉ thị TTS do mô hình phát ra và được cho phép
Cách nhà cung cấp dùng prompt persona
Các trường prompt persona (profile, scene, sampleContext, style, accent,
pacing, constraints) là trung lập với nhà cung cấp. Mỗi nhà cung cấp quyết định cách
sử dụng chúng:
Google Gemini
Bao bọc các trường prompt persona trong cấu trúc prompt TTS của Gemini chỉ khi
cấu hình nhà cung cấp Google hiệu lực đặt promptTemplate: "audio-profile-v1"
hoặc personaPrompt. Các trường audioProfile và speakerName cũ
vẫn được thêm vào đầu dưới dạng văn bản prompt riêng cho Google. Các thẻ âm thanh nội tuyến như
[whispers] hoặc [laughs] bên trong khối [[tts:text]] được giữ nguyên
trong bản chép lời Gemini; OpenClaw không tạo các thẻ này.
OpenAI
Ánh xạ các trường prompt persona sang trường yêu cầu instructions chỉ khi
không có instructions rõ ràng của OpenAI được cấu hình. instructions rõ ràng
luôn được ưu tiên.
Other providers
Chỉ dùng các ràng buộc persona riêng cho nhà cung cấp bên dưới
personas.<id>.providers.<provider>. Các trường prompt persona bị bỏ qua
trừ khi nhà cung cấp triển khai ánh xạ prompt persona riêng.
Chính sách dự phòng
fallbackPolicy kiểm soát hành vi khi một persona không có ràng buộc cho
nhà cung cấp được thử:
| Chính sách | Hành vi |
|---|---|
preserve-persona |
Mặc định. Các trường prompt trung lập với nhà cung cấp vẫn khả dụng; nhà cung cấp có thể dùng hoặc bỏ qua chúng. |
provider-defaults |
Persona bị bỏ qua khỏi bước chuẩn bị prompt cho lần thử đó; nhà cung cấp dùng mặc định trung lập của mình trong khi việc dự phòng sang nhà cung cấp khác tiếp tục. |
fail |
Bỏ qua lần thử nhà cung cấp đó với reasonCode: "not_configured" và personaBinding: "missing". Các nhà cung cấp dự phòng vẫn được thử. |
Toàn bộ yêu cầu TTS chỉ thất bại khi mọi nhà cung cấp được thử đều bị bỏ qua hoặc thất bại.
Việc chọn nhà cung cấp cho phiên Talk có phạm vi theo phiên. Một ứng dụng khách Talk nên chọn
id nhà cung cấp, id mô hình, id giọng nói và locale từ talk.catalog rồi truyền
chúng qua phiên Talk hoặc yêu cầu bàn giao. Việc mở phiên giọng nói không nên
thay đổi messages.tts hoặc mặc định nhà cung cấp Talk toàn cục.
Chỉ thị theo mô hình
Theo mặc định, trợ lý có thể phát ra chỉ thị [[tts:...]] để ghi đè
giọng nói, mô hình hoặc tốc độ cho một câu trả lời duy nhất, cộng với một khối
[[tts:text]]...[[/tts:text]] tùy chọn cho các gợi ý biểu cảm chỉ nên xuất hiện trong
âm thanh:
Here you go.
[[tts:voiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]]
[[tts:text]](laughs) Read the song once more.[[/tts:text]]
Khi messages.tts.auto là "tagged", bắt buộc phải có chỉ thị để kích hoạt
âm thanh. Việc phân phối khối dạng streaming loại bỏ chỉ thị khỏi văn bản hiển thị trước khi
kênh nhìn thấy chúng, ngay cả khi chúng bị tách qua các khối liền kề.
provider=... bị bỏ qua trừ khi modelOverrides.allowProvider: true. Khi một
câu trả lời khai báo provider=..., các khóa khác trong chỉ thị đó chỉ được phân tích
bởi nhà cung cấp đó; các khóa không được hỗ trợ bị loại bỏ và được báo cáo dưới dạng cảnh báo
chỉ thị TTS.
Các khóa chỉ thị có sẵn:
provider(id nhà cung cấp đã đăng ký; yêu cầuallowProvider: true)voice/voiceName/voice_name/google_voice/voiceIdmodel/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(âm lượng MiniMax, 0–10)pitch(cao độ số nguyên MiniMax, −12 đến 12; giá trị phân số bị cắt cụt)emotion(thẻ cảm xúc Volcengine)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Tắt hoàn toàn ghi đè mô hình:
{ messages: { tts: { modelOverrides: { enabled: false } } } }
Cho phép chuyển đổi nhà cung cấp trong khi vẫn giữ các nút điều chỉnh khác có thể cấu hình:
{ messages: { tts: { modelOverrides: { enabled: true, allowProvider: true, allowSeed: false } } } }
Lệnh gạch chéo
Một lệnh duy nhất /tts. Trên Discord, OpenClaw cũng đăng ký /voice vì
/tts là một lệnh tích hợp sẵn của Discord — văn bản /tts ... vẫn hoạt động.
/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>
Ghi chú hành vi:
/tts onghi tùy chọn TTS cục bộ thànhalways;/tts offghi nó thànhoff./tts chat on|off|defaultghi một ghi đè auto-TTS có phạm vi theo phiên cho cuộc trò chuyện hiện tại./tts persona <id>ghi tùy chọn persona cục bộ;/tts persona offxóa nó./tts latestđọc câu trả lời trợ lý mới nhất từ bản chép lời phiên hiện tại và gửi nó dưới dạng âm thanh một lần. Nó chỉ lưu một hash của câu trả lời đó trên mục phiên để tránh gửi giọng nói trùng lặp./tts audiotạo một câu trả lời âm thanh một lần (không bật TTS).limitvàsummaryđược lưu trong tùy chọn cục bộ, không phải cấu hình chính./tts statusbao gồm chẩn đoán dự phòng cho lần thử mới nhất —Fallback: <primary> -> <used>,Attempts: ..., và chi tiết theo từng lần thử (provider:outcome(reasonCode) latency)./statushiển thị chế độ TTS đang hoạt động cùng với nhà cung cấp, mô hình, giọng nói đã cấu hình và siêu dữ liệu endpoint tùy chỉnh đã được làm sạch khi TTS được bật.
Tùy chọn theo người dùng
Lệnh gạch chéo ghi ghi đè cục bộ vào prefsPath. Mặc định là
~/.openclaw/settings/tts.json; ghi đè bằng biến môi trường OPENCLAW_TTS_PREFS
hoặc messages.tts.prefsPath.
| Trường được lưu | Hiệu lực |
|---|---|
auto |
Ghi đè auto-TTS cục bộ (always, off, …) |
provider |
Ghi đè nhà cung cấp chính cục bộ |
persona |
Ghi đè persona cục bộ |
maxLength |
Ngưỡng tóm tắt (mặc định 1500 ký tự) |
summarize |
Công tắc tóm tắt (mặc định true) |
Các mục này ghi đè cấu hình hiệu lực từ messages.tts cộng với khối
agents.list[].tts đang hoạt động cho máy chủ đó.
Định dạng đầu ra (cố định)
Việc phân phối giọng nói TTS được điều khiển bởi năng lực kênh. Các Plugin kênh quảng cáo
liệu TTS kiểu giọng nói nên yêu cầu nhà cung cấp tạo mục tiêu voice-note gốc hay
giữ tổng hợp audio-file thông thường và chỉ đánh dấu đầu ra tương thích cho việc phân phối
giọng nói.
- Các kênh hỗ trợ ghi chú thoại: câu trả lời dạng ghi chú thoại ưu tiên Opus (
opus_48000_64từ ElevenLabs,opustừ OpenAI).- 48kHz / 64kbps là mức đánh đổi tốt cho tin nhắn thoại.
- Feishu / WhatsApp: khi câu trả lời dạng ghi chú thoại được tạo dưới dạng MP3/WebM/WAV/M4A
hoặc một tệp có khả năng là âm thanh khác, Plugin kênh chuyển mã tệp đó sang Ogg/Opus 48kHz
bằng
ffmpegtrước khi gửi tin nhắn thoại gốc. WhatsApp gửi kết quả qua payloadaudiocủa Baileys vớiptt: truevàaudio/ogg; codecs=opus. Nếu chuyển đổi thất bại, Feishu nhận tệp gốc dưới dạng tệp đính kèm; thao tác gửi WhatsApp thất bại thay vì đăng một payload PTT không tương thích. - BlueBubbles: giữ việc tổng hợp của nhà cung cấp trên đường dẫn tệp âm thanh bình thường; các đầu ra MP3 và CAF được đánh dấu để gửi bản ghi nhớ thoại iMessage.
- Các kênh khác: MP3 (
mp3_44100_128từ ElevenLabs,mp3từ OpenAI).- 44.1kHz / 128kbps là mức cân bằng mặc định cho độ rõ của giọng nói.
- MiniMax: MP3 (mô hình
speech-2.8-hd, tần số lấy mẫu 32kHz) cho tệp đính kèm âm thanh thông thường. Với các mục tiêu ghi chú thoại do kênh quảng bá, OpenClaw chuyển mã MP3 MiniMax sang Opus 48kHz bằngffmpegtrước khi phân phối khi kênh quảng bá khả năng chuyển mã. - Xiaomi MiMo: MP3 theo mặc định, hoặc WAV khi được cấu hình. Với các mục tiêu ghi chú thoại do kênh quảng bá, OpenClaw chuyển mã đầu ra Xiaomi sang Opus 48kHz bằng
ffmpegtrước khi phân phối khi kênh quảng bá khả năng chuyển mã. - CLI cục bộ: sử dụng
outputFormatđã cấu hình. Các mục tiêu ghi chú thoại được chuyển đổi sang Ogg/Opus và đầu ra điện thoại được chuyển đổi sang PCM mono thô 16 kHz bằngffmpeg. - Google Gemini: TTS của Gemini API trả về PCM thô 24kHz. OpenClaw bọc nó dưới dạng WAV cho tệp đính kèm âm thanh, chuyển mã sang Opus 48kHz cho các mục tiêu ghi chú thoại, và trả về PCM trực tiếp cho Talk/điện thoại.
- Gradium: WAV cho tệp đính kèm âm thanh, Opus cho mục tiêu ghi chú thoại, và
ulaw_8000ở 8 kHz cho điện thoại. - Inworld: MP3 cho tệp đính kèm âm thanh thông thường,
OGG_OPUSgốc cho mục tiêu ghi chú thoại, vàPCMthô ở 22050 Hz cho Talk/điện thoại. - xAI: MP3 theo mặc định;
responseFormatcó thể làmp3,wav,pcm,mulaw, hoặcalaw. OpenClaw sử dụng endpoint TTS REST hàng loạt của xAI và trả về một tệp đính kèm âm thanh hoàn chỉnh; WebSocket TTS streaming của xAI không được dùng bởi đường dẫn nhà cung cấp này. Định dạng ghi chú thoại Opus gốc không được hỗ trợ bởi đường dẫn này. - Microsoft: sử dụng
microsoft.outputFormat(mặc địnhaudio-24khz-48kbitrate-mono-mp3).- Bộ truyền tải đi kèm chấp nhận
outputFormat, nhưng không phải mọi định dạng đều có sẵn từ dịch vụ. - Giá trị định dạng đầu ra tuân theo các định dạng đầu ra Microsoft Speech (bao gồm Ogg/WebM Opus).
- Telegram
sendVoicechấp nhận OGG/MP3/M4A; hãy dùng OpenAI/ElevenLabs nếu bạn cần tin nhắn thoại Opus được bảo đảm. - Nếu định dạng đầu ra Microsoft đã cấu hình thất bại, OpenClaw thử lại bằng MP3.
- Bộ truyền tải đi kèm chấp nhận
Định dạng đầu ra OpenAI/ElevenLabs được cố định theo từng kênh (xem bên trên).
Hành vi Auto-TTS
Khi messages.tts.auto được bật, OpenClaw:
- Bỏ qua TTS nếu câu trả lời đã chứa phương tiện hoặc chỉ thị
MEDIA:. - Bỏ qua các câu trả lời rất ngắn (dưới 10 ký tự).
- Tóm tắt các câu trả lời dài khi bật tóm tắt, sử dụng
summaryModel(hoặcagents.defaults.model.primary). - Đính kèm âm thanh đã tạo vào câu trả lời.
- Trong
mode: "final", vẫn gửi TTS chỉ âm thanh cho các câu trả lời cuối cùng được streaming sau khi luồng văn bản hoàn tất; phương tiện được tạo đi qua cùng quy trình chuẩn hóa phương tiện của kênh như các tệp đính kèm trả lời thông thường.
Nếu câu trả lời vượt quá maxLength và tóm tắt đang tắt (hoặc không có khóa API cho
mô hình tóm tắt), âm thanh sẽ bị bỏ qua và câu trả lời văn bản bình thường được gửi.
Reply -> TTS enabled?
no -> send text
yes -> has media / MEDIA: / short?
yes -> send text
no -> length > limit?
no -> TTS -> attach audio
yes -> summary enabled?
no -> send text
yes -> summarize -> TTS -> attach audio
Định dạng đầu ra theo kênh
| Mục tiêu | Định dạng |
|---|---|
| Feishu / Matrix / Telegram / WhatsApp | Câu trả lời dạng ghi chú thoại ưu tiên Opus (opus_48000_64 từ ElevenLabs, opus từ OpenAI). 48 kHz / 64 kbps cân bằng giữa độ rõ và kích thước. |
| Các kênh khác | MP3 (mp3_44100_128 từ ElevenLabs, mp3 từ OpenAI). 44.1 kHz / 128 kbps là mặc định cho giọng nói. |
| Talk / điện thoại | PCM gốc theo nhà cung cấp (Inworld 22050 Hz, Google 24 kHz), hoặc ulaw_8000 từ Gradium cho điện thoại. |
Ghi chú theo từng nhà cung cấp:
- Chuyển mã Feishu / WhatsApp: Khi câu trả lời dạng ghi chú thoại nhận về là MP3/WebM/WAV/M4A, Plugin kênh chuyển mã sang Ogg/Opus 48 kHz bằng
ffmpeg. WhatsApp gửi qua Baileys vớiptt: truevàaudio/ogg; codecs=opus. Nếu chuyển đổi thất bại: Feishu quay lại đính kèm tệp gốc; thao tác gửi WhatsApp thất bại thay vì đăng một payload PTT không tương thích. - MiniMax / Xiaomi MiMo: MP3 mặc định (32 kHz cho MiniMax
speech-2.8-hd); được chuyển mã sang Opus 48 kHz cho các mục tiêu ghi chú thoại quaffmpeg. - CLI cục bộ: Sử dụng
outputFormatđã cấu hình. Các mục tiêu ghi chú thoại được chuyển đổi sang Ogg/Opus và đầu ra điện thoại sang PCM mono thô 16 kHz. - Google Gemini: Trả về PCM thô 24 kHz. OpenClaw bọc dưới dạng WAV cho tệp đính kèm, chuyển mã sang Opus 48 kHz cho mục tiêu ghi chú thoại, trả về PCM trực tiếp cho Talk/điện thoại.
- Inworld: Tệp đính kèm MP3, ghi chú thoại
OGG_OPUSgốc,PCMthô 22050 Hz cho Talk/điện thoại. - xAI: MP3 theo mặc định;
responseFormatcó thể làmp3|wav|pcm|mulaw|alaw. Sử dụng endpoint REST hàng loạt của xAI — WebSocket TTS streaming không được dùng. Định dạng ghi chú thoại Opus gốc không được hỗ trợ. - Microsoft: Sử dụng
microsoft.outputFormat(mặc địnhaudio-24khz-48kbitrate-mono-mp3). TelegramsendVoicechấp nhận OGG/MP3/M4A; hãy dùng OpenAI/ElevenLabs nếu bạn cần tin nhắn thoại Opus được bảo đảm. Nếu định dạng Microsoft đã cấu hình thất bại, OpenClaw thử lại bằng MP3.
Định dạng đầu ra OpenAI và ElevenLabs được cố định theo từng kênh như liệt kê bên trên.
Tham chiếu trường
Top-level messages.tts.*
auto"off" | "always" | "inbound" | "tagged"Chế độ Auto-TTS. inbound chỉ gửi âm thanh sau một tin nhắn thoại đến; tagged chỉ gửi âm thanh khi câu trả lời bao gồm các chỉ thị [[tts:...]] hoặc một khối [[tts:text]].
enabledbooleanCông tắc cũ. openclaw doctor --fix di chuyển trường này sang auto.
mode"final" | "all""all" bao gồm các câu trả lời công cụ/khối ngoài các câu trả lời cuối cùng.
providerstringID nhà cung cấp giọng nói. Khi chưa đặt, OpenClaw dùng nhà cung cấp được cấu hình đầu tiên theo thứ tự tự chọn của registry. provider: "edge" cũ được openclaw doctor --fix viết lại thành "microsoft".
personastringID persona đang hoạt động từ personas. Được chuẩn hóa thành chữ thường.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBlcnNvbmFzLjxpZA
" type="object">
Danh tính lời nói ổn định. Các trường: label, description, provider, fallbackPolicy, prompt, providers.<provider>. Xem Persona.
summaryModelstringMô hình rẻ cho tự động tóm tắt; mặc định là agents.defaults.model.primary. Chấp nhận provider/model hoặc một bí danh mô hình đã cấu hình.
modelOverridesobjectCho phép mô hình phát ra chỉ thị TTS. enabled mặc định là true; allowProvider mặc định là false.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb3ZpZGVycy48aWQ
" type="object">
Cài đặt thuộc sở hữu nhà cung cấp được khóa theo ID nhà cung cấp giọng nói. Các khối trực tiếp cũ (messages.tts.openai, .elevenlabs, .microsoft, .edge) được openclaw doctor --fix viết lại; chỉ commit messages.tts.providers.<id>.
maxTextLengthnumberGiới hạn cứng cho số ký tự đầu vào TTS. /tts audio thất bại nếu vượt quá.
timeoutMsnumberThời gian chờ yêu cầu tính bằng mili giây.
prefsPathstringGhi đè đường dẫn JSON prefs cục bộ (nhà cung cấp/giới hạn/tóm tắt). Mặc định ~/.openclaw/settings/tts.json.
Azure Speech
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Env: AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY, hoặc SPEECH_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlZ2lvbiIgdHlwZT0ic3RyaW5nIg
Vùng Azure Speech (ví dụ eastus). Env: AZURE_SPEECH_REGION hoặc SPEECH_REGION.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVuZHBvaW50IiB0eXBlPSJzdHJpbmci
Ghi đè endpoint Azure Speech tùy chọn (bí danh baseUrl).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlIiB0eXBlPSJzdHJpbmci
ShortName giọng nói Azure. Mặc định en-US-JennyNeural.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI
Mã ngôn ngữ SSML. Mặc định en-US.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg
Azure X-Microsoft-OutputFormat cho âm thanh tiêu chuẩn. Mặc định audio-24khz-48kbitrate-mono-mp3.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlTm90ZU91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg
Azure X-Microsoft-OutputFormat cho đầu ra ghi chú thoại. Mặc định ogg-24khz-16bit-mono-opus.
OPENCLAW_DOCS_MARKER:paramClose:
ElevenLabs
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Dự phòng về ELEVENLABS_API_KEY hoặc XI_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
ID mô hình (ví dụ eleven_multilingual_v2, eleven_v3).
OPENCLAW_DOCS_MARKER:paramClose:
voiceIdstringvoiceSettingsobjectstability, similarityBoost, style (mỗi trường 0..1), useSpeakerBoost (true|false), speed (0.5..2.0, 1.0 = bình thường).
applyTextNormalization"auto" | "on" | "off"OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlQ29kZSIgdHlwZT0ic3RyaW5nIg
ISO 639-1 gồm 2 chữ cái (ví dụ en, de).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNlZWQiIHR5cGU9Im51bWJlciI
Số nguyên 0..4294967295 để cố gắng đạt tính xác định tốt nhất.
OPENCLAW_DOCS_MARKER:paramClose:
baseUrlstringGoogle Gemini
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Dự phòng về GEMINI_API_KEY / GOOGLE_API_KEY. Nếu bỏ qua, TTS có thể tái sử dụng models.providers.google.apiKey trước khi dự phòng về env.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Mô hình Gemini TTS. Mặc định gemini-3.1-flash-tts-preview.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlTmFtZSIgdHlwZT0ic3RyaW5nIg
Tên giọng nói dựng sẵn của Gemini. Mặc định Kore. Bí danh: voice.
OPENCLAW_DOCS_MARKER:paramClose:
audioProfilestringspeakerNamestringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb21wdFRlbXBsYXRlIiB0eXBlPSciYXVkaW8tcHJvZmlsZS12MSIn
Đặt thành audio-profile-v1 để bọc các trường prompt persona đang hoạt động trong một cấu trúc prompt Gemini TTS xác định.
OPENCLAW_DOCS_MARKER:paramClose:
personaPromptstringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Chỉ chấp nhận https://generativelanguage.googleapis.com.
OPENCLAW_DOCS_MARKER:paramClose:
Gradium
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Env: GRADIUM_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Mặc định https://api.gradium.ai.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlSWQiIHR5cGU9InN0cmluZyI
Mặc định Emma (YTpq7expH9539ERJ).
OPENCLAW_DOCS_MARKER:paramClose:
Inworld
Chính Inworld
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Env: INWORLD_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Mặc định https://api.inworld.ai.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsSWQiIHR5cGU9InN0cmluZyI
Mặc định inworld-tts-1.5-max. Ngoài ra: inworld-tts-1.5-mini, inworld-tts-1-max, inworld-tts-1.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlSWQiIHR5cGU9InN0cmluZyI
Mặc định Sarah.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRlbXBlcmF0dXJlIiB0eXBlPSJudW1iZXIi
Nhiệt độ lấy mẫu 0..2.
OPENCLAW_DOCS_MARKER:paramClose:
Local CLI (tts-local-cli)
commandstringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFyZ3MiIHR5cGU9InN0cmluZ1tdIg
Đối số lệnh. Hỗ trợ các phần giữ chỗ {{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0nIm1wMyIgfCAib3B1cyIgfCAid2F2Iic
Định dạng đầu ra CLI dự kiến. Mặc định mp3 cho tệp đính kèm âm thanh.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRpbWVvdXRNcyIgdHlwZT0ibnVtYmVyIg
Thời gian chờ lệnh tính bằng mili giây. Mặc định 120000.
OPENCLAW_DOCS_MARKER:paramClose:
cwdstringenv"Record<string,Microsoft (không cần khóa API)
enabledbooleanOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlIiB0eXBlPSJzdHJpbmci
Tên giọng neural của Microsoft (ví dụ en-US-MichelleNeural).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI
Mã ngôn ngữ (ví dụ en-US).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg
Định dạng đầu ra Microsoft. Mặc định audio-24khz-48kbitrate-mono-mp3. Không phải tất cả định dạng đều được transport dựa trên Edge đi kèm hỗ trợ.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJhdGUgLyBwaXRjaCAvIHZvbHVtZSIgdHlwZT0ic3RyaW5nIg
Chuỗi phần trăm (ví dụ +10%, -5%).
OPENCLAW_DOCS_MARKER:paramClose:
saveSubtitlesbooleanproxystringtimeoutMsnumberOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVkZ2UuKiIgdHlwZT0ib2JqZWN0IiBkZXByZWNhdGVk
Bí danh cũ. Chạy openclaw doctor --fix để ghi lại cấu hình đã lưu thành providers.microsoft.
OPENCLAW_DOCS_MARKER:paramClose:
MiniMax
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Dự phòng sang MINIMAX_API_KEY. Xác thực Token Plan qua MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, hoặc MINIMAX_CODING_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Mặc định https://api.minimax.io. Env: MINIMAX_API_HOST.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Mặc định speech-2.8-hd. Env: MINIMAX_TTS_MODEL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlSWQiIHR5cGU9InN0cmluZyI
Mặc định English_expressive_narrator. Env: MINIMAX_TTS_VOICE_ID.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi
0.5..2.0. Mặc định 1.0.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvbCIgdHlwZT0ibnVtYmVyIg
(0, 10]. Mặc định 1.0.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBpdGNoIiB0eXBlPSJudW1iZXIi
Số nguyên -12..12. Mặc định 0. Giá trị thập phân bị cắt bỏ trước yêu cầu.
OPENCLAW_DOCS_MARKER:paramClose:
OpenAI
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Dự phòng sang OPENAI_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
ID mô hình TTS OpenAI (ví dụ gpt-4o-mini-tts).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlIiB0eXBlPSJzdHJpbmci
Tên giọng (ví dụ alloy, cedar).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imluc3RydWN0aW9ucyIgdHlwZT0ic3RyaW5nIg
Trường instructions tường minh của OpenAI. Khi được đặt, các trường lời nhắc persona không được tự động ánh xạ.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImV4dHJhQm9keSAvIGV4dHJhX2JvZHkiIHR5cGU9IlJlY29yZDxzdHJpbmcsIHVua25vd24
">Các trường JSON bổ sung được hợp nhất vào thân yêu cầu /audio/speech sau các trường OpenAI TTS đã tạo. Dùng trường này cho các endpoint tương thích OpenAI như Kokoro cần khóa riêng của nhà cung cấp như lang; các khóa prototype không an toàn bị bỏ qua.
OPENCLAW_DOCS_MARKER:paramClose:
baseUrlstringGhi đè endpoint OpenAI TTS. Thứ tự phân giải: cấu hình → OPENAI_TTS_BASE_URL → https://api.openai.com/v1. Các giá trị không mặc định được xem là endpoint TTS tương thích OpenAI, nên tên mô hình và tên giọng tùy chỉnh được chấp nhận.
OpenRouter
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Env: OPENROUTER_API_KEY. Có thể tái sử dụng models.providers.openrouter.apiKey.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Mặc định https://openrouter.ai/api/v1. Legacy https://openrouter.ai/v1 được chuẩn hóa.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Mặc định hexgrad/kokoro-82m. Bí danh: modelId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlIiB0eXBlPSJzdHJpbmci
Mặc định af_alloy. Bí danh: voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJwY20iJw
Mặc định mp3.
OPENCLAW_DOCS_MARKER:paramClose:
speednumberVolcengine (BytePlus Seed Speech)
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Env: VOLCENGINE_TTS_API_KEY hoặc BYTEPLUS_SEED_SPEECH_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc291cmNlSWQiIHR5cGU9InN0cmluZyI
Mặc định seed-tts-1.0. Env: VOLCENGINE_TTS_RESOURCE_ID. Dùng seed-tts-2.0 khi dự án của bạn có quyền sử dụng TTS 2.0.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcEtleSIgdHlwZT0ic3RyaW5nIg
Header khóa ứng dụng. Mặc định aGjiRDfUWi. Env: VOLCENGINE_TTS_APP_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Ghi đè endpoint HTTP Seed Speech TTS. Env: VOLCENGINE_TTS_BASE_URL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlIiB0eXBlPSJzdHJpbmci
Loại giọng. Mặc định en_female_anna_mars_bigtts. Env: VOLCENGINE_TTS_VOICE.
OPENCLAW_DOCS_MARKER:paramClose:
speedRationumberemotionstringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcElkIC8gdG9rZW4gLyBjbHVzdGVyIiB0eXBlPSJzdHJpbmciIGRlcHJlY2F0ZWQ
Các trường Volcengine Speech Console cũ. Env: VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (mặc định volcano_tts).
OPENCLAW_DOCS_MARKER:paramClose:
xAI
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Env: XAI_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Mặc định https://api.x.ai/v1. Env: XAI_BASE_URL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlSWQiIHR5cGU9InN0cmluZyI
Mặc định eve. Giọng trực tiếp: ara, eve, leo, rex, sal, una.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlIiB0eXBlPSJzdHJpbmci
Mã ngôn ngữ BCP-47 hoặc auto. Mặc định en.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJ3YXYiIHwgInBjbSIgfCAibXVsYXciIHwgImFsYXciJw
Mặc định mp3.
OPENCLAW_DOCS_MARKER:paramClose:
speednumberXiaomi MiMo
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Env: XIAOMI_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Mặc định https://api.xiaomimimo.com/v1. Env: XIAOMI_BASE_URL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Mặc định mimo-v2.5-tts. Env: XIAOMI_TTS_MODEL. Cũng hỗ trợ mimo-v2-tts.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlIiB0eXBlPSJzdHJpbmci
Mặc định mimo_default. Env: XIAOMI_TTS_VOICE.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImZvcm1hdCIgdHlwZT0nIm1wMyIgfCAid2F2Iic
Mặc định mp3. Env: XIAOMI_TTS_FORMAT.
OPENCLAW_DOCS_MARKER:paramClose:
stylestringCông cụ agent
Công cụ tts chuyển đổi văn bản thành giọng nói và trả về tệp đính kèm âm thanh để
gửi trả lời. Trên Feishu, Matrix, Telegram và WhatsApp, âm thanh được
gửi dưới dạng tin nhắn thoại thay vì tệp đính kèm. Feishu và
WhatsApp có thể chuyển mã đầu ra TTS không phải Opus trên đường dẫn này khi ffmpeg
có sẵn.
WhatsApp gửi âm thanh qua Baileys dưới dạng ghi chú thoại PTT (audio với
ptt: true) và gửi văn bản hiển thị riêng biệt với âm thanh PTT vì
client không hiển thị chú thích trên ghi chú thoại một cách nhất quán.
Công cụ chấp nhận các trường tùy chọn channel và timeoutMs; timeoutMs là
thời gian chờ yêu cầu nhà cung cấp cho mỗi lần gọi, tính bằng mili giây.
Gateway RPC
| Phương thức | Mục đích |
|---|---|
tts.status |
Đọc trạng thái TTS hiện tại và lần thử gần nhất. |
tts.enable |
Đặt tùy chọn tự động cục bộ thành always. |
tts.disable |
Đặt tùy chọn tự động cục bộ thành off. |
tts.convert |
Chuyển văn bản → âm thanh một lần. |
tts.setProvider |
Đặt tùy chọn nhà cung cấp cục bộ. |
tts.setPersona |
Đặt tùy chọn persona cục bộ. |
tts.providers |
Liệt kê các nhà cung cấp đã cấu hình và trạng thái. |
Liên kết dịch vụ
- Hướng dẫn chuyển văn bản thành giọng nói của OpenAI
- Tham chiếu OpenAI Audio API
- Chuyển văn bản thành giọng nói Azure Speech REST
- Nhà cung cấp Azure Speech
- ElevenLabs Text to Speech
- Xác thực ElevenLabs
- Gradium
- Inworld TTS API
- MiniMax T2A v2 API
- Volcengine TTS HTTP API
- Tổng hợp giọng nói Xiaomi MiMo
- node-edge-tts
- Định dạng đầu ra Microsoft Speech
- Chuyển văn bản thành giọng nói xAI