전체 작업

AI 에이전트 팀 보컬 곡 제작 파이프라인

역할을 나눈 AI 에이전트가 보컬 합성 곡을 만드는 과정을, 검증 가능한 단계와 렌더 도구로 이어 붙인 제작 파이프라인이다.

작업 기록 6건

무엇을 만들었나

감독·작곡가·작사가·편곡가·조교 담당 역할의 AI 에이전트가 곡을 만들고, 그 과정을 영상 소재로 남기는 실험 프로젝트다. 각 역할이 낸 결과물을 자동으로 검사하고, 반주와 보컬을 실제 음원으로 렌더해 하나로 섞는 도구들을 단계별로 만들었다. 실제 AI 역할 실행부터 최종 음원까지 이어지는 전 과정 검증은 아직 남아 있다.

구현 방식과 보안 설계는 ‘기술 상세’에 있습니다.

구조와 설계

GUI 중심인 OpenUtau를 .NET 콘솔 도구로 감싸 보컬 프로젝트(USTX)를 헤드리스로 WAV 렌더하고, 오류 알림·음소 오류·무음 출력을 모두 실패로 처리한다. 음표 JSON은 표준 MIDI와 USTX로 변환하고, 반주는 FluidSynth와 DawDreamer에 올린 Surge XT 두 방식으로 렌더한 뒤 RMS 레벨 맞춤과 FFmpeg loudnorm으로 믹스한다. 오케스트레이터는 역할별 JSON 산출물을 JSON Schema와 파일 간 의미 검증(BPM·음역·멜로디 겹침·가나 배정 등)으로 확인하고, 실패하면 오류 목록을 해당 역할에 전달해 제한 횟수만큼 재시도한다. 역할 실행기와 도구 실행기를 주입할 수 있게 만들어 실제 렌더 없이도 순서·재시도·기록을 테스트한다. 단계 기록은 내부 로그와 공개 로그로 나눈다.

사용 기술

C# / .NET 10, OpenUtau Core, Python 3, pytest, JSON Schema, FluidSynth, Surge XT (VST3), DawDreamer, FFmpeg, NumPy, Claude Code 헤드리스 실행

보안·안정성 설계

  • 공개 기록에는 정해진 필드만 쓰고, 요약에서 경로·URL·이메일·IP 주소·키 형태가 발견되면 공개 항목 전체를 생략하고 내부 기록에 사유를 남긴다.
  • 설치된 OpenUtau 데이터와 보이스뱅크를 읽기 전용으로 두기 위해 실행별 임시 데이터 경로를 쓰게 했고, 작업 전후 설치 데이터와 앱 파일에 변경이 없음을 확인했다.
  • 렌더가 성공하기 전에는 기존 출력 파일을 덮어쓰지 않고, 잘못된 입력은 출력 파일을 만들기 전에 종료 코드 1로 거부한다.

작업 기록

  1. 주제 한 줄에서 최종 WAV까지 잇는 오케스트레이터

    역할별 JSON 산출물을 스키마와 파일 간 의미 검증으로 확인하고, 실패하면 오류를 넘겨 재시도하는 오케스트레이터를 만들었다. 가짜 역할 출력과 실제 렌더 도구로 최종 WAV를 생성했으며, 실제 AI 역할 실행은 인증 만료로 아직 검증하지 못했다.

  2. 편곡·조교 계약을 렌더 도구에 연결

    편곡 담당의 악기·게인과 조교 담당의 음표별 비브라토·피치 값을 반주·보컬 렌더 도구가 받아 적용하게 했다. 옵션을 생략하면 보컬 프로젝트는 기존과 바이트 단위로 같고 반주 WAV도 기존 결과와 일치함을 확인했고 전체 테스트 121개가 통과했다.

  3. 반주 렌더 도구와 데모 믹스

    음표 JSON에서 FluidSynth와 Surge XT 두 방식으로 반주 스템을 만들고 보컬과 섞는 CLI를 만들었다. 두 믹스의 보컬·반주 RMS 차이는 3.00 dB로 맞춰졌고 테스트 53개가 통과했다.

  4. 음표 JSON을 MIDI와 보컬 프로젝트로 변환

    반주용 표준 MIDI와 렌더 가능한 OpenUtau 프로젝트를 만드는 변환기 두 개를 구현했다. 숨소리 음표는 앞 음표와 100ms 이상 떨어졌을 때만 넣고, 생성한 프로젝트를 다시 읽어 검증한 뒤 4초 길이의 비무음 WAV로 렌더했다.

  5. 보컬 합성 헤드리스 렌더 도구

    공식 명령줄 렌더러가 없는 OpenUtau를 .NET 콘솔 도구로 감싸 명령 한 번으로 WAV를 얻게 했다. 두 렌더 방식 모두 실제 음성 출력을 확인했고, 재현 스크립트로 새 복제본에서도 빌드가 완료됐고, 기본 작업 폴더와 환경변수로 지정한 폴더에서 각각 실제 렌더가 성공했다.

  6. 저장소 뼈대와 공개용 단계 기록 도구

    제작 단계의 시작·종료·소요시간을 내부 로그와 공개 로그로 나눠 남기는 기록 도구를 만들었다. 소수점 숫자 오탐과 일부 경로 누락을 고친 뒤 테스트 44개가 통과했다.

이 페이지는 작업 기록 문서 6건을 바탕으로 정리했습니다. 고객 정보, 접속 주소, 비밀값은 공개 전에 걸러 냅니다.