소설을 자동으로 크롤링하여 여러 문자의 오디오북을 생성하는 도구

최신 AI 리소스5개월 전에 게시 됨 AI 공유 서클
11.6K 00

일반 소개

자동 오디오북은 GitHub에서 호스팅되는 오픈 소스 프로젝트입니다. 웹사이트에서 소설 콘텐츠를 자동으로 크롤링하여 여러 캐릭터의 목소리가 담긴 오디오북으로 변환합니다. Python 3.10+로 작성된 zqq-nuli 개발자가 대규모 모델( 쌍둥이자리 및 CosyVoice2-0.5B)를 사용하여 텍스트 처리와 음성 합성을 구현합니다. 이 프로젝트는 기본적인 텍스트-오디오 변환을 지원할 뿐만 아니라 소설 속 등장인물을 구분하고 다양한 음성을 할당하여 라디오 드라마와 같은 효과를 생성할 수도 있습니다. 이 코드는 공개되어 있으며 사용자는 자유롭게 다운로드하여 수정할 수 있습니다. 2025년 3월 24일 현재 이 프로젝트는 아직 개발 중이며 GUI는 완전히 완성되지 않았지만 명령줄을 통해 전체 프로세스를 완료할 수 있어 기술 애호가 및 오디오북 제작자에게 적합합니다.

 

기능 목록

  • 소설 크롤링: 지정된 웹 사이트에서 소설 챕터의 콘텐츠를 자동으로 다운로드합니다.
  • 대화 메시지 생성AI를 사용하여 텍스트를 분석하고 문자와 대화를 구분합니다.
  • 멀티 캐릭터 음성 해설가상의 캐릭터, 조연, 주인공, 내레이터, 랜덤 더빙에 다양한 목소리를 할당할 수 있습니다.
  • 오디오 생성멀티 스레드 가속을 지원하여 오디오북의 텍스트를 MP3 형식으로 변환합니다.
  • 관리 도구새로운 데이터와 오디오 파일을 관리하는 데 도움이 되는 GUI를 제공합니다.
  • 오픈 소스 및 확장 가능사용자가 코드를 수정하여 새로운 기능을 추가하거나 효과를 최적화할 수 있습니다.

 

도움말 사용

자동 오디오북을 설치 및 사용하려면 특정 기술 기반이 필요합니다. 다음은 오디오북을 처음부터 생성하는 데 도움이 되는 자세한 설치 및 작동 가이드입니다.

설치 프로세스

  1. 환경 준비
    • https://www.python.org/downloads/ 에서 다운로드한 Python 3.10 이상을 설치합니다.
    • 마운팅 ffmpegWindows의 경우 https://ffmpeg.org/download.html 에서 다운로드하고, Mac의 경우 brew install ffmpegLinux sudo apt install ffmpeg.
    • (선택 사항) 신규 데이터의 GUI 관리를 위해 MongoDB를 설치하려면 https://www.mongodb.com/try/download/community 에서 다운로드하세요.
    • 환경을 확인하려면: 명령줄에 다음과 같이 입력합니다. python --version 노래로 응답 ffmpeg -version버전이 올바르게 표시되는지 확인합니다.
  2. 코드 다운로드
    • Git을 사용하여 프로젝트를 로컬에 복제합니다:
      git clone https://github.com/zqq-nuli/auto-audio-book.git
      
    • 프로젝트 카탈로그로 이동합니다:
      cd auto-audio-book
      
  3. 가상 환경 만들기
    • 활용 uv 가상 환경 만들기(사전 설치 필요) uv사용 pip install uv):
      uv venv --python 3.10
      
    • 환경을 활성화합니다:
      • Windows:.\.venv\Scripts\activate
      • Mac/Linux:source .venv/bin/activate
  4. 종속성 설치
    • 가상 환경에 필요한 라이브러리를 설치합니다:
      uv add -r requirements.txt
      
    • 부족한 경우 requirements.txt를 클릭하면 핵심 라이브러리를 수동으로 설치할 수 있습니다:
      pip install requests gTTS PyPDF2 pymongo
      
  5. API 키 구성
    • 복사본 만들기 .env.example 파일은 .env::
      copy .env.example .env  # Windows
      cp .env.example .env    # Mac/Linux
      
    • 컴파일러 .env 파일에 해당 플랫폼에서 요청할 수 있는 Gemini용 키와 같은 빅 모델 API 키를 입력합니다.

사용 단계

  1. 소설 크롤링
    • 픽션 사이트(예: https://m.ilwxs.com/)를 선택하면 프로젝트는 기본적으로 보호되지 않은 사이트를 지원합니다.
    • 크롤링 스크립트를 실행합니다:
      python app/getBookList.py
      
    • 그런 다음 챕터 목록을 가져와 콘텐츠를 저장합니다:
      python app/getZjList.py
      python app/saveBooks.py
      
  2. 대화 메시지 생성
    • AI로 챕터를 처리하여 캐릭터와 대사를 구분합니다:
      python app/saveBookJson.py
      
    • 출력은 추후 더빙을 위해 JSON 파일로 저장됩니다.
  3. 캐릭터 음성 구성
    • 스크립트를 실행하여 역할 테이블을 만듭니다:
      python app/createUser.py
      
    • 주인공과 내레이터의 음성을 수동으로 할당합니다(CosyVoice2-0.5B와 같은 모델 지원). 다른 캐릭터는 임의로 할당할 수 있습니다:
      • 50개 이상의 대사가 있는 캐릭터의 개별 음성.
      • 내레이터의 목소리로 50개 미만의 문장.
  4. 오디오 생성
    • 오디오 생성 스크립트를 실행합니다:
      python app/createAudio.py
      
    • 멀티 스레드 가속(예: 20 스레드)을 지원합니다:
      python app/createAudio.py --threads 20
      
    • 출력은 프로젝트 디렉토리에 저장되는 MP3 파일입니다.
  5. 오디오 관리(선택 사항)
    • GUI 도구로 오디오 정렬하기:
      python gui/gui.py
      
    • 또는 히말라야 항목을 일괄 삭제합니다:
      python gui/gui2.py
      

운영 참고 사항

  • 효율성 최적화컴퓨터 한 대가 단일 스레드에서 하룻밤에 300개의 챕터를 처리할 수 있습니다. 테스트 결과 각각 20개의 스레드를 가진 5대의 컴퓨터가 5시간에 2000개의 챕터를 생성할 수 있는 것으로 나타났습니다.
  • 오류 감지챕터를 놓친 경우 네트워크를 확인하거나 해당 챕터 스크립트를 다시 실행하세요.
  • 모델 제약 조건실리콘 기반 모델은 IP가 제한되며 다중 컴퓨터 병렬 처리를 위해 서버 하이재킹이 필요합니다.

프로세스 예시

소설을 변환한다고 가정해 보겠습니다:

  1. https://m.ilwxs.com/ 의 소설 So-and-So를 크롤링하여 챕터를 저장하세요.
  2. 주인공 A와 내레이터를 식별하는 대화 메시지를 생성합니다.
  3. 구성 A는 중국인 남성 목소리, 내레이터는 여성 목소리, 기타는 무작위로 설정합니다.
  4. 멀티 스레드 생성을 실행하여 다음을 얻습니다. chapter1.mp3 등

완료되면 히말라야와 같은 플랫폼에 업로드할 수 있으며, 완성된 제품의 예는 https://www.ximalaya.com/album/88023000 에서 확인할 수 있습니다.

 

애플리케이션 시나리오

  1. 오디오북 제작
    웹 소설을 멀티캐릭터 오디오북으로 만들어 플랫폼에 업로드하여 공유하거나 수익을 창출하세요.
  2. 학습 실험
    기술 애호가들은 크롤링, AI 및 오디오 처리 기술을 배우는 데 사용합니다.
  3. 개인 엔터테인먼트
    좋아하는 소설을 오디오로 변환하여 언제 어디서나 들을 수 있습니다.

 

QA

  1. 어떤 대형 모델이 지원되나요?
    현재 Gemini 및 CosyVoice2-0.5B를 지원하며, API 키는 직접 신청해야 합니다.
  2. 일부 챕터가 생성되지 않는 이유는 무엇인가요?
    네트워크 중단 또는 크롤링 실패일 수 있으므로 로그를 확인하고 해당 챕터를 다시 실행하세요.
  3. 오디오 품질을 개선하려면 어떻게 해야 하나요?
    기본 모델은 효과가 제한적이며 다른 TTS 엔진으로 대체할 수 있으며 코드 변경이 필요합니다.
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...