Skip to main content
Glama

TTS 작업 접수

tts_jobs_create

한국어 TTS를 접수합니다. 기본 정규화 스킬이 발음을 다듬으며 추가 요금이 합산됩니다. normalize_text=false로 끌 수 있습니다. 완료 후 MP3와 원문 ASS를 공통 API로 받습니다. 서버·공급자 최종 실패 시 정규화까지 전액 환불하고, 연결 종료는 정상 과금합니다. [실제 토큰 원가×환율×1.4(작업당 기본요금 5P, 2026-11-06부터 · 소수점 올림) + 기본 on 정규화 스킬 요금]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paceNo말 속도 배율 0.5~2.0. 1이 기본
textNo합성할 한국어 텍스트. utterances와 둘 중 하나
toneNo용도·톤. 생략 시 기본
pitchNo음높이 -12~12 반음. 0이 기본
styleNo자유 서술 낭독 스타일
accentNo억양. 생략 시 표준어
emotionNo감정 표현. 생략 시 기본
speakersNo화자 이름 → {voice_id, style, emotion, tone, accent, pace, pitch, volume_gain_db}
voice_idNoGemini 목소리 ID. 기본 Kore. tts_gemini_voices에서 기본·확장 목록 조회
utterancesNo발화 목록. text와 둘 중 하나
multi_speakerNo멀티화자. Gemini는 화자 2명까지 한 호출, ChatGPT는 발화별 목소리 대화
normalize_textNo기본 true. 정규화 스킬 비용 합산, false는 실행·과금 생략
volume_gain_dbNo음량 보정 -12~12 dB. 0이 기본
idempotency_keyNo접수 응답 유실 시 같은 요청에 재사용할 키

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / style
      Added value: +{
      +  "description": "자유 서술 낭독 스타일",
      +  "maxLength": 1000,
      +  "type": "string"
      +}
    • changedInput schema / properties / voice_id / description
      Previous value: -"지원 voice_id"New value: +"Gemini 목소리 ID. 기본 Kore. tts_gemini_voices에서 기본·확장 목록 조회"
    • removedInput schema / properties / voice_id / enum
      Removed value: -[
      -  "Zephyr",
      -  "Autonoe",
      -  "Puck",
      -  "Laomedeia",
      -  "Charon",
      -  "Rasalgethi",
      -  "Kore",
      -  "Orus",
      -  "Alnilam",
      -  "Fenrir",
      -  "Leda",
      -  "Aoede",
      -  "Callirrhoe",
      -  "Umbriel",
      -  "Enceladus",
      -  "Iapetus",
      -  "Erinome",
      -  "Algieba",
      -  "Despina",
      -  "Algenib",
      -  "Achernar",
      -  "Schedar",
      -  "Gacrux",
      -  "Pulcherrima",
      -  "Achird",
      -  "Zubenelgenubi",
      -  "Vindemiatrix",
      -  "Sadachbia",
      -  "Sadaltager",
      -  "Sulafat",
      -  "alloy",
      -  "ash",
      -  "ballad",
      -  "coral",
      -  "echo",
      -  "fable",
      -  "onyx",
      -  "nova",
      -  "sage",
      -  "shimmer",
      -  "verse"
      -]
    • addedInput schema / properties / voice_id / maxLength
      Added value: +160
    • removedInput schema / required
      Removed value: -[
      -  "voice_id"
      -]
  2. Changed12 schema fields changed
    • addedInput schema / properties / accent
      Added value: +{
      +  "description": "억양. 생략 시 표준어",
      +  "enum": [
      +    "standard",
      +    "seoul",
      +    "gyeongsang",
      +    "jeolla",
      +    "chungcheong"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / emotion
      Added value: +{
      +  "description": "감정 표현. 생략 시 기본",
      +  "enum": [
      +    "neutral",
      +    "calm",
      +    "cheerful",
      +    "excited",
      +    "sad",
      +    "serious",
      +    "friendly",
      +    "empathetic",
      +    "confident",
      +    "gentle",
      +    "whisper",
      +    "narration"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / fallback_options
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "전환할 때만 적용하는 voice_id, style",
      -  "propertyNames": {
      -    "type": "string"
      -  },
      -  "type": "object"
      -}
    • removedInput schema / properties / fallback_policy
      Removed value: -{
      -  "description": "기본 never. queue_full=대기열 포화, busy=즉시 실행 불가 시 Gemini 전환",
      -  "enum": [
      -    "never",
      -    "queue_full",
      -    "busy"
      -  ],
      -  "type": "string"
      -}
    • addedInput schema / properties / multi_speaker
      Added value: +{
      +  "description": "멀티화자. Gemini는 화자 2명까지 한 호출, ChatGPT는 발화별 목소리 대화",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / pace
      Added value: +{
      +  "description": "말 속도 배율 0.5~2.0. 1이 기본",
      +  "type": "number"
      +}
    • addedInput schema / properties / pitch
      Added value: +{
      +  "description": "음높이 -12~12 반음. 0이 기본",
      +  "type": "number"
      +}
    • addedInput schema / properties / speakers
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "화자 이름 → {voice_id, style, emotion, tone, accent, pace, pitch, volume_gain_db}",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / text / maxLength
      Previous value: -800New value: +8000
    • addedInput schema / properties / tone
      Added value: +{
      +  "description": "용도·톤. 생략 시 기본",
      +  "enum": [
      +    "narration",
      +    "news",
      +    "audiobook",
      +    "documentary",
      +    "ad",
      +    "conversation",
      +    "announcement",
      +    "tutorial",
      +    "storytelling"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / voice_id / enum
      Previous value: -[
      -  "v2_ann_m_30s_01",
      -  "v2_ann_m_30s_02",
      -  "v2_ann_m_30s_04",
      -  "v2_ann_m_30s_05",
      -  "v2_ann_f_30s_02",
      -  "v2_ann_f_30s_03",
      -  "v2_ann_f_30s_04",
      -  "v2_ann_f_30s_05",
      -  "v2_m_teen_01",
      -  "v2_m_young_01",
      -  "v2_m_mid_01",
      -  "v2_m_senior_01",
      -  "v2_f_young_01",
      -  "v2_f_senior_01"
      -]New value: +[
      +  "Zephyr",
      +  "Autonoe",
      +  "Puck",
      +  "Laomedeia",
      +  "Charon",
      +  "Rasalgethi",
      +  "Kore",
      +  "Orus",
      +  "Alnilam",
      +  "Fenrir",
      +  "Leda",
      +  "Aoede",
      +  "Callirrhoe",
      +  "Umbriel",
      +  "Enceladus",
      +  "Iapetus",
      +  "Erinome",
      +  "Algieba",
      +  "Despina",
      +  "Algenib",
      +  "Achernar",
      +  "Schedar",
      +  "Gacrux",
      +  "Pulcherrima",
      +  "Achird",
      +  "Zubenelgenubi",
      +  "Vindemiatrix",
      +  "Sadachbia",
      +  "Sadaltager",
      +  "Sulafat",
      +  "alloy",
      +  "ash",
      +  "ballad",
      +  "coral",
      +  "echo",
      +  "fable",
      +  "onyx",
      +  "nova",
      +  "sage",
      +  "shimmer",
      +  "verse"
      +]
    • addedInput schema / properties / volume_gain_db
      Added value: +{
      +  "description": "음량 보정 -12~12 dB. 0이 기본",
      +  "type": "number"
      +}
  3. Changed7 schema fields changed
    • addedInput schema / properties / fallback_options
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "전환할 때만 적용하는 voice_id, style",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / fallback_policy
      Added value: +{
      +  "description": "기본 never. queue_full=대기열 포화, busy=즉시 실행 불가 시 Gemini 전환",
      +  "enum": [
      +    "never",
      +    "queue_full",
      +    "busy"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / idempotency_key
      Added value: +{
      +  "description": "접수 응답 유실 시 같은 요청에 재사용할 키",
      +  "maxLength": 128,
      +  "pattern": "^[A-Za-z0-9_.:-]+$",
      +  "type": "string"
      +}
    • addedInput schema / properties / normalize_text
      Added value: +{
      +  "description": "기본 true. 정규화 스킬 비용 합산, false는 실행·과금 생략",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / text / description
      Previous value: -"합성할 한국어 텍스트 (최대 800자)"New value: +"합성할 한국어 텍스트. utterances와 둘 중 하나"
    • addedInput schema / properties / utterances
      Added value: +{
      +  "description": "발화 목록. text와 둘 중 하나",
      +  "items": {},
      +  "type": "array"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "voice_id",
      -  "text"
      -]New value: +[
      +  "voice_id"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / voice_id / enum
      Previous value: -[
      -  "v2_ann_m_30s_01",
      -  "v2_ann_m_30s_02",
      -  "v2_ann_m_30s_04",
      -  "v2_ann_m_30s_05",
      -  "v2_ann_f_30s_01",
      -  "v2_ann_f_30s_02",
      -  "v2_ann_f_30s_03",
      -  "v2_ann_f_30s_04",
      -  "v2_ann_f_30s_05",
      -  "v2_m_teen_01",
      -  "v2_m_young_01",
      -  "v2_m_mid_01",
      -  "v2_m_senior_01",
      -  "v2_f_teen_01",
      -  "v2_f_young_01",
      -  "v2_f_senior_01"
      -]New value: +[
      +  "v2_ann_m_30s_01",
      +  "v2_ann_m_30s_02",
      +  "v2_ann_m_30s_04",
      +  "v2_ann_m_30s_05",
      +  "v2_ann_f_30s_02",
      +  "v2_ann_f_30s_03",
      +  "v2_ann_f_30s_04",
      +  "v2_ann_f_30s_05",
      +  "v2_m_teen_01",
      +  "v2_m_young_01",
      +  "v2_m_mid_01",
      +  "v2_m_senior_01",
      +  "v2_f_young_01",
      +  "v2_f_senior_01"
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / voice_id / enum
      Previous value: -[
      -  "narrator_m_01",
      -  "narrator_m_02",
      -  "narrator_m_03",
      -  "narrator_m_04",
      -  "narrator_m_05",
      -  "narrator_f_10s_01",
      -  "narrator_f_10s_02",
      -  "narrator_f_10s_03",
      -  "narrator_m_20s_01",
      -  "narrator_f_20s_01",
      -  "narrator_f_20s_02",
      -  "narrator_f_20s_03",
      -  "narrator_f_20s_04",
      -  "narrator_m_30s_01",
      -  "narrator_m_30s_02",
      -  "narrator_m_40s_01",
      -  "narrator_m_80s_01"
      -]New value: +[
      +  "v2_ann_m_30s_01",
      +  "v2_ann_m_30s_02",
      +  "v2_ann_m_30s_04",
      +  "v2_ann_m_30s_05",
      +  "v2_ann_f_30s_01",
      +  "v2_ann_f_30s_02",
      +  "v2_ann_f_30s_03",
      +  "v2_ann_f_30s_04",
      +  "v2_ann_f_30s_05",
      +  "v2_m_teen_01",
      +  "v2_m_young_01",
      +  "v2_m_mid_01",
      +  "v2_m_senior_01",
      +  "v2_f_teen_01",
      +  "v2_f_young_01",
      +  "v2_f_senior_01"
      +]
  6. First observed

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, so mutation is known; the description goes further with genuinely useful behavior: default-on normalization that adds cost, full refund on server/provider failure, connection termination billed normally, and the output artifacts (MP3 + original ASS). This is well beyond what the annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and cost behavior are front-loaded in the first sentences. The bracketed pricing formula is dense but arguably earns its place since it is billing-relevant and not captured elsewhere. Slightly heavy overall but no dead sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, zero-required, async creation tool with no output schema, the description usefully discloses the return artifacts and refund/billing rules. It stops short of explaining how the resulting job is tracked (e.g., via tts_jobs_status/tts_jobs_result) or whether a job id is returned, which would complete the picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantic value beyond the schema: normalize_text=false skips both execution and billing, and voice_id defaults to 'Kore' with a pointer to tts_gemini_voices for listing. The pricing formula also explains cost-driving parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (submit Korean TTS job) and covers scope details like normalization and delivery format. However it never distinguishes this tool from the sibling creation tools tts_gemini_create and tts_openai_create, leaving the agent to infer which one to call for a given provider.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that normalize_text can be turned off and what happens on failure, but gives no explicit when-to-use guidance relative to the other TTS creation tools. With three near-identical create siblings, the absence of routing guidance is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.