python语音分割_用7行Python代码构建自己的有声读物
歡迎關注?“小白玩轉Python”,發現更多 “有趣”
有聲讀物是我們可以通過音頻聽取一本書或者其他作品的內容,是現下一種很受歡迎的閱讀方式。類似的APP有:喜馬拉雅、得到和樊登讀書等。
但是如果你有一本pdf格式的書籍,那么你不需要借助上述app,也可以實現自己的有聲讀物哦~只需要跟隨小編學習如何用7行代碼實現自己的有聲讀物。
一、基本實現
Python中有大量不同用途的庫,在本文中,我們只需要用到兩個庫(pyttsx3,PyPDF2)來構建我們的有聲讀物。
可以通過pip來安裝這兩個庫,
pip install PyPDF2pip install pyttsx31.?讀取PDF文件
?PyPDF2是Python中專門用來處理pdf文件的庫,它允許在內存中對pdf進行操作。PyPDF2的主要功能如下所示:
·?提取文件信息,如題目、作者等·?按頁分割文件·?按頁合并文件·?裁剪頁·?將多個頁面合并為一個頁面·?加密和解密pdf文件通過這個庫,我們將 pdf 文件一頁一頁地拆分,讀取每一頁上的文本,并將文本發送到下一步。
import PyPDF2pdfReader = PyPDF2.PdfFileReader(open('file.pdf', 'rb'))2.?初始化揚聲器
Python的pyttsx3庫能夠實現脫機將文本轉換到語音。將上一步中識別到的文本傳遞給語音文本轉換器。
import pyttsx3speaker = pyttsx3.init()3.?播放有聲讀物
使用 PyPDF2實現從 pdf 文件中逐頁提取文本。通過讀取文本并將其輸入到 pyttsx3的揚聲器引擎,循環遍歷每一頁,它會大聲朗讀 pdf 頁面上的文本,最后停止pyttsx3的揚聲器引擎。
for page_num in range(pdfReader.numPages): text = pdfReader.getPage(page_num).extractText() speaker.say(text) speaker.runAndWait()speaker.stop()上述步驟的所有代碼如下所示:
import?pyttsx3,?PyPDF2pdfReader = PyPDF2.PdfFileReader(open('file.pdf', 'rb'))speaker = pyttsx3.init()for page_num in range(pdfReader.numPages): text = pdfReader.getPage(page_num).extractText() speaker.say(text) speaker.runAndWait()speaker.stop()二、改變音色、語速和音量
我們可以調整有聲讀物的速度和音量,當然也可以改變它的音色(例如男聲改為女聲)。
1.?速度
初始化 pyttsx3庫,并使用 getProperty (“ rate”)獲得當前的通話速率。使用 setProperty (‘ rate’ ,x)更改說話的頻率,其中 x = 100表示正常速度。
# Initialize the speakerspeaker = pyttsx3.init()rate = speaker.getProperty('rate') print(rate)speaker.setProperty('rate', 125)2.?音色
初始化 pyttsx3庫,并使用 getProperty (“ voice”)獲取說話者的當前性別。使用 setProperty (“ voice” ,voice [ x ])改變說話者的性別。這里 x = 0表示男性,x = 1表示女性。
voices = speaker.getProperty('voices')print(voices)#changing index, changes voices, 0 for malespeaker.setProperty('voice', voices[0].id)#changing index, changes voices, 1 for femalespeaker.setProperty('voice', voices[1].id)3.?音量
初始化 pyttsx3庫,并使用 getProperty (“ volume”)獲取當前音量。使用 setProperty (‘ volume’ ,x)更改揚聲器的音量。音量范圍是從0到1,其中0是靜音,1是最大音量。
volume = engine.getProperty('volume')print(volume)engine.setProperty('volume',1.0)4.將聲音保存到音頻文件:
使用下面的方法就可以將音頻輸出(audiobook)保存到 mp3文件中。
engine.save_to_file(text, 'audio.mp3')engine.runAndWait()三、結論:
在本文中,我們介紹了一個基本有聲讀物的實現,它可以使用幾行 python 代碼讀取整個 pdf 文檔并朗讀出來。為了獲得更好的音頻效果,還可以改變音色、調整速率和音量。
·? END? ·
HAPPY?LIFE總結
以上是生活随笔為你收集整理的python语音分割_用7行Python代码构建自己的有声读物的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Head First Java] -
- 下一篇: 微信小程序获取tabbar的高度_微信小