일반 소개
자동 오디오북은 GitHub에서 호스팅되는 오픈 소스 프로젝트입니다. 웹사이트에서 소설 콘텐츠를 자동으로 크롤링하여 여러 캐릭터의 목소리가 담긴 오디오북으로 변환합니다. Python 3.10+로 작성된 zqq-nuli 개발자가 대규모 모델( 쌍둥이자리 및 CosyVoice2-0.5B)를 사용하여 텍스트 처리와 음성 합성을 구현합니다. 이 프로젝트는 기본적인 텍스트-오디오 변환을 지원할 뿐만 아니라 소설 속 등장인물을 구분하고 다양한 음성을 할당하여 라디오 드라마와 같은 효과를 생성할 수도 있습니다. 이 코드는 공개되어 있으며 사용자는 자유롭게 다운로드하여 수정할 수 있습니다. 2025년 3월 24일 현재 이 프로젝트는 아직 개발 중이며 GUI는 완전히 완성되지 않았지만 명령줄을 통해 전체 프로세스를 완료할 수 있어 기술 애호가 및 오디오북 제작자에게 적합합니다.
기능 목록
- 소설 크롤링: 지정된 웹 사이트에서 소설 챕터의 콘텐츠를 자동으로 다운로드합니다.
- 대화 메시지 생성AI를 사용하여 텍스트를 분석하고 문자와 대화를 구분합니다.
- 멀티 캐릭터 음성 해설가상의 캐릭터, 조연, 주인공, 내레이터, 랜덤 더빙에 다양한 목소리를 할당할 수 있습니다.
- 오디오 생성멀티 스레드 가속을 지원하여 오디오북의 텍스트를 MP3 형식으로 변환합니다.
- 관리 도구새로운 데이터와 오디오 파일을 관리하는 데 도움이 되는 GUI를 제공합니다.
- 오픈 소스 및 확장 가능사용자가 코드를 수정하여 새로운 기능을 추가하거나 효과를 최적화할 수 있습니다.
도움말 사용
자동 오디오북을 설치 및 사용하려면 특정 기술 기반이 필요합니다. 다음은 오디오북을 처음부터 생성하는 데 도움이 되는 자세한 설치 및 작동 가이드입니다.
설치 프로세스
- 환경 준비
- https://www.python.org/downloads/ 에서 다운로드한 Python 3.10 이상을 설치합니다.
- 마운팅
ffmpeg
Windows의 경우 https://ffmpeg.org/download.html 에서 다운로드하고, Mac의 경우brew install ffmpeg
Linuxsudo apt install ffmpeg
. - (선택 사항) 신규 데이터의 GUI 관리를 위해 MongoDB를 설치하려면 https://www.mongodb.com/try/download/community 에서 다운로드하세요.
- 환경을 확인하려면: 명령줄에 다음과 같이 입력합니다.
python --version
노래로 응답ffmpeg -version
버전이 올바르게 표시되는지 확인합니다.
- 코드 다운로드
- Git을 사용하여 프로젝트를 로컬에 복제합니다:
git clone https://github.com/zqq-nuli/auto-audio-book.git
- 프로젝트 카탈로그로 이동합니다:
cd auto-audio-book
- Git을 사용하여 프로젝트를 로컬에 복제합니다:
- 가상 환경 만들기
- 활용
uv
가상 환경 만들기(사전 설치 필요)uv
사용pip install uv
):uv venv --python 3.10
- 환경을 활성화합니다:
- Windows:
.\.venv\Scripts\activate
- Mac/Linux:
source .venv/bin/activate
- Windows:
- 활용
- 종속성 설치
- 가상 환경에 필요한 라이브러리를 설치합니다:
uv add -r requirements.txt
- 부족한 경우
requirements.txt
를 클릭하면 핵심 라이브러리를 수동으로 설치할 수 있습니다:pip install requests gTTS PyPDF2 pymongo
- 가상 환경에 필요한 라이브러리를 설치합니다:
- API 키 구성
- 복사본 만들기
.env.example
파일은.env
::copy .env.example .env # Windows cp .env.example .env # Mac/Linux
- 컴파일러
.env
파일에 해당 플랫폼에서 요청할 수 있는 Gemini용 키와 같은 빅 모델 API 키를 입력합니다.
- 복사본 만들기
사용 단계
- 소설 크롤링
- 픽션 사이트(예: https://m.ilwxs.com/)를 선택하면 프로젝트는 기본적으로 보호되지 않은 사이트를 지원합니다.
- 크롤링 스크립트를 실행합니다:
python app/getBookList.py
- 그런 다음 챕터 목록을 가져와 콘텐츠를 저장합니다:
python app/getZjList.py python app/saveBooks.py
- 대화 메시지 생성
- AI로 챕터를 처리하여 캐릭터와 대사를 구분합니다:
python app/saveBookJson.py
- 출력은 추후 더빙을 위해 JSON 파일로 저장됩니다.
- AI로 챕터를 처리하여 캐릭터와 대사를 구분합니다:
- 캐릭터 음성 구성
- 스크립트를 실행하여 역할 테이블을 만듭니다:
python app/createUser.py
- 주인공과 내레이터의 음성을 수동으로 할당합니다(CosyVoice2-0.5B와 같은 모델 지원). 다른 캐릭터는 임의로 할당할 수 있습니다:
- 50개 이상의 대사가 있는 캐릭터의 개별 음성.
- 내레이터의 목소리로 50개 미만의 문장.
- 스크립트를 실행하여 역할 테이블을 만듭니다:
- 오디오 생성
- 오디오 생성 스크립트를 실행합니다:
python app/createAudio.py
- 멀티 스레드 가속(예: 20 스레드)을 지원합니다:
python app/createAudio.py --threads 20
- 출력은 프로젝트 디렉토리에 저장되는 MP3 파일입니다.
- 오디오 생성 스크립트를 실행합니다:
- 오디오 관리(선택 사항)
- GUI 도구로 오디오 정렬하기:
python gui/gui.py
- 또는 히말라야 항목을 일괄 삭제합니다:
python gui/gui2.py
- GUI 도구로 오디오 정렬하기:
운영 참고 사항
- 효율성 최적화컴퓨터 한 대가 단일 스레드에서 하룻밤에 300개의 챕터를 처리할 수 있습니다. 테스트 결과 각각 20개의 스레드를 가진 5대의 컴퓨터가 5시간에 2000개의 챕터를 생성할 수 있는 것으로 나타났습니다.
- 오류 감지챕터를 놓친 경우 네트워크를 확인하거나 해당 챕터 스크립트를 다시 실행하세요.
- 모델 제약 조건실리콘 기반 모델은 IP가 제한되며 다중 컴퓨터 병렬 처리를 위해 서버 하이재킹이 필요합니다.
프로세스 예시
소설을 변환한다고 가정해 보겠습니다:
- https://m.ilwxs.com/ 의 소설 So-and-So를 크롤링하여 챕터를 저장하세요.
- 주인공 A와 내레이터를 식별하는 대화 메시지를 생성합니다.
- 구성 A는 중국인 남성 목소리, 내레이터는 여성 목소리, 기타는 무작위로 설정합니다.
- 멀티 스레드 생성을 실행하여 다음을 얻습니다.
chapter1.mp3
등
완료되면 히말라야와 같은 플랫폼에 업로드할 수 있으며, 완성된 제품의 예는 https://www.ximalaya.com/album/88023000 에서 확인할 수 있습니다.
애플리케이션 시나리오
- 오디오북 제작
웹 소설을 멀티캐릭터 오디오북으로 만들어 플랫폼에 업로드하여 공유하거나 수익을 창출하세요. - 학습 실험
기술 애호가들은 크롤링, AI 및 오디오 처리 기술을 배우는 데 사용합니다. - 개인 엔터테인먼트
좋아하는 소설을 오디오로 변환하여 언제 어디서나 들을 수 있습니다.
QA
- 어떤 대형 모델이 지원되나요?
현재 Gemini 및 CosyVoice2-0.5B를 지원하며, API 키는 직접 신청해야 합니다. - 일부 챕터가 생성되지 않는 이유는 무엇인가요?
네트워크 중단 또는 크롤링 실패일 수 있으므로 로그를 확인하고 해당 챕터를 다시 실행하세요. - 오디오 품질을 개선하려면 어떻게 해야 하나요?
기본 모델은 효과가 제한적이며 다른 TTS 엔진으로 대체할 수 있으며 코드 변경이 필요합니다.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...