강의 녹음 텍스트 변환: 타임스탬프가 달린 노트로 정리하기
강의를 문장 타임스탬프와 함께 전사한 뒤, 언어 모델이 각 제목에 주제가 시작하는 지점을 표시한 노트로 바꾸게 하세요.

강의 녹음을 노트로 정리하려면 녹음을 문장 타임스탬프와 함께 전사한 뒤, 언어 모델이 문장을 주제별로 묶고 주제마다 노트를 쓰게 하세요. 이때 각 주제가 시작하는 시각을 남겨 두면 녹음의 그 부분으로 바로 돌아갈 수 있습니다. Sume에서는 STT 1.0이 시간이 표시된 문장을 반환하고, Agent Completions가 직접 정의한 형태의 JSON으로 노트를 반환합니다.
아래 내용은 Sume API 레퍼런스의 STT 1.0 스키마와 Agent Completions, 구조화 출력 (영문), Usage 문서에서 가져왔으며, 모두 2026-09-28에 확인했습니다. 두 단계는 녹음으로 회의록 만들기와 같으며, 여기서는 출력이 시간과 연결된 학습 노트입니다.
강의 녹음은 어떻게 전사하나요?
녹음의 공개 HTTPS URL을 segmentation: {"mode": "sentence"}와 함께 STT 1.0에 보내세요. 요청에는 파일 바이트를 담을 필드가 없습니다. 문장 모드는 문장 끝 부호를 기준으로 단어를 묶고 부호 없이 이어지는 구간은 무음에서 나누며, 각 구간에는 text와 함께 오디오 시작부터 초 단위로 잰 start, end가 담깁니다. 요청 하나는 최대 10분을 처리하므로, 더 긴 강의는 긴 오디오 파일 전사하기에 나온 것처럼 나눈 뒤 각 부분의 시작 시각을 그 부분의 구간에 더하세요.
강의를 텍스트로만 받으면 된다면 여기서 멈추세요. 결과의 text가 전체 전사문입니다.
curl -X POST https://api.sume.com/v1/stt-1.0/transcribe \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: bio101-week3-part-1" \
-d '{
"audio_url": "https://example.com/audio/bio101-week3-part-1.m4a",
"duration_seconds": 600,
"segmentation": { "mode": "sentence" }
}'강의 노트에는 무엇이 들어가야 하나요?
공부할 때 볼 내용을 미리 정해 둔 형태로 담습니다. 아래 예시는 세 가지를 요청합니다. 첫째는 sections로, 섹션마다 title, 주제가 시작하는 start_seconds, 짧은 줄로 된 notes가 있습니다. 둘째는 익혀야 할 용어인 key_terms, 셋째는 나중에 스스로 점검할 review_questions입니다. 모델에게 각 섹션을 어떤 구간의 start에서 시작하고 강의에서 말한 내용만 쓰라고 지시하세요. 그래야 노트가 주제 전반에 대한 설명이 아니라 이 강의의 기록으로 남습니다.
짧은 요약을 더하려면 스키마와 그 required 목록에 summary 문자열을 추가하세요. 스키마가 선언하는 모든 속성은 그 목록에 있어야 합니다.
전사문을 학습 노트로 어떻게 바꾸나요?
시간이 표시된 구간을 input에 담아 POST /v1/agent/completions로 보내고(에이전트는 이 값을 지시가 아니라 데이터로 다룹니다), 노트의 형태는 output_schema에 넣으세요. 나머지는 회의록 글과 같습니다. 스키마는 Sume의 엄격한 부분집합을 따르고, generation_spend_cap_usd는 필수이며, 호출은 영수증을 반환하므로 완료된 실행이 output을 채울 때까지 그 영수증을 폴링합니다.
curl -X POST https://api.sume.com/v1/agent/completions \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: bio101-week3-notes" \
-d '{
"instruction": "Turn this lecture into study notes. Start each section at a segment start. Use only what was said.",
"input": { "segments": [{ "index": 0, "text": "Today we cover cell membranes.", "start": 0, "end": 2.6 }] },
"output_schema": { "name": "acme/lecture-notes/v1", "schema": {
"type": "object", "additionalProperties": false,
"required": ["sections", "key_terms", "review_questions"],
"properties": {
"sections": { "type": "array", "items": {
"type": "object", "additionalProperties": false,
"required": ["title", "start_seconds", "notes"],
"properties": {
"title": { "type": "string" }, "start_seconds": { "type": "number" },
"notes": { "type": "array", "items": { "type": "string" } } } } },
"key_terms": { "type": "array", "items": { "type": "string" } },
"review_questions": { "type": "array", "items": { "type": "string" } } } } },
"generation_spend_cap_usd": 1
}'노트에서 녹음의 해당 부분으로 어떻게 돌아가나요?
각 섹션의 start_seconds를 쓰세요. 이 숫자는 모델이 쓴 것이므로, 믿고 쓰기 전에 모든 start_seconds를 가장 가까운 실제 구간 시작점에 맞춘 뒤 제목 옆에 시계 형식의 시각으로 출력하세요.
// segments: your time-shifted STT segments; notes: the run's output
const starts = segments.map((s) => s.start);
const snap = (t) =>
starts.reduce((best, s) => (Math.abs(s - t) < Math.abs(best - t) ? s : best));
const clock = (t) => new Date(Math.round(t) * 1000).toISOString().slice(11, 19);
for (const section of notes.sections) {
console.log(`${clock(snap(section.start_seconds))} ${section.title}`);
for (const line of section.notes) console.log(` - ${line}`);
}비용은 얼마인가요?
전사 비용은 오디오 분당 $0.01이며, 기본적으로 5.5% 에이전트 수수료가 더해집니다. completion 자체의 비용은 회의록 글에서처럼 에이전트의 턴을 포함해 GET /v1/usage?run_id=…가 돌려주는 debited_usd입니다.
| 강의 길이 | STT 1.0 요청 수 | 수수료 전 가격 |
|---|---|---|
| 30분 | 3 | $0.30 |
| 50분 | 5 | $0.50 |
| 90분 | 9 | $0.90 |
제한 사항은 무엇인가요?
- 화자 라벨이 없습니다. 청중의 질문은 누가 했는지 표시되지 않은 채 전사문에 들어갑니다.
- 노트는 모델이 만든 결과이므로 녹음과 대조해 확인하세요. 먼저
output_error를 읽으세요. 스키마에 맞는 것이 없으면output은null이고, API에서는 실행이failed로 끝납니다.
출처
관련 글
활용 사례 카테고리의 다른 글
- AI 가상 스테이징: 빈 방 사진 한 장에 가구 채우기
AI로 가상 스테이징을 하려면 빈 방 사진을 스타일과 바뀌면 안 되는 부분을 적은 프롬프트와 함께 보내고, 결과에서 벽과 창문을 확인하세요.
- YouTube 최종 화면 템플릿: 5–20초 16:9 아웃트로 만들기
YouTube 최종 화면 템플릿은 요소를 최대 네 개까지 둘 자리가 있는 5–20초 길이의 16:9 아웃트로입니다. YouTube의 규칙과 AI로 아웃트로를 만드는 방법을 정리했습니다.
- AI 앨범 커버 생성기: 3000×3000 정사각형 아트
정사각형 앨범 아트를 생성한 뒤 업스케일하세요. Apple은 최소 3000×3000을 권장합니다. Sume에서 2400×2400으로 생성해 1.25배 업스케일하면 3000×3000이 됩니다.
- 온라인 강의용 AI 아바타: 수업 영상 만들고 업데이트하기
AI 아바타를 온라인 강의의 강사로 쓰세요. 재사용 아바타 하나로 섹션마다 짧은 말하는 영상을 만들고, 자막을 넣어 수업마다 Timeline으로 한 번 이어 붙입니다.
작성자 Sume