用python将pdf转化为有声读物
作者:中意灬 发布时间:2021-02-02 10:06:46
标签:Python,PDF,MP3
现在看小说已经有了听书这个功能了,但是有时候你想看的书的听书功能收费,这时候可能大家就只能老老实实选择看或者付费听。
(还能拿来练英语听力欸嘿嘿)
于是我想到,可不可以用python来实现语言播报呢,说干就干,通过上网搜索,发现python中pyttsx3这个模块可以实现语音播报,而pdfplumber或PyPDF2模块实现pdf转化为文字,我采用的是pdfplumber这个模块。
首先我们先下载模块,可以自己pip install 模块名,或者通过清华源下载(会更快)
清华源地址:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
然后我们将所需要的pdf文件添加到代码同一个文件夹下(方便调用,也可以使用绝对路径)
代码
# @Time:2022/2/120:29
# @Author:中意灬
# @File:有声读物.py
# @ps:tutu qqnum:2117472285
import pyttsx3
import pdfplumber
pdf=pdfplumber.open(input('请输入书名:'))
pg_no=int(input("请输入你想从第几页读着走:"))
#总页数
numpages=len(pdf.pages)
for num in range((pg_no-1),numpages):
#获取指定文章页数位置的内容
first_page=pdf.pages[num]
#获取文本内容
text=first_page.extract_text()
#初始化
speaker=pyttsx3.init()
#去掉文章中的换行符
text=text.replace('\n','')
#调整人声类型,voice[0]为中文女声,可自己切换其他的,但注意英文女声无法读取中文
voices=speaker.getProperty('voices')
speaker.setProperty('voice',voices[0].id)
#调整语速
rate=speaker.getProperty('rate')
speaker.setProperty('rate',150)
#调整音量,单位为0-1
volume=speaker.getProperty('volume')
speaker.setProperty('volume',1)#欸嘿,我没调
#读
speaker.say(text)
#保存音频
# speaker.save_to_file(text, 'T1.mp3')
speaker.runAndWait()
运行结果:
无法上传音频,所以大家听不到了,就是机械女生的声音,没啥好听的
但是大家可以自己下载语言包,下载自己喜欢的语言包,比如甜美弯弯腔。
来源:https://blog.csdn.net/qq_55977554/article/details/122891477
0
投稿
猜你喜欢
- 在Flash播放器运行时,将不同来源的资源划分到独立的沙箱(sandbox)内,不同沙箱之间不能彼此操作数据(除非目标沙箱做过一些设置,授权
- 导言在前面的教程里我们学习了DataList提供了一些风格样式的属性.而且我们还学习了如何定义HeadStyle, ItemStyle, A
- Javascript 中的闭包其实很改语言中很难理解的一部分。感谢 Stuart 提供了那么棒的 PPT,它深入浅出的解释了 Javascr
- 最近刚重构完,我们的一个项目,由原来的jsp模式改为了前后端分离,前端选型为vue,开发完成之后第一件时间就是要部署测试,服务端选的是Apa
- 很多深度神经网络模型需要加载预训练过的Vgg参数,比如说:风格迁移、目标检测、图像标注等计算机视觉中常见的任务。那么到底如何加载Vgg模型呢
- 客户端: <%@ Page Language="C#" AutoEventWireup="true&qu
- python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), i
- 插件下载:blueideasearch.xpi首先第一步 说一下怎么样查看firefox插件的源码, 就我上边写的那个东西,把它下载下来.将
- 相信大家都知道jQuery是最优秀的Javascript框架之一。以其语法简单灵活而大受Web designer欢迎。所以很多网页设计师结合
- 本文实例讲述了JS实现文字放大效果的方法。分享给大家供大家参考。具体实现方法如下:<!DOCTYPE html PUBLIC &quo
- 今天看了篇关于Web Form Design的成功案例,虽然讲的事情很简单,但总结了一些方法,翻译过来做个原始积累吧,以后写东西举例子时也好
- 具体特征如下: 1、通过模板实现俄文正常。 2、通过后台数据库生成的静态俄文信息,后台显示正常, 前台乱码。 3、英文正常。 和该主题相关的
- 本文实例总结了常用SQL语句优化技巧。分享给大家供大家参考,具体如下:除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQL性能问题发
- GO 语言的 for…range 能做什么呢?for…range 如何使用 ?for…range 的返回
- 有些时间没更新blog了,这两天为了更新<code collection>,于是重写了语法高亮的模块,这次是一个引擎,你可以根据
- vue项目无法删除问题今天删除本地的vue项目,一直提示“操作无法完成,因为其中的文件夹或文件已在另一个程序组打开,请关
- 我们经常在B站上看到一些字符鬼畜视频,主要就是将一个视频转换成字符的样子展现出来。看起来是非常高端,但是实际实现起来确是非常简单,我们只需要
- 关于用鼠标滚动到某个位置我们就去加载数据,这样的场景与业务需求现在越来越常见,现在来分析下《vue.js 实战》中作者的一个解决策略:1.
- 上篇文章给大家介绍过 Python脚本破解Linux口令(crypt模块) 感兴趣的朋友点击查
- 本文实例讲述了Python用于学习重要算法的模块pygorithm。分享给大家供大家参考,具体如下:这是一个能够随时学习重要算法的Pytho