PDF 문서를 대화형 오디오 콘텐츠로 자동 변환하는 Open NotebookLM 파이프라인 구축 가이드

개요

정적인 PDF 문서를 청취 가능한 대화형 오디오 형태로 변환하는 과정은 정보 소비의 접근성을 크게 향상시킵니다. Open NotebookLM은 대규모 언어 모델(LLM)과 텍스트 음성 변환(TTS) 기술을 결합하여 문서 내용을 자연스러운 팟캐스트 스크립트로 재구성하고 오디오로 합성하는 오픈소스 파이프라인입니다.

환경 구축 및 초기 설정

프로젝트를 로컬 환경에 복제하고 가상 환경을 구성하여 필요한 종속성을 설치합니다.

git clone https://github.com/gabrielchua/open-notebooklm.git audio-converter
cd audio-converter
python3 -m venv .env
source .env/bin/activate
pip install -r requirements.txt

API 인증 및 환경 변수 구성

추론 엔진으로 사용되는 Fireworks AI의 API 키를 환경 변수에 등록하여 인증을 완료합니다.

export FIREWORKS_API_TOKEN="your_api_token_here"

웹 인터페이스 실행

Gradio 기반의 사용자 인터페이스를 구동하여 파일 업로드 및 파라미터 조정을 수행합니다.

python3 interface.py

파라미터 조정 및 오디오 생성 프로세스

웹 UI에서 다음 요소들을 설정하여 결과물의 방향성을 제어할 수 있습니다.

  • 타겟 언어 설정: 다국어 TTS 지원을 위해 출력 언어를 지정합니다.
  • 러닝타임 제어: 생성될 오디오의 목표 길이를 설정합니다.
  • 톤앤매너(Tone and Manner): 대화의 스타일을 캐주얼하거나 전문적인 톤으로 선택합니다.
  • 커스텀 프롬프트: 문서 내 특정 섹션에 대한 심화 질문을 입력하여 스크립트의 초점을 맞춥니다.

시스템 아키텍처 및 핵심 파이프라인

이 솔루션은 여러 AI 모델을 오케스트레이션하여 엔드투엔드 파이프라인을 구성합니다.

  • 텍스트 추출 및 전처리: PDF 내 텍스트와 레이아웃 정보를 파싱하여 마크다운 형식으로 정제합니다.
  • 스크립트 생성 (LLM): Llama 3.3 70B 모델을 활용하여 추출된 텍스트를 호스트와 게스트의 대화 형식으로 재구성합니다. script_generator.pycreate_dialogue 함수가 이 역할을 담당합니다.
  • 음성 합성 (TTS): 생성된 스크립트는 MeloTTS(기본) 또는 Bark(고급 감정 표현) 모델을 통해 오디오 파형으로 변환됩니다.

최적화 및 모범 사례

  • 문서 전처리: 스캔본 PDF보다는 텍스트 레이어가 포함된 디지털 문서를 사용해야 OCR 오류로 인한 스크립트 왜곡을 방지할 수 있습니다.
  • 컨텍스트 윈도우 관리: LLM의 컨텍스트 한계를 고려하여, 방대한 문서는 장별로 분할하여 처리하는 것이 안정적입니다.
  • 프롬프트 엔지니어링: 시스템 프롬프트에 "기술적인 용어를 일반적인 비유로 설명하라"와 같은 지시문을 추가하면 청취자의 이해도를 크게 높일 수 있습니다.

자주 발생하는 문제 및 트러블슈팅

Q: TTS 생성 단계에서 메모리 부족(OOM) 오류가 발생합니다.
A: Bark 모델은 높은 VRAM을 요구합니다. GPU 메모리가 부족할 경우 설정 파일에서 TTS 엔진을 MeloTTS로 폴백하거나, 배치 사이즈를 줄이십시오.

Q: 생성된 대화 스크립트가 원문의 핵심에서 벗어납니다.
A: LLM이 문서의 부수적인 각주나 참고문헌에 과도하게 집중할 수 있습니다. PDF 업로드 전 불필요한 페이지를 제거하거나, 커스텀 프롬프트에 "본문 외의 참고문헌 및 각주는 무시하라"는 조건을 명시하십시오.

태그: Open NotebookLM Llama 3.3 MeloTTS Bark Gradio

6월 17일 03:30에 게시됨