读书是一个好习惯,但听书使这个过程更加方便。有声读物代替了传统书籍,因为我们可以随时随地轻松地听它们。如果我们能编写一个有声读物制作器,将电子书pdf转换成有声读物并为我们阅读,那将是多么有用啊?
在本教程中,我们将使用Python构建一个有声书制作器,为我们读出一本书。
使用Python将电子书读成有声读物
让我们进入制作图书阅读器或将PDF电子书转换为有声读物的Python脚本的过程!
1.安装所需的模块
首先,我们需要安装所需的模块,这将大大减轻我们编码有声读物制造商的工作。我们使用pip软件包管理器安装pyttsx3和PyPDF3模块。
pyttsx3是Python中的一个文本到语音的转换库,而PyPDF3是一个在Python中读取和编辑PDF文件的库。
pip install pyttsx3
pip install PyPDF3
2.导入PDF阅读器和TTS模块
在一个Python文件中,我们首先要导入所需的模块。
import PyPDF3
import pyttsx3
现在我们初始化pyttsx3引擎对象来读取。
engine = pyttsx3.init()
3.打开并阅读PDF
现在我们已经初始化了我们的语音引擎,我们需要打开PDF来读取其中的内容。如图所示,我们把PDF的名称传给open方法。
如果PDF不在python脚本的同一目录下,你需要把名字和PDF的位置一起传给它。
book = open('sample.pdf', 'rb')
为了逐行读取pdf的内容,并按照语音,我们使用PyPDF3模块的PdffileReader方法,如图所示。
然后我们从pdf阅读器的对象中提取文本,使用extractText方法。
pdfRead= PyPDF3.PdfFileReader(book)
#to start the reading from 1st page in the pdf
page = pdfRead.getPage(0)
#to extract text to read
text = page.extractText()
4.讲述PDF
由于我们已经打开并阅读了pdf内容,我们现在需要将这些数据输入到我们的pyttsx3库的语音引擎中。
#takes in message to read or text
engine.say(text)
engine.runAndWait()
在执行脚本时,代码开始阅读通过的PDF。最后的代码是这样的。
import PyPDF3
import pyttsx3
engine = pyttsx3.init()
book = open('sample.pdf', 'rb')
pdfRead= PyPDF3.PdfFileReader(book)
#to start the reading from 1st page in the pdf
page = pdfRead.getPage(0)
#to extract text to read
text = page.extractText()
#takes in message to read or text
engine.say(text)
engine.runAndWait()
5.改变语音
pyttsx3库为我们提供了各种类型的语音更改,例如:
设置改变语音的速度
rate = engine.getProperty('rate') # gets the current rate of speech
engine.setProperty('rate', 125) # sets up new rate of speech (passed in as 125 to change to 1.25x or 150 to make it to 1.5x)
设置改变语音的声音
voices = engine.getProperty('voices') # gets the current voice type
#engine.setProperty('voice', voices[0].id) #changing index, changes voices. 0 for male
engine.setProperty('voice', voices[1].id) #changing index, changes voices. 1 for female
设置改变语音的音量
volume = engine.getProperty('volume') #gets the current volume (min=0 and max=1)
engine.setProperty('volume',1.0) # setting up volume level between 0 and 1
我们还可以使用下面的代码保存完整的有声书文件--即完整的pdf(书)的语音文件 (类型.mp3)。
engine.save_to_file('text, 'audiobook.mp3')
结语
关于如何用Python编写有声读物制作者的教程就到此为止。我们希望你喜欢这个关于将PDF转换为有声读物的简短教程。来吧,玩玩这个脚本,让它变得更加直观和自动化吧