TTS 시간 계산기: 낭독 시간을 추정하고 실제로 재기

말하는 시간은 단어 수를 말하기 속도로 나눠 추정한 뒤 실제 파일로 재세요. Sume TTS는 단어별 타임스탬프와 함께 파일 길이를 알려 줍니다.

읽는 시간 5분Sume
전체 글

텍스트를 소리 내어 읽는 데 걸리는 시간을 계산하려면 단어 수를 말하기 속도로 나누세요. 예를 들어 음성이 분당 150단어를 말한다면 300단어 대본은 2분이 걸립니다. 말하기 속도는 음성과 그 속도 설정에 따라 달라지므로, 이 값은 추정치로 보고 실제 오디오로 다시 재세요. Sume의 텍스트 음성 변환(TTS)에서는 현재 코드 기준으로 단어별 타임스탬프를 요청하면 파일의 정확한 길이를 duration_seconds로 반환합니다.

Sume 관련 사실은 2026-09-28에 확인한 Sume API 레퍼런스의 TTS 스키마에서 가져왔습니다. 이 레퍼런스는 API 레퍼런스 문서의 바탕이 되는 OpenAPI 문서입니다. 현재 동작이라고 설명한 결과 필드와 검사는 Sume의 코드에서, 가격은 API 요금 페이지를 만드는 코드에서 확인했습니다. 공식 자체는 단순한 산수입니다.

단어 수로 말하는 시간을 어떻게 추정하나요?

초는 단어 수를 초당 단어 수로 나눈 값이고, 분은 단어 수를 분당 단어 수로 나눈 값입니다. 정확히 잡아야 하는 것은 말하기 속도입니다. 음성, 속도 설정, 텍스트 자체가 모두 말하기 속도를 바꾸므로, 같은 음성이 같은 속도 설정으로 읽은 샘플로 재세요. 예를 들어 현재 코드에서 Sume의 아바타 영상 플래너는 초당 2.8단어로 추정합니다. 이는 아바타 클립용 추정치이며, 어떤 TTS 음성에서 잰 속도도 아닙니다(60초에 들어가는 단어 수).

일본어처럼 단어 사이를 띄어 쓰지 않는 언어라면 단어 대신 글자 수를 세고, 같은 방법으로 초당 글자 수를 재세요.

// Count words the same way for the estimate and the calibration
function countWords(text) {
  return text.trim().split(/\s+/).filter(Boolean).length;
}

// Calibrate: result = data.result of a finished TTS job that voiced
// sampleText with timestamps: { words: true }
function wordsPerSecond(sampleText, result) {
  return countWords(sampleText) / result.duration_seconds;
}

// Estimate a new script with the rate measured on the same voice and speed
function estimateSeconds(script, rate) {
  return countWords(script) / rate;
}

음성의 정확한 길이는 어떻게 재나요?

POST /v1/tts-1.0/generate에 timestamps: { "words": true }를 넣어 생성하세요. 그러면 완료된 결과에 각 단어의 시작과 끝을 초 단위로 담은 words[]가 들어가고, 현재 코드에서는 오디오 파일의 길이인 duration_seconds도 들어갑니다. 마지막 단어의 end는 말이 끝나는 시점이고, duration_seconds는 파일 끝까지의 길이입니다. 녹음에 대해 같은 계산을 하는 방법은 말하기 속도 계산 방법에서 다룹니다.

TTS 결과로 알 수 있는 길이 정보. Sume API 레퍼런스의 TTS 스키마와 Sume의 현재 코드 기준, 2026-09-28 확인.
필드들어가는 경우재는 것
duration_secondstimestamps.words: true일 때(현재 코드)오디오 파일의 길이(초)
words[] start / endtimestamps.words: true일 때각 단어의 타이밍(초). 마지막 end가 말이 끝나는 시점
segments[]segmentation: { "mode": "sentence" }일 때(timestamps.words 필요)각 문장의 start, end, duration_seconds(현재 코드)
character_count모든 결과(현재 코드)대본의 글자 수. TTS가 과금하는 단위

보이스오버를 15초, 30초, 60초에 맞추려면 어떻게 하나요?

첫 테이크의 길이를 재고, 단어나 속도로 차이를 줄인 뒤 다시 재세요.

  • 단어를 바꾸세요. 같은 음성과 속도 설정으로 잰 말하기 속도를 알면, 그 차이가 대략 몇 단어에 해당하는지 알 수 있습니다.
  • 속도를 바꾸세요. generation_config.speed는 0.6에서 1.5 사이의 속도 배수입니다. 스키마는 배수가 길이에 어떻게 반영되는지 설명하지 않으므로, 바꿀 때마다 duration_seconds를 다시 읽으세요.
  • 예전 speed enum(slow, normal, fast)은 쓰지 마세요. 스키마는 이를 지원 중단으로 표시하고 generation_config.speed를 쓰라고 안내합니다.
  • 초 단위로 편집한 영상 아래에 까는 보이스오버라면, AI로 30초 광고 영상 만드는 방법에서 렌더 길이를 그에 맞게 설정합니다.

TTS 파일 하나는 얼마나 길 수 있나요?

요청 하나는 최대 20,000자의 대본을 받으며, 합성된 오디오가 1,200초를 넘으면 tts_duration_exceeded로 실패하고 크레딧은 확정되지 않습니다. 더 긴 대본은 긴 텍스트 TTS·오디오북 만들기에서처럼 나눠서 부분마다 합성하세요.

TTS로 길이를 재는 비용은 얼마인가요?

길이를 재려고 실행할 때마다 TTS Job 하나가 되며, 공백과 문장 부호를 포함한 대본 글자 수에 따라 1,000자당 $0.0475로 과금되고 기본적으로 5.5% 에이전트 수수료가 더해집니다. 현재 코드에서 예상 비용은 글자 수만 세므로, 단어별 타임스탬프를 요청해도 비용이 늘지 않습니다. 짧은 문단 하나로 말하기 속도를 보정하고, 추정에는 그 속도를 재사용하다가, 대본이 들어맞을 것 같을 때 전체를 합성하세요.

출처

관련 글

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

활용 사례 글 전체 보기

작성자 Sume