이러닝 내레이션 TTS 녹음: 슬라이드마다 파일 하나
TTS로 이러닝 내레이션을 녹음하려면 슬라이드마다 오디오 파일을 하나씩 늘 같은 음성의 MP3나 WAV로 만들고, 바뀐 슬라이드만 다시 만드세요.

텍스트 음성 변환(TTS)으로 이러닝 내레이션을 녹음하려면 슬라이드나 섹션마다 대본으로 오디오 파일을 하나씩 만들되, 항상 같은 음성을 쓰고 MP3나 WAV처럼 코스 저작 도구가 가져올 수 있는 형식으로 만드세요. 대본의 한 줄이 바뀌면 모듈 전체를 다시 녹음하는 대신 그 슬라이드의 파일 하나만 다시 생성하면 됩니다. Sume에서는 슬라이드 하나가 TTS 1.0 Job 하나(POST /v1/tts-1.0/generate)이며, 고정된 음성, 저작 도구가 가져오는 오디오 형식, 슬라이드마다 고유한 Idempotency-Key를 씁니다.
Sume 관련 사실은 Sume API 레퍼런스의 TTS 1.0 요청 스키마와 Job과 결과 (영문) 문서에서 가져왔으며, 모두 2026-09-27에 확인했습니다. Sume API 레퍼런스는 API 레퍼런스 문서의 바탕이 되는 OpenAPI 문서입니다. 요율은 API 요금 페이지를 만드는 코드에서 읽었습니다. 요청 필드는 텍스트 음성 변환 API에서 하나씩 모두 설명합니다.
코스 전체에서 같은 음성을 어떻게 유지하나요?
TTS 요청 하나는 음성 하나로 말하므로, 모든 슬라이드가 같은 음성을 보내면 코스 전체가 한결같이 들립니다. 음성은 한 번 고른 뒤 코스 설정에 함께 저장해 두세요.
voice.id: TTS 음성 UUID나 Voices 라이브러리 ID(voi_뒤에 hex 문자 32개)입니다. 현재 Sume 앱에서 라이브러리 음성은 에셋 → 보이스(Assets → Voices)에서 클론하거나 디자인한 음성입니다. 내 목소리로 AI 보이스오버 만들기를 참고하세요.avatar_id또는avatar_handle: 내 아바타 중 하나의 음성입니다. 그 아바타의voice.status가ready가 되면 쓸 수 있습니다.language: 영어가 아닌 코스라면 모든 슬라이드에 지정하세요. 생략하면 영어가 기본값입니다.generation_config.speed: 0.6에서 1.5 사이의 배수입니다. 코스 전체에 값 하나만 쓰세요.
슬라이드마다 어떤 파일 형식을 써야 하나요?
저작 도구가 가져올 수 있는 형식을 쓰세요. output_format을 넣지 않아도 요청은 MP3 파일을 반환하며, 먼저 편집할 비압축 오디오가 필요하면 WAV를 요청하세요. 모든 샘플 레이트와 인코딩은 텍스트 음성 변환 API에 나와 있습니다. 아래 표는 세 가지 선택지를 보여 주고, 표 다음의 요청은 슬라이드 하나의 MP3를 만듭니다.
| 원하는 것 | `output_format`에 보낼 값 | 받는 결과 |
|---|---|---|
| MP3(기본값) | 없음 | 44,100 Hz, 128 kbps의 MP3 |
| 다른 MP3 비트레이트 | "container": "mp3", sample_rate, bit_rate. 기본값을 바꿀 때 MP3에는 bit_rate가 필수 | 32, 64, 96, 128, 192 kbps 중 하나의 MP3 |
| WAV | "container": "wav", pcm_s16le 같은 encoding, sample_rate | WAV 오디오. pcm_s16le는 16비트 PCM |
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: course-101-m2-slide-07-v1" \
-d '{
"transcript": "A balance sheet lists what a company owns and owes on one date.",
"voice": { "id": "YOUR_VOICE_ID" },
"language": "en",
"output_format": { "container": "mp3", "sample_rate": 44100, "bit_rate": 128000 },
"generation_config": { "speed": 0.95 }
}'대본이 바뀌면 슬라이드 하나만 어떻게 다시 만드나요?
슬라이드마다 Job을 따로 두고 course-101-m2-slide-07-v1 같은 키도 따로 주세요. 파일 이름은 슬라이드에 맞춰 지으세요.
- 재시도는 같은 키로 하세요. 제출이 타임아웃되면 같은 본문을 같은
Idempotency-Key로 다시 보내세요. 그러면 두 번째 Job을 과금하는 대신 원래 Job이 반환됩니다. - 텍스트가 바뀌면 키를 바꾸세요. 키 하나는 작업 하나와 그 페이로드에만 쓰며, 다른 본문에 같은 키를 다시 쓰면
409 idempotency_conflict로 응답합니다. 접미사를-v2로 올리고 그 슬라이드만 제출하세요. - Job은 백그라운드에서 실행됩니다.
terminal이 true가 될 때까지status_url을 폴링한 다음result_url에서 오디오를 읽으세요. 이 루프는 Python 버전에서 보여 줍니다.
슬라이드 하나의 내레이션은 얼마나 길어도 되나요?
transcript는 최대 20,000자까지 받으며, 공백과 문장 부호도 사용량에 포함됩니다.- 합성된 오디오가 1,200초를 넘으면
tts_duration_exceeded로 실패하며, 크레딧은 확정되지 않습니다. timestamps: { "words": true }를 지정하면 결과에 단어별 타이밍이 담기고, 현재 코드에서는 파일의duration_seconds도 담깁니다. 슬라이드 타이밍을 확인하거나 단어를 읽는 순간에 강조하는 데 쓸 수 있습니다.
TTS 내레이션 비용은 얼마인가요?
TTS 1.0 요금은 1,000자당 $0.0475이며, 기본적으로 5.5% 에이전트 수수료가 더해집니다. 공백과 문장 부호를 포함해 대본의 모든 글자가 과금 대상입니다. 이 요율이면 슬라이드당 600자, 슬라이드 40장짜리 모듈(24,000자)은 수수료 전 $1.14입니다.
슬라이드 하나를 다시 만들면 그 슬라이드의 글자 수만 과금되며, 같은 키로 재시도해도 두 번 과금되지 않습니다. 슬라이드 위에 음성을 입히는 대신 카메라 앞에서 말하는 발표자가 필요하다면 온라인 강의 영상용 AI 아바타를 참고하세요.
출처
관련 글
활용 사례 카테고리의 다른 글
- 웹사이트용 TTS: 글마다 오디오 파일 하나 만들기
웹사이트에 TTS를 넣으려면 글마다 서버에서 오디오를 한 번 생성해 파일로 저장하고, 페이지에서는 HTML 오디오 플레이어로 재생하세요.
- 긴 텍스트 TTS·오디오북 만들기: 나눠 합성하고 이어 붙이기
긴 텍스트나 책은 TTS 요청 한도에 맞게 나누고, 모든 조각을 같은 설정으로 합성한 뒤, 오디오를 최대 30분짜리 파일로 이어 붙이세요.
- 여러 목소리로 TTS 만들기: 대사마다 음성 하나씩
TTS 요청은 음성 하나로 말합니다. 대화라면 각 화자의 대사를 그 화자의 음성으로 합성한 뒤, 클립을 대본 순서대로 이어 붙이세요.
- 가상 착용(Virtual Try-On) 영상 API: 사람에게 옷 입히기
Sume API로 가상 착용 영상을 만들려면 사진을 담아 sume-virtual-try-on이나 sume-virtual-fitting을 호출하거나, 스틸을 만든 뒤 움직임을 입히세요.
작성자 Sume