用python將pdf轉(zhuǎn)化為有聲讀物
現(xiàn)在看小說(shuō)已經(jīng)有了聽書這個(gè)功能了,但是有時(shí)候你想看的書的聽書功能收費(fèi),這時(shí)候可能大家就只能老老實(shí)實(shí)選擇看或者付費(fèi)聽。

(還能拿來(lái)練英語(yǔ)聽力欸嘿嘿)
于是我想到,可不可以用python來(lái)實(shí)現(xiàn)語(yǔ)言播報(bào)呢,說(shuō)干就干,通過(guò)上網(wǎng)搜索,發(fā)現(xiàn)python中pyttsx3這個(gè)模塊可以實(shí)現(xiàn)語(yǔ)音播報(bào),而pdfplumber或PyPDF2模塊實(shí)現(xiàn)pdf轉(zhuǎn)化為文字,我采用的是pdfplumber這個(gè)模塊。
首先我們先下載模塊,可以自己pip install 模塊名,或者通過(guò)清華源下載(會(huì)更快)
清華源地址:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
然后我們將所需要的pdf文件添加到代碼同一個(gè)文件夾下(方便調(diào)用,也可以使用絕對(duì)路徑)
代碼
# @Time:2022/2/120:29
# @Author:中意灬
# @File:有聲讀物.py
# @ps:tutu qqnum:2117472285
import pyttsx3
import pdfplumber
pdf=pdfplumber.open(input('請(qǐng)輸入書名:'))
pg_no=int(input("請(qǐng)輸入你想從第幾頁(yè)讀著走:"))
#總頁(yè)數(shù)
numpages=len(pdf.pages)
for num in range((pg_no-1),numpages):
#獲取指定文章頁(yè)數(shù)位置的內(nèi)容
first_page=pdf.pages[num]
#獲取文本內(nèi)容
text=first_page.extract_text()
#初始化
speaker=pyttsx3.init()
#去掉文章中的換行符
text=text.replace('\n','')
#調(diào)整人聲類型,voice[0]為中文女聲,可自己切換其他的,但注意英文女聲無(wú)法讀取中文
voices=speaker.getProperty('voices')
speaker.setProperty('voice',voices[0].id)
#調(diào)整語(yǔ)速
rate=speaker.getProperty('rate')
speaker.setProperty('rate',150)
#調(diào)整音量,單位為0-1
volume=speaker.getProperty('volume')
speaker.setProperty('volume',1)#欸嘿,我沒(méi)調(diào)
#讀
speaker.say(text)
#保存音頻
# speaker.save_to_file(text, 'T1.mp3')
speaker.runAndWait()運(yùn)行結(jié)果:

![]()
無(wú)法上傳音頻,所以大家聽不到了,就是機(jī)械女生的聲音,沒(méi)啥好聽的

但是大家可以自己下載語(yǔ)言包,下載自己喜歡的語(yǔ)言包,比如甜美彎彎腔。
到此這篇關(guān)于用python將pdf轉(zhuǎn)化為有聲讀物的文章就介紹到這了,更多相關(guān)python pdf轉(zhuǎn)為mp3內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python socket處理client連接過(guò)程解析
這篇文章主要介紹了Python socket處理client連接過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
pytorch中節(jié)約顯卡內(nèi)存的方法和技巧
顯存不足是很多人感到頭疼的問(wèn)題,畢竟能擁有大量顯存的實(shí)驗(yàn)室還是少數(shù),而現(xiàn)在的模型已經(jīng)越跑越大,模型參數(shù)量和數(shù)據(jù)集也越來(lái)越大,所以這篇文章給大家總結(jié)了一些pytorch中節(jié)約顯卡內(nèi)存的方法和技巧,需要的朋友可以參考下2023-11-11
python使用collections模塊的容器數(shù)據(jù)類型高效處理數(shù)據(jù)
這篇文章主要為大家介紹了python使用collections模塊的容器數(shù)據(jù)類型高效處理數(shù)據(jù)的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
Python獲取中國(guó)節(jié)假日數(shù)據(jù)記錄入JSON文件
項(xiàng)目系統(tǒng)內(nèi)置的日歷應(yīng)用為了提升用戶體驗(yàn),特別設(shè)置了在調(diào)休日期顯示“休”的UI圖標(biāo)功能,那么問(wèn)題是這些調(diào)休數(shù)據(jù)從哪里來(lái)呢?我嘗試一種更為智能的方法:Python獲取中國(guó)節(jié)假日數(shù)據(jù)記錄入JSON文件2025-04-04
Python內(nèi)置函數(shù)hex()的實(shí)現(xiàn)示例
這篇文章主要介紹了Python內(nèi)置函數(shù)hex()的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Django集成Redis數(shù)據(jù)庫(kù)的操作指南
本文將詳細(xì)介紹如何在 Django 項(xiàng)目中集成 Redis 數(shù)據(jù)庫(kù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
python實(shí)現(xiàn)linux下使用xcopy的方法
這篇文章主要介紹了python實(shí)現(xiàn)linux下使用xcopy的方法,可實(shí)現(xiàn)模仿windows下的xcopy命令功能,需要的朋友可以參考下2015-06-06
Python+ChatGPT制作一個(gè)AI實(shí)用百寶箱
ChatGPT最近在互聯(lián)網(wǎng)掀起了一陣熱潮,其高度智能化的功能能夠給我們現(xiàn)實(shí)生活帶來(lái)諸多的便利。本文就來(lái)用Python和ChatGPT制作一個(gè)AI實(shí)用百寶箱吧2023-02-02
python機(jī)器學(xué)習(xí)庫(kù)常用匯總
這篇文章主要為大家匯總了常用python機(jī)器學(xué)習(xí)庫(kù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11

