일본어 텍스트 음성 변환(TTS): 언어를 ja로 지정하기

일본어 TTS는 가나와 한자로 쓴 대본을 보내고 언어를 ja로 지정하세요. 언어를 빼면 Sume가 한자로만 된 문장을 영어로 읽을 수 있습니다.

읽는 시간 5분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를 반환합니다. 한자는 전혀 세지 않습니다.

예시 대본에 쓰이는 언어. Sume API 레퍼런스의 TTS 스키마와 Sume의 현재 코드 기준, 2026-09-28 확인.
대본보낸 `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가 일본어에 해 주지 않는 것은 무엇인가요?

  • 한자를 어떻게 읽을지나 피치 악센트를 제어하는 기능은 공개되어 있지 않습니다. pronunciation_dict_id는 받지만 사전을 만드는 방법은 문서화되어 있지 않습니다. 바꿀 수 있는 부분은 TTS 발음 교정에서 다룹니다.
  • 현재 코드에서 Avatar 1.0의 말하는 영상은 영어로만 말합니다. 얼굴에 일본어 음성을 입히려면 여기서 오디오를 만들고, 립싱크 API에서처럼 스틸 이미지를 그 오디오에 립싱크하세요.
  • 영상 캡션 문서는 라틴 문자와 한국어 문구용 스타일만 설명하므로, 일본어 자막을 영상에 입히는 것은 계획하지 마세요.

출처

관련 글

모델 카테고리의 다른 글

모델 글 전체 보기

작성자 Sume