Chuyển văn bản thành giọng nói (TTS)
OpenClaw có thể chuyển đổi các phản hồi gửi đi thành âm thanh bằng cách sử dụng ElevenLabs, Microsoft hoặc OpenAI. Tính năng này hoạt động ở bất kỳ nơi nào OpenClaw có thể gửi âm thanh; trên Telegram, nó sẽ xuất hiện dưới dạng một bong bóng ghi chú giọng nói.Dịch vụ hỗ trợ
- ElevenLabs (nhà cung cấp chính hoặc dự phòng)
- Microsoft (nhà cung cấp chính hoặc dự phòng; hiện tại sử dụng
node-edge-tts, mặc định khi không có khóa API) - OpenAI (nhà cung cấp chính hoặc dự phòng; cũng được sử dụng cho tóm tắt)
Ghi chú về giọng nói của Microsoft
Nhà cung cấp giọng nói Microsoft hiện tại sử dụng dịch vụ TTS thần kinh trực tuyến của Microsoft Edge thông qua thư việnnode-edge-tts. Đây là dịch vụ được lưu trữ (không phải cục bộ), sử dụng các điểm cuối của Microsoft và không yêu cầu khóa API. node-edge-tts cung cấp các tùy chọn cấu hình giọng nói và định dạng đầu ra, nhưng không phải tất cả các tùy chọn đều được dịch vụ hỗ trợ. Cấu hình cũ và đầu vào chỉ thị sử dụng edge vẫn hoạt động và được chuẩn hóa thành microsoft.
Vì đây là dịch vụ web công cộng không có SLA hoặc hạn mức công bố, hãy coi nó như một nỗ lực tốt nhất. Nếu cần hạn mức và hỗ trợ đảm bảo, hãy sử dụng OpenAI hoặc ElevenLabs.
Khóa tùy chọn
Nếu muốn sử dụng OpenAI hoặc ElevenLabs:ELEVENLABS_API_KEY(hoặcXI_API_KEY)OPENAI_API_KEY
messages.tts.microsoft.enabled=false hoặc messages.tts.edge.enabled=false).
Nếu cấu hình nhiều nhà cung cấp, nhà cung cấp được chọn sẽ được sử dụng trước và các nhà cung cấp khác là tùy chọn dự phòng. Tóm tắt tự động sử dụng summaryModel đã cấu hình (hoặc agents.defaults.model.primary), vì vậy nhà cung cấp đó cũng phải được xác thực nếu bạn bật tóm tắt.
Liên kết dịch vụ
- Hướng dẫn Text-to-Speech của OpenAI
- Tham khảo API âm thanh của OpenAI
- Text to Speech của ElevenLabs
- Xác thực ElevenLabs
- node-edge-tts
- Định dạng đầu ra giọng nói của Microsoft
Có được bật mặc định không?
Không. Tính năng Auto-TTS tắt theo mặc định. Bật nó trong cấu hình vớimessages.tts.auto hoặc theo phiên với /tts always (bí danh: /tts on).
Giọng nói của Microsoft được bật mặc định khi TTS được bật và được sử dụng tự động khi không có khóa API của OpenAI hoặc ElevenLabs.
Cấu hình
Cấu hình TTS nằm dướimessages.tts trong openclaw.json. Toàn bộ schema có trong Cấu hình Gateway.
Cấu hình tối thiểu (bật + nhà cung cấp)
OpenAI chính với ElevenLabs dự phòng
Microsoft chính (không cần khóa API)
Vô hiệu hóa giọng nói của Microsoft
Giới hạn tùy chỉnh + đường dẫn ưu tiên
Chỉ trả lời bằng âm thanh sau khi nhận ghi chú giọng nói
Vô hiệu hóa tóm tắt tự động cho các phản hồi dài
Ghi chú về các trường
auto: chế độ auto-TTS (off,always,inbound,tagged).inboundchỉ gửi âm thanh sau khi nhận ghi chú giọng nói.taggedchỉ gửi âm thanh khi phản hồi có thẻ[[tts]].
enabled: chuyển đổi cũ (bác sĩ di chuyển điều này sangauto).mode:"final"(mặc định) hoặc"all"(bao gồm công cụ/phản hồi khối).provider: id nhà cung cấp giọng nói như"elevenlabs","microsoft", hoặc"openai"(dự phòng tự động).- Nếu
providerkhông được đặt, OpenClaw ưu tiênopenai(nếu có khóa), sau đóelevenlabs(nếu có khóa), nếu không thìmicrosoft. summaryModel: mô hình rẻ tiền tùy chọn cho tóm tắt tự động; mặc định làagents.defaults.model.primary.- Chấp nhận
provider/modelhoặc bí danh mô hình đã cấu hình.
- Chấp nhận
modelOverrides: cho phép mô hình phát ra chỉ thị TTS (bật theo mặc định).allowProvidermặc định làfalse(chuyển đổi nhà cung cấp là tùy chọn).
maxTextLength: giới hạn cứng cho đầu vào TTS (ký tự)./tts audiothất bại nếu vượt quá.timeoutMs: thời gian chờ yêu cầu (ms).prefsPath: ghi đè đường dẫn JSON ưu tiên cục bộ (nhà cung cấp/giới hạn/tóm tắt).- Giá trị
apiKeydự phòng cho biến môi trường (ELEVENLABS_API_KEY/XI_API_KEY,OPENAI_API_KEY). elevenlabs.baseUrl: ghi đè URL cơ sở API của ElevenLabs.openai.baseUrl: ghi đè điểm cuối TTS của OpenAI.- Thứ tự giải quyết:
messages.tts.openai.baseUrl->OPENAI_TTS_BASE_URL->https://api.openai.com/v1 - Các giá trị không mặc định được coi là điểm cuối TTS tương thích với OpenAI, vì vậy tên mô hình và giọng nói tùy chỉnh được chấp nhận.
- Thứ tự giải quyết:
elevenlabs.voiceSettings:stability,similarityBoost,style:0..1useSpeakerBoost:true|falsespeed:0.5..2.0(1.0 = bình thường)
elevenlabs.applyTextNormalization:auto|on|offelevenlabs.languageCode: mã ISO 639-1 gồm 2 chữ cái (ví dụ:en,de)elevenlabs.seed: số nguyên0..4294967295(xác định tốt nhất có thể)microsoft.enabled: cho phép sử dụng giọng nói của Microsoft (mặc địnhtrue; không cần khóa API).microsoft.voice: tên giọng nói thần kinh của Microsoft (ví dụ:en-US-MichelleNeural).microsoft.lang: mã ngôn ngữ (ví dụ:en-US).microsoft.outputFormat: định dạng đầu ra của Microsoft (ví dụ:audio-24khz-48kbitrate-mono-mp3).- Xem Định dạng đầu ra giọng nói của Microsoft để biết các giá trị hợp lệ; không phải tất cả các định dạng đều được hỗ trợ bởi phương tiện truyền tải dựa trên Edge.
microsoft.rate/microsoft.pitch/microsoft.volume: chuỗi phần trăm (ví dụ:+10%,-5%).microsoft.saveSubtitles: ghi phụ đề JSON cùng với tệp âm thanh.microsoft.proxy: URL proxy cho các yêu cầu giọng nói của Microsoft.microsoft.timeoutMs: ghi đè thời gian chờ yêu cầu (ms).edge.*: bí danh cũ cho các cài đặt Microsoft tương tự.
Ghi đè theo mô hình (mặc định bật)
Theo mặc định, mô hình có thể phát ra chỉ thị TTS cho một phản hồi duy nhất. Khimessages.tts.auto là tagged, các chỉ thị này là bắt buộc để kích hoạt âm thanh.
Khi được bật, mô hình có thể phát ra chỉ thị [[tts:...]] để ghi đè giọng nói cho một phản hồi duy nhất, cùng với một khối [[tts:text]]...[[/tts:text]] tùy chọn để cung cấp các thẻ biểu cảm (cười, hát, v.v.) chỉ xuất hiện trong âm thanh.
Chỉ thị provider=... bị bỏ qua trừ khi modelOverrides.allowProvider: true.
Ví dụ về payload phản hồi:
provider(id nhà cung cấp giọng nói đã đăng ký, ví dụopenai,elevenlabs, hoặcmicrosoft; yêu cầuallowProvider: true)voice(giọng nói OpenAI) hoặcvoiceId(ElevenLabs)model(mô hình TTS của OpenAI hoặc id mô hình ElevenLabs)stability,similarityBoost,style,speed,useSpeakerBoostapplyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Tùy chọn theo người dùng
Các lệnh gạch chéo ghi đè cục bộ vàoprefsPath (mặc định: ~/.openclaw/settings/tts.json, ghi đè với OPENCLAW_TTS_PREFS hoặc messages.tts.prefsPath).
Các trường được lưu trữ:
enabledprovidermaxLength(ngưỡng tóm tắt; mặc định 1500 ký tự)summarize(mặc địnhtrue)
messages.tts.* cho máy chủ đó.
Định dạng đầu ra (cố định)
- Telegram: Ghi chú giọng nói Opus (
opus_48000_64từ ElevenLabs,opustừ OpenAI).- 48kHz / 64kbps là sự cân bằng tốt cho ghi chú giọng nói và cần thiết cho bong bóng tròn.
- Các kênh khác: MP3 (
mp3_44100_128từ ElevenLabs,mp3từ OpenAI).- 44.1kHz / 128kbps là sự cân bằng mặc định cho độ rõ của giọng nói.
- Microsoft: sử dụng
microsoft.outputFormat(mặc địnhaudio-24khz-48kbitrate-mono-mp3).- Phương tiện truyền tải đi kèm chấp nhận một
outputFormat, nhưng không phải tất cả các định dạng đều có sẵn từ dịch vụ. - Các giá trị định dạng đầu ra tuân theo Định dạng đầu ra giọng nói của Microsoft (bao gồm Ogg/WebM Opus).
- Telegram
sendVoicechấp nhận OGG/MP3/M4A; sử dụng OpenAI/ElevenLabs nếu bạn cần ghi chú giọng nói Opus đảm bảo. - Nếu định dạng đầu ra Microsoft được cấu hình thất bại, OpenClaw sẽ thử lại với MP3.
- Phương tiện truyền tải đi kèm chấp nhận một
Hành vi Auto-TTS
Khi được bật, OpenClaw:- bỏ qua TTS nếu phản hồi đã chứa phương tiện hoặc chỉ thị
MEDIA:. - bỏ qua các phản hồi rất ngắn (< 10 ký tự).
- tóm tắt các phản hồi dài khi được bật bằng cách sử dụng
agents.defaults.model.primary(hoặcsummaryModel). - đính kèm âm thanh đã tạo vào phản hồi.
maxLength và tóm tắt bị 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à phản hồi văn bản thông thường sẽ được gửi.
Sơ đồ luồng
Sử dụng lệnh gạch chéo
Có một lệnh duy nhất:/tts. Xem Lệnh gạch chéo để biết chi tiết về việc bật.
Ghi chú Discord: /tts là lệnh tích hợp sẵn của Discord, vì vậy OpenClaw đăng ký /voice làm lệnh gốc ở đó. Văn bản /tts ... vẫn hoạt động.
- Các lệnh yêu cầu người gửi được ủy quyền (quy tắc danh sách cho phép/chủ sở hữu vẫn áp dụng).
commands.texthoặc đăng ký lệnh gốc phải được bật.off|always|inbound|taggedlà các chuyển đổi theo phiên (/tts onlà bí danh cho/tts always).limitvàsummaryđược lưu trữ trong ưu tiên cục bộ, không phải cấu hình chính./tts audiotạo một phản hồi âm thanh một lần (không bật TTS).
Công cụ Agent
Công cụtts chuyển đổi văn bản thành giọng nói và trả về một tệp đính kèm âm thanh để gửi phản hồi. Khi kết quả tương thích với Telegram, OpenClaw đánh dấu nó để gửi dưới dạng bong bóng giọng nói.
Gateway RPC
Các phương thức Gateway:tts.statustts.enabletts.disabletts.converttts.setProvidertts.providers