EPUB → 다중 음성 오디오 파이프라인, 챕터 마커 보존 여부

발행: (2026년 5월 27일 AM 10:14 GMT+9)
11 분 소요
원문: Dev.to

출처: Dev.to

AudioProducer.ai의 챕터 무결성

챕터는 청취자가 실제로 탐색하는 가장 작은 단위입니다.
청취자는 7장 중간에서 오디오북을 열고, 식탁에 두고, 나중에 다시 돌아올 수 있습니다.
출판사도 이 단위를 중요하게 생각합니다. 주요 오디오북 플랫폼에 업로드할 때, 각 챕터는 보통 별도의 오디오 파일로 제공되며 자체 제목 메타데이터를 갖고, 유통업체가 만드는 인덱스도 이러한 구분에 의존합니다.

핵심: 챕터 경계는 온전하게 모든 파이프라인 단계를 거쳐 살아남아야 합니다.
우리 파이프라인 안에서는 이 생존이 지루한 부분이지만, 바로 여기서 정렬 오류가 누적됩니다. 왜냐하면 이후 단계는 모두 이전 단계가 챕터 목록을 정확히 처리했다고 가정하기 때문입니다.


가져오기부터 다운로드까지 변하지 않는 것

속성설명
제목청취자가 챕터 소개에서 듣게 되고 플레이어 인덱스에 표시되는 헤딩
본문음성으로 변환되는 텍스트
주석편집자가 붙이는 메타데이터:
• 줄별 화자
• 문자별 음성
• 문단별 감정 태그
• 문단별 사운드 주석
렌더링된 오디오 파일작가가 Generate(생성) 버튼을 클릭하면 만들어짐

파이프라인의 모든 단계는 단일 챕터의 네 가지 속성 중 하나에 대해 작동합니다. “전체 책”을 한 번에 렌더링하는 과정은 없습니다.

책은 단순히 챕터 리스트이며, 각 챕터마다 자체 오디오 렌더와 제작 상태를 가집니다. 이 격리 덕분에:

  • 다른 챕터를 건드리지 않고 하나의 챕터만 다시 렌더링할 수 있다.
  • 3장의 캐릭터 음성을 바꾸어도 4장은 다시 렌더링할 필요가 없다.

따라서 챕터 무결성은 우리가 반드시 올바르게 유지해야 할 핵심 요소입니다.


EPUB 구조 및 가져오기

  • EPUB = XHTML 파일들의 압축 컬렉션 + 내비게이션 문서
    • nav.xhtml (EPUB 3) 또는 toc.ncx (EPUB 2)
  • 챕터 경계는 개념적으로 내비게이션 문서가 가리키는 지점입니다.
  • 실제로는 하나의 챕터 파일에 헤딩 하나와 본문, 여러 하위 헤딩, 삽입 이미지, 각주 등이 포함될 수 있습니다.

작가가 EPUB을 새로운 AudioProducer.ai 프로젝트에 가져오면:

  1. 프로젝트가 챕터 구조, 제목, 본문 텍스트로 미리 채워집니다.
  2. 수동 복사‑붙여넣기가 필요 없습니다.
  3. 편집기에서는 내비게이션 문서를 내비 항목당 하나의 편집 가능한 챕터로 보여줍니다.

대부분의 EPUB에 숨겨진 “비‑챕터” 콘텐츠

유형일반적인 모습작가가 결정해야 할 사항
앞부분표지, 저작권 페이지, 헌정, 목차, 감사의 글오디오에 포함할지 말지
뒷부분“저자 소개”, “동일 작가의 다른 작품”, 각주 모음포함 여부
파트 구분“Part I”, “Part II” 페이지포함 여부
전자책 최적화 제목01_chapter01.xhtml 같은 파일명필요하면 음성 소개용으로 이름 변경

참고: 파이프라인은 이러한 특이사항을 자동으로 처리하지 않습니다. 가져온 챕터 리스트는 EPUB이 선언한 그대로이며, 모든 명명·구분 특성을 그대로 유지합니다. 편집기에서는 Rename(이름 바꾸기)와 Remove(제거) 기능을 제공해 작가가 최종 음성 순서에 맞게 리스트를 조정할 수 있게 합니다.


자동 할당 단계 (챕터별 실행)

챕터 리스트가 확정되면 작가는 두 가지 자동 과정을 실행합니다:

단계수행 내용결과가 저장되는 위치
자동 할당 캐릭터스피커 맵을 생성 – 각 줄마다 어떤 캐릭터가 말하는지 표시챕터 텍스트에 저장
자동 할당 사운드챕터 본문 내에 사운드 주석(음악 베드, 배경음, 단일 효과) 배치챕터 본문에 저장
  • 캐릭터별 음성 할당은 프로젝트 수준이지만, 실제 렌더링 시 챕터의 스피커 맵이 해당 캐릭터를 참조할 때만 의미가 있습니다.
  • 각 챕터가 자체 주석 상태를 갖고 있기 때문에, 자동 할당 캐릭터를 단일 챕터에 다시 실행해도 다른 챕터의 스피커 맵에는 영향을 주지 않습니다.
  • Characters 패널에서 캐릭터 음성을 수정하면 해당 캐릭터가 등장하는 모든 챕터의 오디오가 재흐름되지만, 그 캐릭터가 없는 챕터에서는 자동 할당 단계가 다시 트리거되지 않습니다. 전역 상태가 손상될 위험이 없습니다.

프로젝트 간 캐릭터 가져오기

시리즈 전반에 걸쳐 같은 캐릭터를 사용할 때는 Import‑characters‑from‑another‑project(다른 프로젝트에서 캐릭터 가져오기) 액션(‘Add Character’ 옆 점 3개 메뉴)을 사용합니다:

  • 전체 캐릭터 리스트(음성 할당 포함)를 새 책으로 복사합니다.
  • 챕터‑레벨 주석 상태는 그대로 유지됩니다 – 책마다 별도입니다.

재사용되는 것은 음성 라이브러리뿐입니다.


오디오 생성 (챕터별 진행)

렌더링 시 하나의 챕터에 대해 다음 입력이 결합됩니다:

  • 본문 텍스트
  • 스피커 맵(줄별)
  • 줄별 감정 태그
  • 문단별 사운드 주석

렌더링 결과는 하나의 완성된 오디오 파일이며 구조는 다음과 같습니다:

  1. 챕터 소개 – 제목을 읽어주고, 선택적 소개 사운드와 설정 가능한 일시 정지를 삽입.
  2. 챕터 본문 – 삽입 사운드와 일시 정지가 포함된 음성 본문.

주요 결과

  • 오디오 파일은 항상 챕터 소개로 시작합니다(작가가 활성화한 경우).
    청취자가 플레이어에서 7장으로 바로 점프하면 가장 먼저 “Chapter 7”(또는 Edit Project → Chapter Intro에서 설정한 ${name} 템플릿)이라는 문구와 설정된 일시 정지가 재생되고, 그 뒤에 본문이 이어집니다.

  • 챕터 내부의 일시 정지는 프로젝트 전체 기본값에 더해 작가가 편집기에서 지정한 문단별 오버라이드에 의해 결정됩니다.
    연속된 문단 구분은 이러한 규칙에 따라 하나로 합쳐집니다.


체크리스트 요약

  • EPUB 가져오기 → 챕터 리스트가 의도한 오디오 흐름과 일치하는지 확인
  • 필요에 따라 Rename / Remove 앞부분, 뒷부분, 파트 구분 처리
  • 자동 할당 캐릭터 실행 → 챕터별 스피커 맵 검토
  • 자동 할당 사운드 실행 → 사운드 배치 오프셋 확인
  • 프로젝트 전체 일시 정지 기본값문단별 오버라이드 조정
  • Edit Project에서 Chapter Intro 템플릿(${name} 등) 설정
  • 각 챕터를 개별적으로 Generate하고, 소개·일시 정지·본문 순서가 올바른지 확인

각 챕터의 네 가지 핵심 속성을 격리하고 하나씩 처리함으로써, AudioProducer.ai는 EPUB을 가져온 순간부터 최종 다운로드 가능한 오디오 파일에 이르기까지 챕터 경계가 온전하게 유지되도록 보장합니다.

AudioProducer.ai – 챕터‑레벨 내보내기 및 배포

일시 정지의 압축 덕분에, 장면 전환을 위해 빈 줄을 두 배로 사용한 EPUB이라도 의도치 않은 수초 길이의 침묵이 생기지 않습니다.

렌더링은 반복 가능한 단위입니다. 작가가 제작 중에 캐릭터 음성을 교체하고 싶다면 **

0 조회
Back to Blog

관련 글

더 보기 »