완성 파일이 아니라 편집 상태를 내놓은 AIDRA 팟캐스트 스튜디오
프리미어 프로에서 소스를 하나씩 얹던 오디오 드라마 제작 공정을 웹으로 옮기고, 회차 본문이 낳은 대본을 유일한 입구로 삼아 가편집된 타임라인까지 자동으로 채운 프로젝트
Problem
실무진이 프리미어에서 소스를 하나씩 얹어 오디오 드라마를 만드는 공정을 웹으로 옮겼지만, 타임라인에 얹을 재료는 여전히 사람이 한 조각씩 마련해야 했고, 회차 하나가 약 68개 블록이라 승인 한 번이 68건의 유료 생성으로 번역되는 구조였다
Hypothesis
실무진이 원하는 것은 완성된 오디오 파일이 아니라 고칠 수 있는 상태이므로 결과물을 편집 가능한 타임라인으로 잡고, 블록 하나가 생성 1회·비용 1회·클립 1개와 일대일로 대응하게 만들면 수정 비용을 블록 단위까지 쪼갤 수 있다고 판단했다
Solution
회차 본문을 6종 블록의 한·영 대본으로 변환해 승인 게이트를 유일한 입구로 세웠고, prod 본문 199건을 전수 측정해 준수율 100퍼센트인 신호만 파서의 필수 조건으로 삼았으며, 프롬프트로 통제되지 않는 값은 서버가 덮어쓰고 타임스탬프는 생성 후 실측으로 재계산하게 했다
Result
회차 본문에서 가편집이 끝난 타임라인까지 경로가 뚫려 25블록 19분과 44블록 28분 분량의 두 회차가 끝까지 나왔다. 다만 배포 후 다섯 라운드의 수정이 이어졌고, 대사가 4.31 LUFS 커진 것을 실측하고도 근거 없는 보정을 쌓지 않기 위해 조정은 청감 판정 뒤로 미뤄둔 상태다
Lesson Learned
LLM이 쓴 값은 선언일 뿐이고 정본은 언제나 생성 후 실측이라는 것, 그리고 비용이 나가는 자동화에는 반드시 그 앞에 멈출 지점을 둬야 한다는 것을 배웠다. 수치와 테스트로 닫히는 것은 합법적인 입력을 보냈다는 데까지였다
문제 정의
프리미어에서 하던 공정은 옮겼는데, 얹을 재료는 여전히 손으로 만들었다
AIDRA는 드라마 기획부터 제작까지를 AI로 잇는 사내 제품이다. 2026년 7월, 미국 팟캐스트 시장을 겨냥한 오디오 드라마 포맷을 제품에 넣기로 결정했다. 파트너팀이 명시적으로 요구하던 포맷이기도 했다. 회차 시나리오를 소리로 실연해 완성본까지 뽑는 것이 목표였고, 배포한 팟캐스트 탭에는 멀티트랙 타임라인과 파형, 트림, 클립별 EQ, 게인 키프레임, 서버 사이드 믹스다운이 이미 다 들어가 있었다. 편집 도구로서는 부족한 것이 없었다.
타임라인 편집기를 먼저 만든 것은 실무 공정을 그대로 웹으로 옮겨보려는 의도였다. 오디오 드라마를 만드는 사람들은 대사와 효과음, 배경음을 각각 따로 구하거나 만든 다음, 프리미어 프로 타임라인에 하나씩 얹고 길이를 맞추고 내보낸다. 회차마다 이 과정이 통째로 반복된다. AIDRA가 줄여야 할 것은 소리를 만드는 일 자체가 아니라 이 공정이었다.
문제는 그 앞에 있었다. 도구는 옮겨왔는데 타임라인에 얹을 재료는 여전히 사람이 한 조각씩 마련해야 했다. 로드맵의 다음 단계는 편집기를 더 다듬는 것이 아니라, 오디오 소스를 개별 에셋으로 분리해 관리하고 생성하는 구조를 세우는 것이었다. 대사와 효과음, BGM, 앰비언스를 한 덩어리로 뽑으면 한 군데만 마음에 안 들어도 회차 전체를 다시 사야 한다. 이 제품의 오디오 생성은 전부 외부 벤더 과금이라, 재생성이 곧 비용이다. 참고 대본을 실측해보니 회차 하나가 약 68개 블록으로 구성됐다. 승인 버튼 한 번이 68건의 유료 호출로 번역되는 구조였다.
제약은 정면으로 충돌했다. 생성 비용은 줄여야 하는데, 산출물을 손보는 여지는 최대로 남겨야 했다. 자동화를 밀어붙이면 비용이 새고, 수동으로 두면 아무도 회차를 끝까지 못 만든다. 그렇다고 이미 만들어둔 타임라인 편집기를 버릴 수도 없었다. 앞단만 갈아끼워야 했다.
가설 수립
내놓아야 할 것은 완성 파일이 아니라 고칠 수 있는 상태였다
먼저 정한 것은 산출물의 형태였다. 완성된 오디오 파일 하나를 뱉는 설계가 더 쉽고 겉보기에도 그럴듯하다. 그런데 실무진이 원한 것은 완성본이 아니라 고칠 수 있는 상태였다. 억양 하나, 효과음이 놓인 자리 하나가 거슬릴 때 전부 다시 돌리는 것이 아니라 그 지점만 손댈 수 있어야 한다. 그래서 이 기능의 결과물을 최종 파일이 아니라 편집 가능한 타임라인 상태로 잡았다. 가편집 수준까지만 자동으로 채워져 있어도 사람이 아끼는 시간이 크기 때문이다.
물론 편집기 쪽을 더 좋게 만드는 선택지도 있었다. 이미 투자한 자산이 그쪽에 있었으니까. 사람이 대본을 직접 써서 넣게 하거나, 회차 본문을 문단 단위로 그대로 잘라 쓰는 방법도 검토 대상이었다. 앞의 둘은 결국 사람의 손을 다시 부르고, 뒤의 하나는 잘린 문단이 오디오 한 조각과 대응한다는 보장이 없다. 편집기를 아무리 다듬어도 어디서 어디까지가 한 에셋인지는 여전히 사람이 매번 정해야 한다. 경계가 문서로 고정되지 않으면 재생성 단위도 고정되지 않고, 재생성 단위가 없으면 비용을 쪼갤 방법이 없다.
그래서 경계를 정하는 정본을 새로 만들기로 했다. 회차 본문에서 자동 생성한 대본이다. 조건은 하나였다. 블록 하나가 생성 1회, 비용 1회, 타임라인 클립 1개와 정확히 일대일로 대응할 것. 이 등식이 서면 마음에 안 드는 블록만 다시 사면 되고, 어디를 고치면 얼마가 드는지 사람이 미리 안다. 등식이 깨지면 그 계산 자체가 불가능해진다.
대본을 이 자리에 놓으면 부수 효과가 하나 더 생긴다. 승인 화면이 된다는 것이다. 사람이 산출물에 개입할 수 있는 유일한 지점이자, 돈이 나가기 전 마지막으로 멈출 수 있는 곳이다. 기대한 것은 두 가지였다. 회차당 제작 시간과 공정을 줄이는 것, 그리고 수정 비용을 블록 단위까지 잘게 쪼개는 것.
솔루션 도출
프롬프트로 안 되는 것은 서버가 강제한다
회차를 누르면 본문이 6종 블록과 씬 베드, 오디오 바이블, 목표 타임스탬프를 갖춘 한국어와 영어 대본으로 변환된다. 유저가 고쳐 승인하면 백그라운드 잡이 블록 전량을 생성해 타임스탬프대로 배치한다.
가장 먼저 무너질 수 있는 곳이 파서였다. 회차 본문 자체가 LLM 산출물이라, 프롬프트가 요구하는 포맷과 모델이 실제로 내는 포맷이 다르다. 그래서 prod 회차 본문을 표본 120건으로 한 번 재고, 다시 199건 전수로 재측정했다. 씬 러닝타임과 장소 표기, 큰따옴표 대사는 준수율 100%였지만 씬 마커는 75%, 자막 표기는 28%에 그쳤다. 파서가 100%인 신호만 필수로 삼고 나머지는 전부 폴백하도록 설계했고, 이 준수율 표를 테스트 픽스처로 고정했다. 이 저장소는 같은 부류의 사고를 이미 네 번 겪었다. 원인은 매번 같았다. 프롬프트가 요구한 형식을 모델이 안 지켰는데 파서가 그걸 전제한 것이다.
같은 불신을 일관성 설계에도 적용했다. 보이스와 공간감을 프롬프트로 지시하는 것만으로는 출력이 실제로 바뀌지 않는다는 것이 앞선 측정에서 이미 확인돼 있었다. 그래서 오디오 바이블로 유도하되 최종 값은 서버가 덮어쓰게 했다. 타임스탬프도 같은 원리다. 목표를 160초로 잡은 샘플이 실제 합성에서 171.2초로 나왔다. 화면에는 목표를 보여주되, 배치는 생성이 끝난 뒤 실측값으로 다시 계산하게 했다.
승인 게이트에는 차단 조건을 하나 걸었다. 한국어와 영어 대본이 어긋난 블록이 있으면 승인 자체를 거부한다. 실제 합성 대상은 영어인데 한국어만 고친 채 승인하면, 68블록을 전부 사고 난 뒤에야 잘못을 알게 되기 때문이다.
재생성 정책은 배포하고 나서 한 번 뒤집었다. 처음에는 다시 만든 결과를 타임라인에 이어 붙였는데, 두 번 세 번 돌릴수록 트랙이 아래로 계속 쌓였다. 어느 것이 최신인지 화면에서 구분이 안 됐다. 그래서 새 결과가 클립을 하나라도 확보하면 이전 트랙 묶음을 지우고 자리를 넘겨받게 바꿨다. 전부 실패했을 때만 이전 것을 남긴다. 이때도 소스 에셋 자체는 지우지 않는다. 다시 사지 않고 재배치할 수 있어야 블록 단위 비용 절감이 성립하기 때문이다.

결과 & 배운 점
경로는 뚫렸고, 품질 판정은 아직 사람 몫으로 남았다
회차 본문에서 가편집이 끝난 타임라인까지 가는 경로는 실제로 뚫렸다. 새 파이프라인으로 만든 대구의 향기 1화는 25블록에 19분 54초, 글리치 스쿼드 20화는 44블록에 28분 17초 분량으로 끝까지 나왔다. 빈 타임라인에 재료를 한 조각씩 얹던 공정이 승인 한 번으로 바뀌었고, 도착 지점은 잠긴 완성 파일이 아니라 트랙과 클립이 다 놓여 있는 편집 상태다. 거슬리는 데가 있으면 그 블록만 다시 산다.
품질은 기대에 못 미쳤다. 배포 후 다섯 라운드에 걸쳐 수정이 이어졌는데, 그중 세 건은 내가 직접 제품을 쓰다 귀로 잡아 올린 신고였다. 예상 밖이었던 두 건은 모두 BGM 쪽이었다. 하나는 음악이 씬을 끝까지 못 덮어 뒤가 무음으로 남은 것이다. prod 문서 19건 중 15건이 미커버였고 무음 비율은 32.6%였다. 다른 하나는 음악의 분위기를 설명하려고 적은 문구가 가사처럼 노래로 불린 것이다. 원인은 같은 계열이었다. 대본에 적힌 텍스트를 기계 입력으로 그대로 신뢰한 것이다. 대본이 선언한 길이는 실측의 중앙값 0.60배에 불과했다.
고칠 수 있는데 일부러 안 고친 것도 있다. TTS 모델을 올리자 같은 대사를 같은 보이스로 재합성한 12쌍 전부에서 대사만 평균 4.31 LUFS 커졌다. 기존 믹스 게인은 이전 모델의 크기에 맞춰 잡힌 값이라 배경음이 눌릴 수 있다. 그런데 그 원래 게인 자체가 누군가 들어보고 정한 값이 아니었다. 검증 안 된 값 위에 검증 안 된 보정을 또 쌓으면 두 값 다 믿을 수 없게 된다. 실측만 기록해두고 조정은 청감 판정 뒤로 미뤄둔 상태다. 수치와 테스트로 닫을 수 있는 것은 합법적인 입력을 보냈다는 데까지고, 좋은 소리인지는 내가 회차를 끝까지 들어봐야 닫힌다.
나는 생성형 오디오를 이번에 처음 다뤘다. 벤더가 무엇을 돌려줄지 알 수 없는 블랙박스 위에 제품을 얹는 일이었다. 래퍼 서비스를 설계하며 남은 것은 두 가지다. LLM이 쓴 값은 선언일 뿐이고 정본은 언제나 생성 후 실측이라는 것. 그리고 비용이 나가는 자동화에는 반드시 그 앞에 멈출 지점을 둬야 한다는 것. 사고는 나고 나서 알면 이미 늦다.
Supercent
에서의 다른 경험도 살펴보기
말해줄 때까지 기다리지 않는 AIDRA 피드백 트리아지 루프
물어봐야 조금씩 말해주던 파트너팀 피드백을, 인앱 티켓과 회신이 한 바퀴 도는 루프로 바꾸고 그 운영 절차를 스킬로 코드화해 다섯 주간 열세 번 반복한 프로젝트
기획자가 이미 보던 것을 안으로 옮긴 AIDRA 트렌드 허브
AI가 요약해주는 인사이트를 만드는 대신, 기획자가 실제로 시장 신호를 얻던 경로를 관찰해 그 방식 그대로 제품 안으로 옮긴 프로젝트
1번 액션을 덮지 않고 팀 피드를 홈 아래로 내린 AIDRA 홈 개편
팀원의 완성물을 볼 서버 경로조차 없던 제품에 피드를 얹으면서, SNS 관례대로 홈 위에 올렸다가 주 동선을 해치자 이틀 만에 아래로 내린 프로젝트


