Python을 사용하여 PDF 문서를 MP3 오디오로 변환

1. 음성 도구로

WeChat 독서는 책의 텍스트를 오디오로 변환 할 수있는 기능이 있으며 소리가 잘 최적화되어 기존의 기계식 독서보다 훨씬 편안하게 들립니다.

파이썬에는 텍스트를 음성으로 변환하고, 영어와 중국어를 지원하며, 음성 속도, 억양을 조정하고 mp3를 내보낼 수있는 툴킷이 있다는 것을 기억합니다.

Github에서 확인 된이 라이브러리는 pyttsx3입니다.

많은 사람들이 파이썬을 배우고 어디서부터 시작해야할지 모릅니다.
많은 사람들이 파이썬을 배우고 기본 문법을 습득 한 후 시작할 사례를 어디에서 찾을 지 모릅니다.
사례 연구를 수행 한 많은 사람들은 고급 지식을 배우는 방법을 모릅니다.
이 세 가지 유형의 사람들을 위해 비디오 자습서, 전자 책 및 코스 소스 코드를 무료로받을 수있는 좋은 학습 플랫폼을 제공 할 것입니다! ?? ¤
QQ 그룹 : 828010317

간단히 말해서, pyttsx3는 텍스트를 음성으로 변환하고 오프라인으로 작업 할 수 있으므로 매우 실용적입니다.

설치는 비교적 쉽습니다. pip를 사용하여 명령 줄에서 직접 설치합니다.

pip install pyttsx3

PDF 책을 오디오로 변환 해 보겠습니다.

어떤 책을 사용합니까? 최근에 그룹에서 장 레이의 새로운 전자 책 "Value"를 게시하는 것을 보았습니다. 올해 막 출판 된 베스트셀러 책이 만연합니다. 이전에 WeChat에서 읽은 적이 있으며 저자의 장기적인 견해를 확신합니다.

그게 다야.

2. PDF를 텍스트로

PDF를 음성으로 변환하는 것이므로 먼저 PDF의 텍스트를 읽은 다음 pyttsx3를 사용하여 음성을 변환해야합니다.

Python에서 PDF를 조작하기위한 도구 라이브러리는 주로 PyPDF2이지만 코딩이 약간 번거 롭다는 것을 알았으므로 구문이 PyPDF2와 비슷하고 사용하기가 매우 부드러운 다른 라이브러리 인 pdfplumber로 변경했습니다.

pdfplumber는 작지만 강력한 텍스트, 표, 형식 등 모든 종류의 정보를 PDF로 처리 할 수 ​​있습니다.

# 读取PDF文档
pdf = pdfplumber.open("价值.pdf")

# 获取页数
print("总页数:",len(pdf.pages))
print("-----------------------------------------")

# 读取第4页
first_page = pdf.pages[3]
print("本页:",first_page.page_number+1)
print("-----------------------------------------")

# 导出第4页文本
text = first_page.extract_text()
print(text)

산출:

위의 코드는 여러 가지 작업을 수행합니다.  "PDF 문서 읽기, 페이지 수 읽기, 4 페이지 읽기, 4 페이지 텍스트 출력"

3. 텍스트 음성 변환

다음으로 4 페이지의 텍스트를 오디오로 변환하기 시작합니다.

import pyttsx3

# 初始化来获取语音引擎
engine = pyttsx3.init()

# 去掉文本中的换行符
text = text.replace('\n','')

# 朗读文本
engine.say(text)
engine.runAndWait()

위의 코드는 pyttsx3를 사용하여 텍스트를 오디오로 변환 한 다음 소리내어 읽습니다. jupyter 노트북에서 실험을했는데 코드가 실행되면 컴퓨터가 직접 읽습니다.

생성 된 오디오를 mp3 형식으로 저장할 수도 있습니다.

# 保存音频到本地,格式为mp3
engine.save_to_file(text, 'test.mp3')
engine.runAndWait()

물론 사운드의 유형, 속도 및 크기를 조정할 수도 있습니다.

# 调整人声类型
voices = engine.getProperty('voices')  
engine.setProperty('voice', voices[0].id)

# 调整语速,范围一般在0~500之间
rate = engine.getProperty('rate')                         
engine.setProperty('rate', 200)     

# 调整声量,范围在0~1之间
volume = engine.getProperty('volume')                         
engine.setProperty('volume',0.8)

마지막으로 생성 된 음성이 어떻게 생겼는지 들어 보시겠습니까?

추천

출처blog.csdn.net/Python_sn/article/details/111170754