OpenClaw는 발신 답장을 14개 음성 제공자 전반에서 오디오로 변환하고 Feishu, Matrix, Telegram, WhatsApp에서는 네이티브 음성 메시지로, 그 외 모든 곳에서는 오디오 첨부 파일로, 전화 통신 및 Talk에는 PCM/Ulaw 스트림으로 전달할 수 있습니다. TTS는 Talk의Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
stt-tts 모드에서 음성 출력에 해당하는 절반입니다. 제공자 네이티브
realtime Talk 세션은 이 TTS 경로를 호출하는 대신 realtime 제공자 내부에서 음성을 합성하는 반면,
transcription 세션은 어시스턴트 음성 응답을 합성하지 않습니다.
빠른 시작
Pick a provider
OpenAI와 ElevenLabs는 가장 안정적인 호스팅 옵션입니다. Microsoft와
Local CLI는 API 키 없이 작동합니다. 전체 목록은 제공자 매트릭스를
참조하세요.
Set the API key
제공자의 환경 변수(예:
OPENAI_API_KEY,
ELEVENLABS_API_KEY)를 내보내세요. Microsoft와 Local CLI에는 키가 필요하지 않습니다.Auto-TTS는 기본적으로 꺼져 있습니다.
messages.tts.provider가 설정되지 않은 경우,
OpenClaw는 레지스트리 자동 선택 순서에서 처음 구성된 제공자를 선택합니다.
내장 tts 에이전트 도구는 명시적 의도 전용입니다. 일반 채팅은
사용자가 오디오를 요청하거나, /tts를 사용하거나, Auto-TTS/directive
speech를 활성화하지 않는 한 텍스트로 유지됩니다.지원되는 제공자
| 제공자 | 인증 | 참고 |
|---|---|---|
| Azure Speech | AZURE_SPEECH_KEY + AZURE_SPEECH_REGION (AZURE_SPEECH_API_KEY, SPEECH_KEY, SPEECH_REGION도 가능) | 네이티브 Ogg/Opus 음성 메모 출력 및 전화 통신. |
| DeepInfra | DEEPINFRA_API_KEY | OpenAI 호환 TTS. 기본값은 hexgrad/Kokoro-82M. |
| ElevenLabs | ELEVENLABS_API_KEY 또는 XI_API_KEY | 음성 복제, 다국어, seed를 통한 결정적 출력. Discord 음성 재생용으로 스트리밍됨. |
| Google Gemini | GEMINI_API_KEY 또는 GOOGLE_API_KEY | Gemini API 배치 TTS. promptTemplate: "audio-profile-v1"로 페르소나 인식. |
| Gradium | GRADIUM_API_KEY | 음성 메모 및 전화 통신 출력. |
| Inworld | INWORLD_API_KEY | 스트리밍 TTS API. 네이티브 Opus 음성 메모 및 PCM 전화 통신. |
| Local CLI | 없음 | 구성된 로컬 TTS 명령을 실행합니다. |
| Microsoft | 없음 | node-edge-tts를 통한 공개 Edge neural TTS. 최선 노력 방식이며 SLA 없음. |
| MiniMax | MINIMAX_API_KEY(또는 Token Plan: MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY) | T2A v2 API. 기본값은 speech-2.8-hd. |
| OpenAI | OPENAI_API_KEY | 자동 요약에도 사용됨. 페르소나 instructions 지원. |
| OpenRouter | OPENROUTER_API_KEY(models.providers.openrouter.apiKey 재사용 가능) | 기본 모델 hexgrad/kokoro-82m. |
| Volcengine | VOLCENGINE_TTS_API_KEY 또는 BYTEPLUS_SEED_SPEECH_API_KEY(레거시 AppID/token: VOLCENGINE_TTS_APPID/_TOKEN) | BytePlus Seed Speech HTTP API. |
| Vydra | VYDRA_API_KEY | 이미지, 비디오, 음성 공유 제공자. |
| xAI | XAI_API_KEY | xAI 배치 TTS. 네이티브 Opus 음성 메모는 지원되지 않습니다. |
| Xiaomi MiMo | XIAOMI_API_KEY | Xiaomi 채팅 완성을 통한 MiMo TTS. |
summaryModel(또는
agents.defaults.model.primary)을 사용하므로, 요약을 활성화한 상태로 유지하려면
해당 제공자도 인증되어 있어야 합니다.
구성
TTS 구성은~/.openclaw/openclaw.json의 messages.tts 아래에 있습니다. 프리셋을 선택하고
제공자 블록을 조정하세요.
- Azure Speech
- ElevenLabs
- Google Gemini
- Gradium
- Inworld
- Local CLI
- Microsoft (no key)
- MiniMax
- OpenAI + ElevenLabs
- OpenRouter
- Volcengine
- xAI
- Xiaomi MiMo
에이전트별 음성 재정의
한 에이전트가 다른 제공자, 음성, 모델, 페르소나 또는 Auto-TTS 모드로 말해야 할 때는agents.list[].tts를 사용하세요. 에이전트 블록은 messages.tts 위에 딥 병합되므로
제공자 자격 증명은 전역 제공자 구성에 그대로 둘 수 있습니다.
agents.list[].tts.persona를 설정하세요. 해당 에이전트에 대해서만 전역
messages.tts.persona를 재정의합니다.
자동 응답, /tts audio, /tts status, 그리고 tts 에이전트 도구의
우선순위:
messages.tts- 활성
agents.list[].tts - 채널이
channels.<channel>.tts를 지원할 때 채널 재정의 - 채널이
channels.<channel>.accounts.<id>.tts를 전달할 때 계정 재정의 - 이 호스트의 로컬
/tts기본 설정 - 모델 재정의가 활성화된 경우 인라인
[[tts:...]]지시문
messages.tts와 같은 형태를 사용하며
이전 레이어 위에 deep-merge되므로, 공유 provider 자격 증명은
messages.tts에 두고 채널이나 봇 계정은 음성, 모델, 페르소나,
자동 모드만 변경할 수 있습니다.
페르소나
페르소나는 provider 전반에 결정적으로 적용할 수 있는 안정적인 음성 정체성입니다. 하나의 provider를 선호하도록 지정하고, provider 중립적인 프롬프트 의도를 정의하며, 음성, 모델, 프롬프트 템플릿, 시드, 음성 설정에 대한 provider별 바인딩을 포함할 수 있습니다.최소 페르소나
전체 페르소나(provider 중립 프롬프트)
페르소나 해석
활성 페르소나는 결정적으로 선택됩니다.- 설정된 경우
/tts persona <id>로컬 기본 설정. - 설정된 경우
messages.tts.persona. - 페르소나 없음.
- 직접 재정의(CLI, Gateway, Talk, 허용된 TTS 지시문).
/tts provider <id>로컬 기본 설정.- 활성 페르소나의
provider. messages.tts.provider.- 레지스트리 자동 선택.
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- 신뢰된 요청 재정의
- 허용된 모델 생성 TTS 지시문 재정의
provider가 페르소나 프롬프트를 사용하는 방식
페르소나 프롬프트 필드(profile, scene, sampleContext, style, accent,
pacing, constraints)는 provider 중립적입니다. 각 provider가 이를
사용하는 방식을 결정합니다.
Google Gemini
Google Gemini
유효한 Google provider config가
promptTemplate: "audio-profile-v1"
또는 personaPrompt를 설정한 경우에만 페르소나 프롬프트 필드를
Gemini TTS 프롬프트 구조로 감쌉니다. 이전 audioProfile 및
speakerName 필드는 여전히 Google 전용 프롬프트 텍스트로 앞에 추가됩니다.
[[tts:text]] 블록 내부의 [whispers] 또는 [laughs] 같은 인라인 오디오 태그는
Gemini transcript 안에 보존됩니다. OpenClaw는 이러한 태그를 생성하지 않습니다.OpenAI
OpenAI
명시적인 OpenAI
instructions가 구성되지 않은 경우에만 페르소나 프롬프트 필드를
요청 instructions 필드에 매핑합니다. 명시적인 instructions가 항상 우선합니다.Other providers
Other providers
personas.<id>.providers.<provider> 아래의 provider별 페르소나 바인딩만
사용합니다. provider가 자체 페르소나 프롬프트 매핑을 구현하지 않는 한
페르소나 프롬프트 필드는 무시됩니다.fallback 정책
fallbackPolicy는 페르소나에 시도된 provider에 대한 바인딩이 없을 때
동작을 제어합니다.
| 정책 | 동작 |
|---|---|
preserve-persona | 기본값. provider 중립 프롬프트 필드는 계속 사용할 수 있으며, provider는 이를 사용하거나 무시할 수 있습니다. |
provider-defaults | 해당 시도의 프롬프트 준비에서 페르소나가 생략됩니다. 다른 provider로의 fallback은 계속되며 provider는 중립 기본값을 사용합니다. |
fail | 해당 provider 시도를 reasonCode: "not_configured" 및 personaBinding: "missing"으로 건너뜁니다. fallback provider는 계속 시도됩니다. |
talk.catalog에서
provider ID, 모델 ID, 음성 ID, 로캘을 선택하고 Talk 세션 또는 handoff 요청을 통해
전달해야 합니다. 음성 세션을 열 때 messages.tts 또는 전역 Talk provider 기본값을
변경해서는 안 됩니다.
모델 기반 지시문
기본적으로 어시스턴트는 단일 응답의 음성, 모델, 속도를 재정의하기 위해[[tts:...]] 지시문을 내보낼 수 있으며, 오디오에만 나타나야 하는 표현 단서를 위한
선택적 [[tts:text]]...[[/tts:text]] 블록도 함께 내보낼 수 있습니다.
messages.tts.auto가 "tagged"이면 오디오를 트리거하려면 지시문이 필요합니다.
스트리밍 블록 전달은 인접 블록으로 나뉘어 있어도 채널이 보기 전에 표시 텍스트에서
지시문을 제거합니다.
provider=...는 modelOverrides.allowProvider: true가 아니면 무시됩니다.
응답이 provider=...를 선언하면 해당 지시문의 다른 키는 그 provider만 파싱합니다.
지원되지 않는 키는 제거되고 TTS 지시문 경고로 보고됩니다.
사용 가능한 지시문 키:
provider(등록된 provider ID,allowProvider: true필요)voice/voiceName/voice_name/google_voice/voiceIdmodel/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(MiniMax 볼륨, 0-10)pitch(MiniMax 정수 피치, -12~12. 소수 값은 잘립니다)emotion(Volcengine 감정 태그)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
슬래시 명령
단일 명령/tts. Discord에서는 /tts가 기본 제공 Discord 명령이므로 OpenClaw가
/voice도 등록합니다. 텍스트 /tts ...는 여전히 동작합니다.
명령에는 승인된 발신자(allowlist/owner 규칙 적용)가 필요하며,
commands.text 또는 네이티브 명령 등록이 활성화되어 있어야 합니다./tts on은 로컬 TTS 기본 설정을always로 씁니다./tts off는 이를off로 씁니다./tts chat on|off|default는 현재 채팅에 대해 세션 범위 자동 TTS 재정의를 씁니다./tts persona <id>는 로컬 페르소나 기본 설정을 씁니다./tts persona off는 이를 지웁니다./tts latest는 현재 세션 transcript에서 최신 어시스턴트 응답을 읽고 한 번 오디오로 전송합니다. 중복 음성 전송을 억제하기 위해 해당 응답의 해시만 세션 항목에 저장합니다./tts audio는 일회성 오디오 응답을 생성합니다(TTS를 켜지 않음).limit및summary는 기본 config가 아니라 로컬 기본 설정에 저장됩니다./tts status에는 최신 시도에 대한 fallback 진단이 포함됩니다.Fallback: <primary> -> <used>,Attempts: ..., 그리고 시도별 세부 정보(provider:outcome(reasonCode) latency)입니다./status는 TTS가 활성화된 경우 활성 TTS 모드와 구성된 provider, 모델, 음성, 삭제 처리된 사용자 지정 엔드포인트 메타데이터를 표시합니다.
사용자별 기본 설정
슬래시 명령은 로컬 재정의를prefsPath에 씁니다. 기본값은
~/.openclaw/settings/tts.json입니다. OPENCLAW_TTS_PREFS env var 또는
messages.tts.prefsPath로 재정의하세요.
| 저장된 필드 | 효과 |
|---|---|
auto | 로컬 자동 TTS 재정의(always, off, …) |
provider | 로컬 기본 provider 재정의 |
persona | 로컬 페르소나 재정의 |
maxLength | 요약 임계값(기본값 1500자) |
summarize | 요약 토글(기본값 true) |
messages.tts와 활성 agents.list[].tts 블록에서
계산된 유효 config를 재정의합니다.
출력 형식(고정)
TTS 음성 전달은 채널 capability에 의해 결정됩니다. 채널 Plugin은 음성 스타일 TTS가 provider에 네이티브voice-note 대상을 요청해야 하는지,
아니면 일반 audio-file 합성을 유지하고 호환되는 출력만 음성 전달로 표시해야 하는지를
광고합니다.
- 음성 메모 지원 채널: 음성 메모 응답은 Opus(ElevenLabs의
opus_48000_64, OpenAI의opus)를 우선합니다.- 48kHz / 64kbps는 음성 메시지에 적절한 절충점입니다.
- Feishu / WhatsApp: 음성 메모 응답이 MP3/WebM/WAV/M4A
또는 그 밖의 오디오 파일로 보이는 형식으로 생성되면, 채널 Plugin은 네이티브 음성 메시지를 보내기 전에
ffmpeg로 이를 48kHz Ogg/Opus로 트랜스코딩합니다. WhatsApp은 결과를 Baileysaudio페이로드를 통해ptt: true및audio/ogg; codecs=opus로 전송합니다. 변환에 실패하면 Feishu는 원본 파일을 첨부 파일로 받습니다. WhatsApp 전송은 호환되지 않는 PTT 페이로드를 게시하는 대신 실패합니다. - 기타 채널: MP3(ElevenLabs의
mp3_44100_128, OpenAI의mp3).- 44.1kHz / 128kbps는 음성 명료도를 위한 기본 균형점입니다.
- MiniMax: 일반 오디오 첨부 파일에는 MP3(
speech-2.8-hd모델, 32kHz 샘플 레이트)를 사용합니다. 채널이 알린 음성 메모 대상의 경우, 채널이 트랜스코딩을 알리면 OpenClaw는 전달 전에ffmpeg로 MiniMax MP3를 48kHz Opus로 트랜스코딩합니다. - Xiaomi MiMo: 기본적으로 MP3를 사용하거나, 설정된 경우 WAV를 사용합니다. 채널이 알린 음성 메모 대상의 경우, 채널이 트랜스코딩을 알리면 OpenClaw는 전달 전에
ffmpeg로 Xiaomi 출력을 48kHz Opus로 트랜스코딩합니다. - 로컬 CLI: 설정된
outputFormat을 사용합니다. 음성 메모 대상은 Ogg/Opus로 변환되고, 전화 통신 출력은ffmpeg로 원시 16 kHz 모노 PCM으로 변환됩니다. - Google Gemini: Gemini API TTS는 원시 24kHz PCM을 반환합니다. OpenClaw는 이를 오디오 첨부 파일용 WAV로 감싸고, 음성 메모 대상용 48kHz Opus로 트랜스코딩하며, Talk/전화 통신에는 PCM을 직접 반환합니다.
- Gradium: 오디오 첨부 파일에는 WAV, 음성 메모 대상에는 Opus, 전화 통신에는 8 kHz의
ulaw_8000을 사용합니다. - Inworld: 일반 오디오 첨부 파일에는 MP3, 음성 메모 대상에는 네이티브
OGG_OPUS, Talk/전화 통신에는 22050 Hz의 원시PCM을 사용합니다. - xAI: 기본적으로 MP3를 사용하며,
responseFormat은mp3,wav,pcm,mulaw또는alaw일 수 있습니다. OpenClaw는 xAI의 배치 REST TTS 엔드포인트를 사용하고 완전한 오디오 첨부 파일을 반환합니다. 이 provider 경로에서는 xAI의 스트리밍 TTS WebSocket을 사용하지 않습니다. 이 경로는 네이티브 Opus 음성 메모 형식을 지원하지 않습니다. - Microsoft:
microsoft.outputFormat을 사용합니다(기본값audio-24khz-48kbitrate-mono-mp3).- 번들 transport는
outputFormat을 허용하지만, 서비스에서 모든 형식을 사용할 수 있는 것은 아닙니다. - 출력 형식 값은 Microsoft Speech 출력 형식(Ogg/WebM Opus 포함)을 따릅니다.
- Telegram
sendVoice는 OGG/MP3/M4A를 허용합니다. 보장된 Opus 음성 메시지가 필요하면 OpenAI/ElevenLabs를 사용하세요. - 설정된 Microsoft 출력 형식이 실패하면 OpenClaw는 MP3로 재시도합니다.
- 번들 transport는
Auto-TTS 동작
messages.tts.auto가 활성화되면 OpenClaw는 다음을 수행합니다.
- 응답에 이미 미디어 또는
MEDIA:지시문이 포함되어 있으면 TTS를 건너뜁니다. - 매우 짧은 응답(10자 미만)을 건너뜁니다.
- 요약이 활성화된 경우
summaryModel(또는agents.defaults.model.primary)을 사용하여 긴 응답을 요약합니다. - 생성된 오디오를 응답에 첨부합니다.
mode: "final"에서는 텍스트 스트림이 완료된 뒤에도 스트리밍된 최종 응답에 대해 오디오 전용 TTS를 보냅니다. 생성된 미디어는 일반 응답 첨부 파일과 동일한 채널 미디어 정규화를 거칩니다.
maxLength를 초과하고 요약이 꺼져 있거나(또는 요약 모델용 API 키가 없는 경우)
오디오는 건너뛰고 일반 텍스트 응답이 전송됩니다.
채널별 출력 형식
| 대상 | 형식 |
|---|---|
| Feishu / Matrix / Telegram / WhatsApp | 음성 메모 응답은 Opus(ElevenLabs의 opus_48000_64, OpenAI의 opus)를 우선합니다. 48 kHz / 64 kbps는 명료도와 크기의 균형을 맞춥니다. |
| 기타 채널 | MP3(ElevenLabs의 mp3_44100_128, OpenAI의 mp3). 44.1 kHz / 128 kbps는 음성용 기본값입니다. |
| Talk / 전화 통신 | provider 네이티브 PCM(Inworld 22050 Hz, Google 24 kHz) 또는 전화 통신용 Gradium의 ulaw_8000. |
- Feishu / WhatsApp 트랜스코딩: 음성 메모 응답이 MP3/WebM/WAV/M4A로 도착하면, 채널 Plugin은
ffmpeg로 48 kHz Ogg/Opus로 트랜스코딩합니다. WhatsApp은 Baileys를 통해ptt: true및audio/ogg; codecs=opus로 전송합니다. 변환에 실패하면 Feishu는 원본 파일 첨부로 폴백하고, WhatsApp 전송은 호환되지 않는 PTT 페이로드를 게시하는 대신 실패합니다. - MiniMax / Xiaomi MiMo: 기본값은 MP3(MiniMax
speech-2.8-hd의 경우 32 kHz)이며,ffmpeg를 통해 음성 메모 대상용 48 kHz Opus로 트랜스코딩됩니다. - 로컬 CLI: 설정된
outputFormat을 사용합니다. 음성 메모 대상은 Ogg/Opus로 변환되고, 전화 통신 출력은 원시 16 kHz 모노 PCM으로 변환됩니다. - Google Gemini: 원시 24 kHz PCM을 반환합니다. OpenClaw는 첨부 파일용 WAV로 감싸고, 음성 메모 대상용 48 kHz Opus로 트랜스코딩하며, Talk/전화 통신에는 PCM을 직접 반환합니다.
- Inworld: MP3 첨부 파일, 네이티브
OGG_OPUS음성 메모, Talk/전화 통신용 원시PCM22050 Hz를 사용합니다. - xAI: 기본적으로 MP3를 사용하며,
responseFormat은mp3|wav|pcm|mulaw|alaw일 수 있습니다. xAI의 배치 REST 엔드포인트를 사용하며, 스트리밍 WebSocket TTS는 사용하지 않습니다. 네이티브 Opus 음성 메모 형식은 지원되지 않습니다. - Microsoft:
microsoft.outputFormat을 사용합니다(기본값audio-24khz-48kbitrate-mono-mp3). TelegramsendVoice는 OGG/MP3/M4A를 허용합니다. 보장된 Opus 음성 메시지가 필요하면 OpenAI/ElevenLabs를 사용하세요. 설정된 Microsoft 형식이 실패하면 OpenClaw는 MP3로 재시도합니다.
필드 참조
Top-level messages.tts.*
Top-level messages.tts.*
Auto-TTS 모드입니다.
inbound는 인바운드 음성 메시지 이후에만 오디오를 보내고, tagged는 응답에 [[tts:...]] 지시문 또는 [[tts:text]] 블록이 포함된 경우에만 오디오를 보냅니다.레거시 토글입니다.
openclaw doctor --fix는 이를 auto로 마이그레이션합니다."all"은 최종 응답 외에도 도구/블록 응답을 포함합니다.음성 provider id입니다. 설정되지 않으면 OpenClaw는 registry 자동 선택 순서에서 처음 설정된 provider를 사용합니다. 레거시
provider: "edge"는 openclaw doctor --fix에 의해 "microsoft"로 다시 작성됩니다.personas의 활성 persona id입니다. 소문자로 정규화됩니다.안정적인 발화 정체성입니다. 필드:
label, description, provider, fallbackPolicy, prompt, providers.<provider>. Personas를 참조하세요.자동 요약용 저비용 모델입니다. 기본값은
agents.defaults.model.primary입니다. provider/model 또는 설정된 모델 alias를 허용합니다.모델이 TTS 지시문을 내보내도록 허용합니다.
enabled의 기본값은 true이고, allowProvider의 기본값은 false입니다.음성 provider id를 키로 하는 provider 소유 설정입니다. 레거시 직접 블록(
messages.tts.openai, .elevenlabs, .microsoft, .edge)은 openclaw doctor --fix에 의해 다시 작성됩니다. messages.tts.providers.<id>만 커밋하세요.TTS 입력 문자에 대한 하드 한도입니다. 초과하면
/tts audio가 실패합니다.요청 제한 시간(밀리초)입니다.
로컬 prefs JSON 경로(provider/limit/summary)를 재정의합니다. 기본값은
~/.openclaw/settings/tts.json입니다.Azure Speech
Azure Speech
Env:
AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY 또는 SPEECH_KEY.Azure Speech region입니다(예:
eastus). Env: AZURE_SPEECH_REGION 또는 SPEECH_REGION.선택적 Azure Speech endpoint 재정의입니다(alias
baseUrl).Azure voice ShortName입니다. 기본값은
en-US-JennyNeural입니다.SSML language code입니다. 기본값은
en-US입니다.표준 오디오용 Azure
X-Microsoft-OutputFormat입니다. 기본값은 audio-24khz-48kbitrate-mono-mp3입니다.음성 메모 출력용 Azure
X-Microsoft-OutputFormat입니다. 기본값은 ogg-24khz-16bit-mono-opus입니다.ElevenLabs
ElevenLabs
ELEVENLABS_API_KEY 또는 XI_API_KEY로 폴백합니다.Model id입니다(예:
eleven_multilingual_v2, eleven_v3).ElevenLabs voice id입니다.
stability, similarityBoost, style(각각 0..1), useSpeakerBoost(true|false), speed(0.5..2.0, 1.0 = 보통).텍스트 정규화 모드입니다.
2글자 ISO 639-1입니다(예:
en, de).최선의 결정성을 위한 정수
0..4294967295입니다.ElevenLabs API base URL을 재정의합니다.
Google Gemini
Google Gemini
GEMINI_API_KEY / GOOGLE_API_KEY로 폴백합니다. 생략하면 TTS는 env 폴백 전에 models.providers.google.apiKey를 재사용할 수 있습니다.Gemini TTS 모델입니다. 기본값은
gemini-3.1-flash-tts-preview입니다.Gemini 사전 빌드 voice name입니다. 기본값은
Kore입니다. Alias: voice.발화 텍스트 앞에 추가되는 자연어 스타일 prompt입니다.
prompt가 이름이 지정된 speaker를 사용할 때 발화 텍스트 앞에 추가되는 선택적 speaker label입니다.
활성 persona prompt 필드를 결정적인 Gemini TTS prompt 구조로 감싸려면
audio-profile-v1로 설정합니다.템플릿의 Director’s Notes에 추가되는 Google 전용 추가 persona prompt 텍스트입니다.
https://generativelanguage.googleapis.com만 허용됩니다.Gradium
Gradium
Inworld
Inworld
로컬 CLI (tts-local-cli)
로컬 CLI (tts-local-cli)
CLI TTS용 로컬 실행 파일 또는 명령 문자열입니다.
명령 인수입니다.
{{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}} 플레이스홀더를 지원합니다.예상 CLI 출력 형식입니다. 오디오 첨부 파일의 기본값은
mp3입니다.명령 제한 시간(밀리초)입니다. 기본값은
120000입니다.선택적 명령 작업 디렉터리입니다.
명령에 대한 선택적 환경 재정의입니다.
Microsoft (API 키 없음)
Microsoft (API 키 없음)
Microsoft 음성 사용을 허용합니다.
Microsoft neural voice 이름입니다(예:
en-US-MichelleNeural).언어 코드입니다(예:
en-US).Microsoft 출력 형식입니다. 기본값은
audio-24khz-48kbitrate-mono-mp3입니다. 번들된 Edge 기반 전송이 모든 형식을 지원하지는 않습니다.퍼센트 문자열입니다(예:
+10%, -5%).오디오 파일과 함께 JSON 자막을 작성합니다.
Microsoft 음성 요청용 프록시 URL입니다.
요청 제한 시간 재정의(ms)입니다.
레거시 별칭입니다.
openclaw doctor --fix를 실행하여 저장된 구성을 providers.microsoft로 다시 작성하세요.MiniMax
MiniMax
MINIMAX_API_KEY로 폴백합니다. Token Plan 인증은 MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY 또는 MINIMAX_CODING_API_KEY를 통해 수행합니다.기본값은
https://api.minimax.io입니다. 환경: MINIMAX_API_HOST.기본값은
speech-2.8-hd입니다. 환경: MINIMAX_TTS_MODEL.기본값은
English_expressive_narrator입니다. 환경: MINIMAX_TTS_VOICE_ID.0.5..2.0. 기본값은 1.0입니다.(0, 10]. 기본값은 1.0입니다.정수
-12..12. 기본값은 0입니다. 소수 값은 요청 전에 버림 처리됩니다.OpenAI
OpenAI
OPENAI_API_KEY로 폴백합니다.OpenAI TTS 모델 ID입니다(예:
gpt-4o-mini-tts).음성 이름입니다(예:
alloy, cedar).명시적 OpenAI
instructions 필드입니다. 설정되면 페르소나 프롬프트 필드는 자동 매핑되지 않습니다.생성된 OpenAI TTS 필드 뒤에
/audio/speech 요청 본문으로 병합되는 추가 JSON 필드입니다. lang 같은 공급자별 키가 필요한 Kokoro와 같은 OpenAI 호환 엔드포인트에 사용하세요. 안전하지 않은 프로토타입 키는 무시됩니다.OpenAI TTS 엔드포인트를 재정의합니다. 확인 순서: 구성 →
OPENAI_TTS_BASE_URL → https://api.openai.com/v1. 기본값이 아닌 값은 OpenAI 호환 TTS 엔드포인트로 처리되므로 사용자 지정 모델 및 음성 이름이 허용됩니다.OpenRouter
OpenRouter
환경:
OPENROUTER_API_KEY. models.providers.openrouter.apiKey를 재사용할 수 있습니다.기본값은
https://openrouter.ai/api/v1입니다. 레거시 https://openrouter.ai/v1은 정규화됩니다.기본값은
hexgrad/kokoro-82m입니다. 별칭: modelId.기본값은
af_alloy입니다. 별칭: voiceId.기본값은
mp3입니다.공급자 네이티브 속도 재정의입니다.
Volcengine (BytePlus Seed Speech)
Volcengine (BytePlus Seed Speech)
환경:
VOLCENGINE_TTS_API_KEY 또는 BYTEPLUS_SEED_SPEECH_API_KEY.기본값은
seed-tts-1.0입니다. 환경: VOLCENGINE_TTS_RESOURCE_ID. 프로젝트에 TTS 2.0 권한이 있을 때 seed-tts-2.0을 사용하세요.앱 키 헤더입니다. 기본값은
aGjiRDfUWi입니다. 환경: VOLCENGINE_TTS_APP_KEY.Seed Speech TTS HTTP 엔드포인트를 재정의합니다. 환경:
VOLCENGINE_TTS_BASE_URL.음성 유형입니다. 기본값은
en_female_anna_mars_bigtts입니다. 환경: VOLCENGINE_TTS_VOICE.공급자 네이티브 속도 비율입니다.
공급자 네이티브 감정 태그입니다.
레거시 Volcengine Speech Console 필드입니다. 환경:
VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER(기본값 volcano_tts).xAI
xAI
환경:
XAI_API_KEY.기본값은
https://api.x.ai/v1입니다. 환경: XAI_BASE_URL.기본값은
eve입니다. 라이브 음성: ara, eve, leo, rex, sal, una.BCP-47 언어 코드 또는
auto입니다. 기본값은 en입니다.기본값은
mp3입니다.공급자 네이티브 속도 재정의입니다.
Xiaomi MiMo
Xiaomi MiMo
환경:
XIAOMI_API_KEY.기본값은
https://api.xiaomimimo.com/v1입니다. 환경: XIAOMI_BASE_URL.기본값은
mimo-v2.5-tts입니다. 환경: XIAOMI_TTS_MODEL. mimo-v2-tts도 지원합니다.기본값은
mimo_default입니다. 환경: XIAOMI_TTS_VOICE.기본값은
mp3입니다. 환경: XIAOMI_TTS_FORMAT.사용자 메시지로 전송되는 선택적 자연어 스타일 지시문입니다. 음성으로 말해지지는 않습니다.
에이전트 도구
tts 도구는 텍스트를 음성으로 변환하고 응답 전달을 위한 오디오 첨부 파일을 반환합니다. Feishu, Matrix, Telegram, WhatsApp에서는 오디오가 파일 첨부가 아니라 음성 메시지로 전달됩니다. 이 경로에서 ffmpeg를 사용할 수 있으면 Feishu와 WhatsApp은 Opus가 아닌 TTS 출력을 트랜스코딩할 수 있습니다.
WhatsApp은 Baileys를 통해 오디오를 PTT 음성 노트(ptt: true가 포함된 audio)로 보내며, 클라이언트가 음성 노트의 캡션을 일관되게 렌더링하지 않기 때문에 표시되는 텍스트는 PTT 오디오와 별도로 보냅니다.
이 도구는 선택적 channel 및 timeoutMs 필드를 허용합니다. timeoutMs는 호출별 공급자 요청 제한 시간(밀리초)입니다.
Gateway RPC
| 메서드 | 목적 |
|---|---|
tts.status | 현재 TTS 상태와 마지막 시도를 읽습니다. |
tts.enable | 로컬 자동 환경설정을 always로 설정합니다. |
tts.disable | 로컬 자동 환경설정을 off로 설정합니다. |
tts.convert | 일회성 텍스트 → 오디오 변환입니다. |
tts.setProvider | 로컬 공급자 환경설정을 설정합니다. |
tts.setPersona | 로컬 페르소나 환경설정을 설정합니다. |
tts.providers | 구성된 공급자와 상태를 나열합니다. |
서비스 링크
- OpenAI 텍스트 음성 변환 가이드
- OpenAI Audio API 참조
- Azure Speech REST 텍스트 음성 변환
- Azure Speech 공급자
- ElevenLabs 텍스트 음성 변환
- ElevenLabs 인증
- Gradium
- Inworld TTS API
- MiniMax T2A v2 API
- Volcengine TTS HTTP API
- Xiaomi MiMo 음성 합성
- node-edge-tts
- Microsoft Speech 출력 형식
- xAI 텍스트 음성 변환