언어 학습용 TTS: 느린 속도의 문장별 오디오 만들기

TTS로 언어 학습용 오디오를 만드세요. 목표 언어를 지정하고, 음성을 0.6×까지 늦추고, 단어별 타이밍과 함께 문장마다 클립을 하나씩 받습니다.

읽는 시간 5분Sume
전체 글

텍스트 음성 변환(TTS)으로 언어 학습용 오디오를 만들려면 지문마다 목표 언어로 합성하고, 학습자에게 필요하면 음성 속도를 늦추고, 듣기 연습이나 플래시카드에 쓰도록 오디오를 문장마다 클립 하나로 자르세요. Sume API에서는 POST /v1/tts-1.0/generate 요청 하나로 세 가지를 모두 처리합니다. language로 목표 언어를 정하고, generation_config.speed는 0.6까지 낮출 수 있으며, 문장 분할은 문장마다 WAV 클립과 단어별 타이밍을 반환합니다.

필드는 2026-09-27에 확인한 Sume API 레퍼런스의 TTS 스키마에서 가져왔습니다. 이 레퍼런스는 API 레퍼런스 문서의 바탕이 되는 OpenAPI 문서입니다. 현재 동작이라고 설명한 내용은 Sume의 코드에서, 가격은 API 요금 페이지를 만드는 코드에서 확인했습니다.

목표 언어는 어떻게 지정하나요?

영어가 아닌 지문에는 모두 language를 ko, ja, en 같은 BCP-47 / ISO-639 코드로 보내세요. 생략하면 공급사 기본값인 영어가 쓰입니다. Sume가 스스로 추론하는 언어는 한국어와 일본어뿐이며, 한글로만 된 대본이나 가나로만 된 대본에서 추론합니다. 현재 코드에서는 기록된 음성의 주 언어가 요청 언어와 다르면 confirm_language_mismatch: true로 다시 보낼 때까지 제출이 409 tts_voice_language_mismatch로 멈춥니다. 이 규칙은 한국어 TTS API와 다국어 TTS API에서 다룹니다.

음성 속도는 어떻게 늦추나요?

0.6에서 1.5 사이의 배수인 generation_config.speed를 설정하세요. 받을 수 있는 가장 낮은 값은 0.6입니다. 예전의 최상위 speed enum(slow, normal, fast)은 이 필드로 대체되어 지원 중단되었습니다. 같은 지문의 느린 버전과 보통 속도 버전은 요청 두 개이며, 각각 자기 글자 수로 과금됩니다.

문장마다 오디오 클립을 하나씩 받으려면 어떻게 하나요?

timestamps: { "words": true }와 segmentation: { "mode": "sentence" }를 추가하고, wav나 raw 컨테이너를 고르세요. 그러면 완료된 결과의 segments[]에 문장마다 항목이 하나씩 생기고, 각 항목에는 플래시카드나 연습 문장과 짝지을 수 있는, 샘플 단위까지 정확한 자체 audio_url이 붙습니다. 여기에 각 단어의 시작과 끝을 초 단위로 담은 words[]도 함께 옵니다.

  • 모든 문장에 문장 부호를 찍으세요. 현재 코드에서 문장은 ., !, ?, …, 。, !, ? 중 하나로 끝나는 단어에서 끝나므로, 끝맺는 부호가 없는 단어 목록은 클립 하나로 돌아옵니다.
  • 클립 사이에 빈틈이 없으므로, 문장 앞의 쉼은 그 문장의 클립에 들어갑니다. 각 컷은 기본적으로 문장의 마지막 단어에서 70 ms 뒤에 놓입니다(boundary_lead_ms, 0–500).
  • mp3를 쓰면 타이밍은 받지만 문장별 파일은 받지 못합니다.
  • words[]로 재생 중인 단어를 하나씩 강조하는 방법은 단어 하이라이트 TTS에, 모든 분할 필드는 텍스트 음성 변환 API에 나와 있습니다.
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: lesson-12-slow" \
  -d '{
    "transcript": "역이 어디에 있어요? 두 블록만 가면 돼요.",
    "voice": { "id": "voi_0123456789abcdef0123456789abcdef" },
    "language": "ko",
    "generation_config": { "speed": 0.7 },
    "output_format": { "container": "wav", "encoding": "pcm_s16le", "sample_rate": 44100 },
    "timestamps": { "words": true },
    "segmentation": { "mode": "sentence" }
  }'

한도는 무엇이고, 비용은 얼마인가요?

텍스트 음성 변환은 공백과 문장 부호를 포함한 대본 글자 수에 따라 1,000자당 $0.0475로 과금되며, 기본적으로 5.5% 에이전트 수수료가 더해집니다. 요청은 스트림이 아니라 Job이므로, 폴링하거나 webhook_url을 넘기세요.

Sume API 레퍼런스의 TTS 요청 스키마 기준, 2026-09-27 확인.
설정규칙
transcript요청당 1–20,000자
language요청당 BCP-47 / ISO-639 코드 하나
generation_config.speed0.6–1.5
segmentation.modesentence만 가능. timestamps.words: true 필요
segmentation.boundary_lead_ms0–500, 기본값 70
문장별 audio_urlwav 또는 raw 컨테이너만
오디오 길이1,200초를 넘으면 tts_duration_exceeded로 실패. 크레딧은 확정되지 않음

출처

관련 글

활용 사례 카테고리의 다른 글

활용 사례 글 전체 보기

작성자 Sume