일본어 텍스트 음성 변환(TTS): 언어를 ja로 지정하기
일본어 TTS는 가나와 한자로 쓴 대본을 보내고 언어를 ja로 지정하세요. 언어를 빼면 Sume가 한자로만 된 문장을 영어로 읽을 수 있습니다.

일본어 텍스트를 음성으로 변환하려면 대본을 일본어 문자(가나와 한자)로 쓰고, 언어를 일본어(ja)로 명시해 영어 규칙이 아니라 일본어로 읽히게 하세요. Sume API에서는 일본어 transcript, 음성, language: "ja"를 담은 POST /v1/tts-1.0/generate 요청 하나면 됩니다. 언어를 빼면 Sume는 가나만 보고 일본어를 추측하므로, 한자로만 쓰거나 로마자로 쓴 문장에는 영어 기본값이 적용됩니다.
요청 필드는 2026-09-28에 확인한 Sume API 레퍼런스의 TTS 스키마에서 가져왔습니다. 이 레퍼런스는 API 레퍼런스 문서의 바탕이 되는 OpenAPI 문서입니다. 현재 동작이라고 설명한 검사는 Sume의 코드에서, 가격은 API 요금 페이지를 만드는 코드에서 확인했습니다. 요청의 나머지 부분은 다른 언어와 똑같이 동작하며(텍스트 음성 변환(TTS) API), 한국어에는 별도의 검사가 있습니다(한국어 TTS API).
일본어 TTS 요청은 어떻게 보내나요?
대본은 읽혀야 하는 그대로 가나와 한자로 transcript에 넣고, language: "ja"를 더하세요. 음성은 다른 언어와 똑같이 준비된 아바타의 avatar_handle이나 이미 가진 voice.id로 고르며, 완료된 Job은 Sume에 호스팅된 오디오 파일을 반환합니다. 기본 형식은 MP3입니다.
curl -X POST https://api.sume.com/v1/tts-1.0/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: tts-ja-welcome-001" \
-d '{
"transcript": "新しいマグカップです。本日発売。",
"voice": { "id": "voi_0123456789abcdef0123456789abcdef" },
"language": "ja"
}'언어를 빼면 어떻게 되나요?
language를 생략하면 공급사 기본값인 영어가 쓰입니다. 스키마에 따르면 Sume는 가나로만 된 대본에서 보조 수단으로만 ja를 추론합니다. 현재 코드에서 이 보조 추론은 가나(히라가나와 가타카나)의 수를 한글, 라틴 문자의 수와 비교해, 가나가 둘 다보다 많을 때 ja를 반환합니다. 한자는 전혀 세지 않습니다.
| 대본 | 보낸 `language` | 사용되는 언어 |
|---|---|---|
| 新しいマグカップです。 | ja | 일본어(보낸 그대로). |
| 新しいマグカップです。 | 생략 | ja로 추론. 가나 9자, 라틴 문자 없음. |
| 新製品を発売 | 생략 | ja로 추론. 다른 문자가 하나도 세어지지 않으면 가나 1자(を)로 충분함. |
| 本日発売 | 생략 | 영어. 모두 한자라서 아무것도 추론되지 않음. |
| Sumeで音声を作る | 생략 | 영어. 가나 3자 대 라틴 문자 4자. |
| konnichiwa | 생략 | 영어. 로마자에는 가나가 없음. |
일본어 문자 대신 로마자를 보내도 되나요?
API가 거부하지는 않지만, 제대로 읽힐 거라고 기대하지는 마세요. 현재 코드에서 Job 전에 문자 체계를 검사하는 언어는 한국어뿐입니다. language: "ko"인데 한글 음절이 하나도 없으면 400 tts_language_script_mismatch로 실패합니다. 일본어 텍스트를 ja와 대조하는 검사는 없으며, ja와 함께 보낸 로마자를 어떻게 읽는지도 문서에 나와 있지 않습니다. ja가 없으면 로마자에는 가나가 없으므로 영어로 읽힙니다. 대본은 가나와 한자로 쓰세요.
일본어는 어떤 음성으로 읽어야 하나요?
일본어로 녹음된 음성입니다. API 레퍼런스에는 일본어 음성 목록이 공개되어 있지 않습니다. 현재 코드에서는 Sume의 Voices 라이브러리에 있는 음성마다 16개 언어 중 하나가 기록되며, ja도 그중 하나입니다. 라이브러리 음성의 언어가 요청의 언어와 다르면, TTS 발음 교정에서 설명하듯 Job이나 요금이 생기기 전에 제출이 409 tts_voice_language_mismatch 재확인 단계에서 멈춥니다.
- 일본어에서 주의할 점:
language를 생략하면 현재 코드는 추론하지 못한 문장을 영어로 보고 검사하므로, 일본어 라이브러리 음성으로 한자로만 된 문장을 읽게 하면 이 재확인 단계에서 멈춥니다.ja를 보내면 이를 피할 수 있습니다. - 현재 코드에서는 라이브러리 밖의 음성은 검사하지 않으며, 아바타 자체의 음성은 언어가 영어로 설정된 채 클론됩니다. 긴 대본을 보내기 전에 짧은 일본어 문장 하나를 먼저 들어 보세요.
일본어 TTS 요금은 어떻게 매겨지나요?
일본어에만 적용되는 요율은 따로 없습니다. 텍스트 음성 변환 요금은 1,000자당 $0.0475이며, 기본적으로 5.5% 에이전트 수수료가 더해지고, 공백과 문장 부호를 포함한 대본 글자 수로 계산합니다. 현재 코드에서 글자 수는 대본의 길이이며, あ 같은 가나나 東 같은 한자 하나가 한 글자입니다. 요청 하나는 최대 20,000자를 받습니다.
Sume TTS가 일본어에 해 주지 않는 것은 무엇인가요?
출처
관련 글
모델 카테고리의 다른 글
- 영상 애니메이션 변환 AI: 클립을 애니메이션으로 바꾸는 법
AI로 영상을 애니메이션으로 바꾸려면 스타일과 유지할 부분을 적은 video-to-video 편집을 쓰거나, 프레임 하나의 스타일을 바꾼 뒤 움직이세요.
- OpenRouter 호환 영상 생성 API: sume/auto 또는 고정 모델
Sume의 POST /v1/videos는 OpenRouter 영상 생성 API를 필드 단위로 따릅니다. sume/auto가 모델을 고르게 하거나 seedance-2.5 같은 카탈로그 ID로 고정하세요.
- 레퍼런스 이미지 기반 이미지 생성 API: POST /v1/images
Sume의 POST /v1/images에 프롬프트와 공개 HTTPS 레퍼런스 이미지를 보내세요. 카탈로그 모델을 고정하거나 sume/auto를 보내면 되고, 모델별 한도는 카탈로그에 나와 있습니다.
- Video 1.0·Image 1.0 곧 은퇴: sume/auto로 옮기기
Sume Video 1.0과 Image 1.0은 곧 은퇴하며, 이미 Auto 경로의 별칭으로 동작합니다. 새 연동은 sume/auto로 /v1/videos나 /v1/images를 호출합니다.
작성자 Sume