用Python制作有聲小說
有不少朋友都熱衷于看小說。俗話說:小說閱讀一時(shí)爽,一直閱讀一直爽。但是小說閱讀時(shí)間久了,會(huì)給我們的眼睛帶來很嚴(yán)重的負(fù)擔(dān),造成眼部的一些不適。
為了解決這個(gè)問題,同時(shí)能夠讓大家體驗(yàn)小說的內(nèi)容,今天給大家用Python做個(gè)有聲小說轉(zhuǎn)換工具,通過爬取小說,并將小說轉(zhuǎn)化成語音形式,讓大家以聽的形式來“閱讀”小說,同時(shí)解放自己的雙眼。
01. 整體的思路如下

首先我們輸入想要閱讀小說的名稱和相應(yīng)的章節(jié);
然后將小說的文本進(jìn)行爬取并保存到本地的txt文檔之中;
接下來是讀取小說的文本,然后轉(zhuǎn)換為語音形式,并保存到本地的mp3文件中;
最后點(diǎn)擊播放該mp3文件即可
02. 小說的爬取
小說的文本我們爬取的小說來自于網(wǎng)站筆趣閣(https://www.biquge5200.com/)。先是輸入我們想要爬取的小說名稱 ,程序如下圖所示:

1. 構(gòu)造出需要爬取的小說名稱的鏈接
由于網(wǎng)頁會(huì)返回所有名字包含我們輸入名稱的小說,所以我們要進(jìn)行篩選,篩選出完全符合我們輸入名稱的小說,然后返回該小說的地址。如果找不到該小說,則程序退出。
2. 提取小說的章節(jié)
接下來是對(duì)小說相應(yīng)章節(jié)的提取,get_url函數(shù)返回所有章節(jié)的地址鏈接信息。get_txt函數(shù)。首先輸出所有章節(jié)的名稱,然后大家選擇自己想要閱讀的章節(jié),程序接下來便會(huì)爬取該章節(jié)的內(nèi)容,并返回選擇的章節(jié)名稱和章節(jié)的內(nèi)容。返回的小說內(nèi)容會(huì)被寫入到本地的特定文件夾當(dāng)中,也就完成了我們流程的前半部分。部分程序如下圖所示:

03.文本轉(zhuǎn)化為小說
經(jīng)過前面幾步,我們就可以將文本小說轉(zhuǎn)化為語音小說,并保存到本地的音頻文件當(dāng)中,部分程序如下圖所示:

我們利用的是百度AI的語音合成技術(shù),來將文本轉(zhuǎn)化為音頻。
官方文檔:
https://ai.baidu.com/ai-doc/SPEECH/Ik4nlz8l6
上面有詳細(xì)的安裝使用和示例代碼:


我們構(gòu)造一個(gè)語音合成的實(shí)例類,并命名為self.client。需要注意的是,由于每次上傳的文本最大不能超過1024個(gè)字節(jié),所以需要在程序中對(duì)字符串進(jìn)行切分,分批上傳,并將結(jié)果寫入到音頻文件中。
上圖程序中,synthesis函數(shù)中的各個(gè)參數(shù)都是可以進(jìn)行調(diào)節(jié)的,其中“vol”、“spd”、“pit”、“per”分別控制著音量、語速、語調(diào)和音色,大家可以根據(jù)自己的習(xí)慣進(jìn)行調(diào)節(jié)。
至此,我們便完成了從小說對(duì)應(yīng)章節(jié)的爬取到文本轉(zhuǎn)換為語音的全過程,最后,為大家?guī)淼氖且曨l演示:
這樣,大家就可以解放雙眼,用耳朵來“閱讀”小說啦。
如果文章對(duì)你有幫助,歡迎轉(zhuǎn)發(fā)/點(diǎn)贊/收藏~
作者:菜鳥哥
_往期文章推薦_
