如何用Pyttxs3、PyPDF3和Tkinter创建一本有声书

366 阅读3分钟

用Pyttxs3、PyPDF3和Tkinter创建有声读物

智者说,无论你有多忙,都应该抽出时间来读一本好书,以避免自寻烦恼的无知。作为软件开发者,我们知道这句话的现实意义,但时间对我们来说永远是不够的。这就是为什么我们跑去找有声读物,我们都知道它们的价格并不便宜,也不免费。

在本教程中,我们将学习如何创建一个有声读物转换器,我们将使用Python库把PDF文件转换成与之相当的有声读物。

简介

为了建立我们的有声书转换器,我们将使用以下Python库。Pyttsx3,PyPDF3tkinter 。后者tkinter ,将用于创建一个对话窗口,我们将通过它来选择我们所需要的PDF文件。

随着我们的继续,我们将深入研究其他库。

前提条件

要理解这篇文章,读者需要具备以下条件。

  • 对Python有良好的理解。
  • [Python3]安装在电脑上。
  • [Python text to speech]安装了库的第3版。
  • [Python PDF]安装了第3版。
  • 充分了解 [Tkinter]。

什么是PyPDF3?

从PyPDF3是一个纯Python库,是一个PDF工具包。它的建立是为了帮助完成以下工作。

  • 提取文档信息(标题、作者等)。
  • 逐页拆分文档。
  • 逐页合并文档。
  • 裁剪页面。
  • 将多个页面合并为一个页面。
  • 加密和解密PDF文件。

需要注意的是,由于这个库是从文件页面的角度建立的,它在处理没有正确页码的PDF文件时有问题。

应用

它可以作为管理或操作PDF的网站的工具。

什么是Pyttsx3?

Python Text to Speech version 3 (pyttsx3)是一个Python中的文本到语音的转换库。与其他库不同,它可以离线工作,并且与Python 2和3都兼容。

应用

它可以应用于桌面和移动应用程序和网站,为视力障碍者将文本转换为语音。

它可以用来创建有声读物。

安装要求

我们将在一个虚拟环境中安装本教程所需的软件包。虚拟环境有助于我们的项目管理。

我们将使用pipenv 来创建我们的虚拟环境。

首先,如果你的机器上没有安装pipenv ,请运行以下命令来安装它。

pip install pipenv

然后,为了创建虚拟环境,让我们通过运行以下命令来安装所需的软件包。

pipenv install pyttsx3
pipenv install PyPDF3

然后,我们用下面的命令激活环境。

pipenv shell

在这之后,我们就可以写我们的代码了,你将在下面看到。

编写我们的代码

在我们的虚拟环境中,让我们创建一个文件并将其命名为main.py 。然后,在其中写下以下代码。

# We first import the libraries we just installed
import pyttsx3
import PyPDF3
from tkinter import Tk # tkinter comes pre-installed with Python
from tkinter.filedialog import askopenfilename

Tk().withdraw() # prevents the root window from appearing

# Open the dialog window
file = askopenfilename()

# Read the name of the pdf file from the user
pdfreader = PyPDF3.PdfFileReader(file)

# Read the number of pages in the pdf file
pages = pdfreader.numPages

# Read all data from each page of the pdf file
for no in range(0,pages):
page = pdfreader.getPage(no)
text = page.extractText()
audio = pyttsx3.init()
audio.say(text)

# Save the audio in an mp3 file
'''Make sure to include the `save_to_file` method after the `say` method to get to record the audio of your book.'''
audio.save_to_file(text, 'myaudiobook.mp3')
audio.runAndWait()

结果

运行上述代码后,你会看到一个对话窗口弹出。

Dialog Window

选择你所选择的PDF文件,当你的机器为你阅读时,你就可以享受你的书了。

注意:不是所有的PDF文件都会被读完并记录。尝试使用未编号页的PDF文件以获得更好的效果。

总结

你可以用[Python文本到语音]库探索更多的东西,以便能够改变语音、改变语速和语量。