본문 바로가기

Programming/python

__python__(using python making pdf text into audio book); PDF파일을 오디오 북으로 만들기!

728x90
반응형

우연히 인스타를 보다가 파이썬 라이브러리 중에 PDF 파일을 읽어 오는 PyPDF2와

text를 음성으로 변환시켜 주는 pyttsx3 라이브러리가 있다는 것을 발견했다.

 

 

그것을 이용해서 저작권 없는 pdf 소설책을 audio book으로 만들어 봤다.

 


 

 

전체 코드는 다음과 같다.

 

 

 


 

# by mld42.tistory.com
import PyPDF2 as P2 
import pyttsx3 as pt3

speaker = pt3.init()
voices = speaker.getProperty('voices') 
speaker.setProperty('voice', voices[1].id)

pdfReader = P2.PdfFileReader(open('/alice30.pdf', 'rb'))
# /alice30.pdf는 예시임. 무슨 드라이브에 있고 어떤 폴더에 있는지 명확하게 적어줘야함. ex)c:/user/alice30.pdf

cnt = pdfReader.numPages
cnt_for_pages = 0

for i in range(cnt):
    page = pdfReader.getPage(i)
    _page = page.extractText()
    speaker.save_to_file(_page, f'alice_in_wonderland{cnt_for_pages}.mp3')
    speaker.runAndWait()
    cnt_for_pages += 1

 


 

나는 이상한 나라의 앨리스를 pdf로 다운 받았고 같은 폴더에 저장시켜줬다.

 


 

 

위에 있는 코드를 실행시키니 바로

 

 

앨리스 오디오 북이 챕터별로 쫘라락 순서대로 저장되어있다.

 


 

 

여기서 주의할 점!!! 

저장소 위치는 딱히 지정하지 않으면 윈도우 기준으로는 user명의 디렉터리로 지정된다.

(코드를 실행시킨 곳이 아니다)

 

 

 


 

 

아 참고로 음성 변경하고 싶으면 다음과 같은 코드로 테스트해보고 맘에 드는 걸 골르면 된다.

물론 선택권은 두 가지밖에 없지만 인덱스 0번은 한국어에 특화된 여성 목소리고

1번은 영어 원어민 발음의 남성 목소리다.

 

각 언어에 알맞은 음성을 선택하면 된다. 

 

 

'''
voices = speaker.getProperty('voices') # this code is for changing voice
speaker.setProperty('voice', voices[1].id) # you can only choose index 0(female) and 1(male)
speaker.say("hello World!")
speaker.runAndWait()
'''

 

 


 

내가 받은 앨리스 소설책과 오디오북 샘플 몇 개를 첨부하겠다.

 

alice30.pdf
0.24MB

 

alice_in_wonderland17.mp3
0.14MB
alice_in_wonderland36.mp3
3.33MB

 


 

끝.

 

 

728x90
반응형