亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python網(wǎng)頁正文轉(zhuǎn)換語音文件的操作方法

 更新時間:2018年12月09日 10:51:47   作者:Python農(nóng)夫  
這篇文章主要介紹了Python網(wǎng)頁正文轉(zhuǎn)換語音文件的操作方法,需要的朋友可以參考下

天氣真的是越來越冷啦,有時候我們想翻看網(wǎng)頁新聞,但是又冷的不想把手拿出來,移動鼠標(biāo)翻看。這時候,是不是特別想電腦像講故事一樣,給我們念出來呢?人生苦短,我有python啊,試試用 Python 來朗讀給你聽吧。

網(wǎng)頁轉(zhuǎn)換成語音,步驟無外乎:

網(wǎng)頁正文識別,獲取到正文的文本內(nèi)容;

文本轉(zhuǎn)語音,通過接口將文本轉(zhuǎn)換成語音文件;

語音文件的發(fā)聲,即將語音文件讀出;

1 網(wǎng)頁正文識別

之所以用 Python,就是因為 Python 有著豐富的庫,網(wǎng)頁正文識別也不在話下。這里用

readability、goose3

1.1 readability

readability 支持 Python3,使用 pip install readability-lxml 安裝即可。

readability 使用起來也很方便:

import requests
from readability import Document
response = requests.get('http://news.china.com/socialgd/10000169/20180616/32537640_all.html')
doc = Document(response.text)
print(doc.title())

但是 readability 提取到的正文內(nèi)容不是文本,里面仍包含 HTML 標(biāo)簽。

當(dāng)然也可以結(jié)合其他組件再對 HTML 進行處理,如 html2text,我們這里就不再延伸,有興趣的可以自行嘗試。

1.2 goose3

Goose 本來是一個用 Java 編寫的文章提取器,后來就有了 Python 實現(xiàn)版: goose3 。

使用起來也很方便,同時對中文支持也不錯。使用 pip install goose3 即可安裝。

>>> from goose3 import Goose
>>> from goose3.text import StopWordsChinese
>>> url = 'http://news.china.com/socialgd/10000169/20180616/32537640_all.html'
>>> g = Goose({'stopwords_class': StopWordsChinese})
>>> article = g.extract(url=url)
>>> print(article.cleaned_text[:150])

北京時間6月15日23:00(圣彼得堡當(dāng)?shù)貢r間18:00),2018年世界杯B組一場比賽在圣彼得堡球場展開角逐,伊朗1比0險勝摩洛哥,伊朗前鋒阿茲蒙半場結(jié)束前錯過單刀機會,鮑哈杜茲第95分鐘自擺烏

龍。這是伊朗20年來首度在世界杯決賽圈取勝。

本屆世界杯,既相繼出現(xiàn)替補便進球,貼補梅開二度以及東道主

可以看出網(wǎng)頁正文提取效果還不錯,基本滿足我們的要求,可以使用!

注意:goose 還有另外一個 Python2 的版本:Python-Goose,使用方法和 goose3 基本一樣。

2 文本轉(zhuǎn)語音

文本轉(zhuǎn)語音,百度、阿里、騰訊、訊飛等都有提供 REST API 接口,阿里和騰訊的申請相對時間較長,阿里的貌似還要收費,百度和訊飛的在線申請后即可使用。

沒辦法,好的東西得來總是要曲折一些。其中百度的沒有調(diào)用量的限制(其實默認是 200000 次/天),訊飛有每天 500 次的限制。

這里我們使用百度的 REST API 接口中的語言合成接口,一方面原因是百度的調(diào)用次數(shù)沒有限制,另一方面,我大致看了下訊飛的接口文檔,接口限制還是比較多的。還有就是百度提供了 REST API 的 Python 封裝,使用也更方便。

2.1 baidu-aip 的使用

百度提供了 Python SDK,使用 pip install baidu-aip 可以直接安裝。接口的使用可以參考接口文檔:http://ai.baidu.com/docs#/TTS-Online-Python-SDK/top。

使用示例如下:

from aip import AipSpeech
"""

你的 APPID AK SK

均可在服務(wù)控制臺中的應(yīng)用列表中查看。

"""
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
result = client.synthesis('你好,你在做什么', 'zh', 3, {
'vol': 5,
})
# 識別正確返回語音二進制 錯誤則返回dict 參照下面錯誤碼
if not isinstance(result, dict):
with open('auido.mp3', 'wb') as f:
f.write(result)

接口參數(shù):

接口對單次傳入的文本進行了限制,合成文本長度必須小于 1024 字節(jié),如果文本長度過長,就需要進行切割處理,采用多次請求的方式,分別轉(zhuǎn)換成語音文件,最后再將多個語音文件合并成一個。

2.2 文本切割

可以使用如下代碼將文本分割成多個長度為 500 的文本列表

# 將文本按 500 的長度分割成多個文本
text_list = [text[i:i+500] for i in range(0, len(text), 500)]

我們使用 pydub 來處理生成的音頻文件。使用 pip install pydub 即可安裝。

另外還 Ubuntu 環(huán)境需要安裝依賴的,使用 sudo apt-get install libav-tools 安裝即可,而在 Windows 環(huán)境需要到 https://ffmpeg.zeranoe.com/builds/ 下載 FFmpeg,并將其配置到環(huán)境變量中。

若還有問題,可以參考官網(wǎng)配置:https://github.com/jiaaro/pydub。

# 合并音頻文件
def merge_voice(file_list):
voice_dict = {}
song = None
for i,f in enumerate(file_list):
if i == 0:
song = AudioSegment.from_file(f,"mp3")
else:
# 拼接音頻文件
song += AudioSegment.from_file(f,"mp3")
# 刪除臨時音頻
os.unlink(f)
# 導(dǎo)出合并后的音頻文件,格式為MP3格式
file_name = str(uuid.uuid1()) + ".mp3"
song.export(file_name, format="mp3")
return file_name

通過百度的接口,我們可以將文字轉(zhuǎn)化成音頻文件,下面的問題就是如何播放音頻文件。

3 音頻文件播放

網(wǎng)上獲取到 Python 播放 wav 文件的方式由好幾種,包括 pyaudio、pygame、winsound、playsound。不過測試下來,只有 playsound 成功。其他方式有興趣的可以試下,有問題可以留言交流。

使用 pip install playsound 安裝后即可使用。

使用也很簡單

>>> from playsound import playsound
>>> playsound('/path/to/a/sound/file/you/want/to/play.mp3')

說明:音頻的播放需要在圖形化頁面下運行,因為命令行模式下,沒有播放聲音的出口。

運行后,代碼就會自動解析網(wǎng)頁并進行朗讀啦。

至此,網(wǎng)頁到音頻的轉(zhuǎn)換就結(jié)束了,當(dāng)然程序沒有這么完美,比如中英文混合的網(wǎng)頁解析和轉(zhuǎn)換的結(jié)果就不怎么理想,但是純中文的新聞頁面效果還是不錯的。

總結(jié)

以上所述是小編給大家介紹的Python網(wǎng)頁正文轉(zhuǎn)換語音文件的操作方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 39條Python語句實現(xiàn)數(shù)字華容道

    39條Python語句實現(xiàn)數(shù)字華容道

    這篇文章主要為大家詳細介紹了39條Python語句實現(xiàn)數(shù)字華容道,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Python編程tkinter庫Canvas實現(xiàn)涂鴉顏色表及圍棋盤示例

    Python編程tkinter庫Canvas實現(xiàn)涂鴉顏色表及圍棋盤示例

    這篇文章主要為大家介紹了Python編程中如何使用tkinter庫Canvas來實現(xiàn)涂鴉,顏色表及圍棋盤的示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Python 5種常見字符串去除空格操作的方法

    Python 5種常見字符串去除空格操作的方法

    這篇文章主要給大家分享的是Python 5種常見字符串去除空格操作的方法,包括有strip()方法、rstrip()方法、replace()方法、join()方法+split()方法,下面文章是詳細內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • 分析Python中設(shè)計模式之Decorator裝飾器模式的要點

    分析Python中設(shè)計模式之Decorator裝飾器模式的要點

    這篇文章主要介紹了Python中設(shè)計模式之Decorator裝飾器模式模式,文中詳細地講解了裝飾對象的相關(guān)加鎖問題,需要的朋友可以參考下
    2016-03-03
  • Python操作MySQL數(shù)據(jù)庫的入門指南

    Python操作MySQL數(shù)據(jù)庫的入門指南

    MySQL是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),廣泛應(yīng)用于各種應(yīng)用程序和網(wǎng)站,在本篇技術(shù)博客中,我們將探討如何使用Python操作MySQL數(shù)據(jù)庫,需要的可以收藏一下
    2023-06-06
  • python3 使用ssh隧道連接mysql的操作

    python3 使用ssh隧道連接mysql的操作

    這篇文章主要介紹了python3 使用ssh隧道連接mysql的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Python讀取Json字典寫入Excel表格的方法

    Python讀取Json字典寫入Excel表格的方法

    這篇文章主要為大家詳細介紹了Python讀取Json字典寫入Excel表格的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python使用turtle庫繪制奧運五環(huán)

    python使用turtle庫繪制奧運五環(huán)

    turtle也叫海龜,是turtle繪圖體系的python實現(xiàn),這篇文章主要介紹了python使用turtle庫繪制奧運五環(huán),本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2020-02-02
  • 利用Anaconda創(chuàng)建虛擬環(huán)境的全過程

    利用Anaconda創(chuàng)建虛擬環(huán)境的全過程

    因為多次重新配置環(huán)境,這些命令每次都要用,每次都忘記,需要重新搜索,所以記錄這一過程,下面這篇文章主要給大家介紹了關(guān)于利用Anaconda創(chuàng)建虛擬環(huán)境的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Django實現(xiàn)下載超大CSV文件的示例代碼

    Django實現(xiàn)下載超大CSV文件的示例代碼

    這篇文章主要為大家詳細介紹了如何利用 Django 進行大型 CSV 文件的流傳輸,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01

最新評論