Mobidoo

타임라인 오디오

이 문서는 영문 원고를 AI로 번역한 내용이라 표현이 어색할 수 있습니다.

현재 SoT. Timeline 1.0 audio(sume/timeline-1.0/audio, #3516). dest와 prod. 이것은 재사용 가능한 오디오 파일을 만듭니다. 렌더 하나 안에서만 필요한 조인은 Timeline 1.0 audio.parts[]에 두고 이 Job을 건너뛰세요.

Timeline audio는 Sume 호스트 오디오를 갭 없이 하나(operation: concat)로 붙이거나, 한 파일을 구간(operation: split)으로 자르고 내구성 media.sume.com URL과 타이밍을 반환합니다. 조인은 샘플 도메인 입니다 — 재 TTS 없고 이음새에 침묵을 넣지 않습니다. 서버가 렌더와 같은 워커 미디어 런타임에서 ffmpeg를 컴파일합니다(apps/api/src/routes.ts createTimelineV1Audio / submitSumeTimelineAudioJob).

GET /v1/timeline-1.0/audio/:id는 없습니다. Job 봉투로 폴링하세요:

호스티드 MCP: timeline_audio(packages/mcp-server/src/mcp.ts). 쓰기는 idempotency_key가 필요합니다(OAuth에서는 mcp:write). 흐름: timeline_audiojobs_waitjobs_result.

Concat

필수: operation: "concat"parts[](1–20, 순서). 각 part는 { url, source_in?, duration? }입니다. 최상위에 url이나 ranges를 보내지 마세요(audio_concat_takes_no_url / audio_concat_takes_no_ranges). 모든 URL은 이 워크스페이스의 media.sume.com 오디오여야 합니다. 먼저 가져오세요 (POST /v1/media-imports). Idempotency-Key는 필수입니다.

기본 mode는 **async**입니다. mode: "sync"를 주면 최대 30초 기다리고 끝난 Job을 200으로 주거나, 202로 폴링합니다.

결과 kind: timeline_audioaudio_url 하나, duration_seconds, segments[](index, start, duration_seconds)를 줍니다 — Timeline 1.0 video[].start를 다시 맞출 concat 오프셋입니다. 그 파일을 렌더의 audio.url이나 Avatar 1.0 image-to-video 오디오로 쓰세요.

part는 채널 레이아웃이 같아야 합니다(audio_parts_channel_mismatch).

Split

필수: operation: "split", 최상위 url, ranges[](1–20). 각 range는 { start, end? }입니다(end 생략 = 파일 끝까지). parts를 보내지 마세요(audio_split_takes_no_parts). range는 겹쳐도 됩니다.

결과 kind: timeline_audiosegments[]는 각각 자신의 audio_url을 가집니다. 말하는 헤드 MP4에서 여러 구간이 필요하면 오디오 분리를 한 번 한 뒤 여기서 split하세요.

출력 포맷

선택 output.format: wav(기본, pcm_s16le, 샘플 정확) 또는 mp3(더 작음; 매 이음새에 프라이밍 패딩이 다시 붙음). 다시 붙이거나 립싱크를 돌릴 파일은 wav를 유지하세요.

생산 오디오 ≤ 1800초.

공개 요금: Job당 $0.01 정액(TIMELINE_AUDIO_PUBLIC_PRICING; GET /v1/catalog에서 확인). 프로바이더 추론 없음 — 워커 ffmpeg만.

거부 (안정 코드)

코드언제
audio_concat_requires_partsconcat에 parts 없음.
audio_concat_takes_no_url / audio_concat_takes_no_rangesconcat에 split 필드.
audio_split_requires_url / audio_split_requires_rangessplit에 url 또는 ranges 없음.
audio_split_takes_no_partssplit에 parts.
audio_range_end_before_startrange endstart.
audio_parts_channel_mismatchconcat part의 채널 레이아웃이 다름(워커).
unsupported_media_source / source_not_found호스트 밖 또는 죽은 URL.
프로바이더 / ffmpeg 키400 — filtergraph, ffmpeg_args, codec, crf 등.

호스트 밖 URL(https://example.com/…)은 admit에서 거부됩니다. 먼저 가져오세요.

이 표면이 아닌 것

필요사용
비디오 하나의 오디오 트랙을 wav / mp3로오디오 분리
렌더 하나 안에서만 조인Timeline 1.0 audio.parts[]
여러 클립 시퀀스Timeline 1.0
한 프레임에 스틸 + 비디오타임라인 합성
음성 인식POST /v1/stt-1.0/generate

관련