一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python pyttsx3|文本朗讀(各種語言)...

 大傻子的文淵閣 2020-11-20

Python文字轉(zhuǎn)語音

程序員,在其他人眼中往往都是高冷的存在,在他們的眼中能用代碼解決的問題絕對不考慮其他的方法,本文讓我們用Python來提升一下高冷的檔次,讓我們用代碼來“說話”。

安裝pyttsx3

安裝

下面就讓我們來看一下Python是怎樣開口“說話“的。

我們先安裝需要的庫pyttsx3:

pip install pyttsx3

語音引擎工廠

類似于設(shè)計模式中的“工廠模式”,pyttsx3通過初始化來獲取語音引擎。當(dāng)我們第一次調(diào)用init操作的時候,會返回一個pyttsx3的engine對象,再次調(diào)用的時候,如果存在engine對象實例,就會使用現(xiàn)有的,否則再重新創(chuàng)建一個。

pyttsx.init([driverName : string, debug : bool]) → pyttsx.Engine

從方法聲明上來看,第一個參數(shù)指定的是語音驅(qū)動的名稱,這個在底層適合操作系統(tǒng)密切相關(guān)的。如下:

      1.drivename:由pyttsx3.driver模塊根據(jù)操作系統(tǒng)類型來調(diào)用,默認(rèn)使用當(dāng)前操作系統(tǒng)可以使用的最好的驅(qū)動。

            sapi5 - SAPI5 on Windows

            nsss - NSSpeechSynthesizer on Mac OS X

            espeak - eSpeak on every other platform

      2.debug: 這第二個參數(shù)是指定要不要以調(diào)試狀態(tài)輸出,建議開發(fā)階段設(shè)置為True。

函數(shù)說明

本節(jié)我們再來了解一下pyttsx3.engine.Engine中所對應(yīng)的函數(shù)說明。

- connect

參數(shù):

  topic(string):要描述的事件名稱;

  cb(callable):回調(diào)函數(shù)。

返回值:

  dict

函數(shù)說明:

  在給定的topic上添加回調(diào)通知

- disconnect

參數(shù):

  token(dict):回調(diào)失聯(lián)的返回標(biāo)記 

返回值:

  Void

函數(shù)說明:

  結(jié)束連接

- endLoop

函數(shù)說明:

  簡單來說就是結(jié)束事件循環(huán)

- getProperty

參數(shù):

  name(string):rate: 每分鐘字?jǐn)?shù)的語音速率,默認(rèn)為每分鐘200個。

   name(string):voice: 語音的字符串標(biāo)識符。

   name(string):voices: pyttsx3.voice.Voice描述符對象列表。

   name(string):volume:音量的大小。

返回值:

  Object

函數(shù)說明:

  獲取當(dāng)前引擎實例的屬性值。

- setProperty

參數(shù):

  name(string):rate: 每分鐘字?jǐn)?shù)的語音速率,默認(rèn)為每分鐘200個。

   name(string):voice: 語音的字符串標(biāo)識符。

   name(string):volume:音量的大小。

  value(int):rate: 設(shè)置每分鐘讀的字?jǐn)?shù)。

  value:voice:設(shè)置發(fā)音,后文中會再講到。

  valu(float):volume:設(shè)置音量大小,0.0-1.0之間;默認(rèn)1.0。

返回值:

  Object

函數(shù)說明:

  獲取當(dāng)前引擎實例的屬性值。

- say

參數(shù):

  text(unicode):要進行朗讀的文本數(shù)據(jù)。

  name(strin):關(guān)聯(lián)發(fā)音人(一般用不到)

函數(shù)說明:

  預(yù)設(shè)要朗讀的文本數(shù)據(jù)

- runAndWait

函數(shù)說明:

   當(dāng)事件隊列中事件全部清空的時候返回。

- startLoop

參數(shù):

   [useDriverLoop(bool)]:是否啟用驅(qū)動循環(huán)。

函數(shù)說明:

   開啟事件隊列

- stop

函數(shù)說明:

   停止當(dāng)前講話并清除命令隊列。

簡單的中文發(fā)音

先來讓我們學(xué)習(xí)一下最簡單的“說話”方法,我們不需要進行任何的設(shè)置,只要傳入想要朗讀的文本就可以了。

# 語音播報模塊import pyttsx3# 模塊初始化engine = pyttsx3.init()print('準(zhǔn)備開始語音播報...')engine.say('我高冷,我并不想說話~')# 等待語音播報完畢engine.runAndWait()

設(shè)置參數(shù)的發(fā)音方式

在進行設(shè)置參數(shù)的發(fā)音方式的時候,我們需要注意一點,在該模塊的內(nèi)置聲音選擇函數(shù)執(zhí)行的時候?qū)⒉⒉荒芷ヅ渲形陌l(fā)音,所以我們用英文來進行一下默認(rèn)參數(shù)的嘗試。

# 語音播報模塊import pyttsx3# 模塊初始化engine = pyttsx3.init()print('準(zhǔn)備開始語音播報...')# 設(shè)置發(fā)音速率,默認(rèn)值為200rate = engine.getProperty('rate')engine.setProperty('rate', rate - 50)# 設(shè)置發(fā)音大小,范圍為0.0-1.0volume = engine.getProperty('volume')engine.setProperty('volume', 0.6)# 設(shè)置默認(rèn)的聲音:voices[0].id代表男生,voices[1].id代表女生voices = engine.getProperty('voices')engine.setProperty('voice', voices[1].id)# 添加朗讀文本engine.say('Not everyone can become a great artist.')# 等待語音播報完畢engine.runAndWait()

有趣的中文方言發(fā)音

雖然在內(nèi)置的發(fā)音方式中我們不能更換音色,但是經(jīng)過一番查找后我發(fā)現(xiàn),我們還可以去調(diào)用其他的語音播報API,這樣就完美的解決了更改發(fā)音的問題,并且還能支持很多方言,來用我們最開始聽到的語音播報來舉個例子,代碼如下:

# 語音播報模塊import pyttsx3msg = '''今天我,寒夜里看雪飄過懷著冷卻了的心窩漂遠方風(fēng)雨里追趕,霧里分不清影蹤天空海闊你與我可會變(誰沒在變)多少次,迎著冷眼與嘲笑從沒有放棄過心中的理想一剎那恍惚, 若有所失的感覺不知不覺已變淡心里愛(誰明白我)原諒我這一生不羈放縱愛自由也會怕有一天會跌倒背棄了理想 ,誰人都可以哪會怕有一天只你共我'''# 模塊初始化engine = pyttsx3.init()volume = engine.getProperty('volume')# 標(biāo)準(zhǔn)的粵語發(fā)音voices = engine.setProperty('voice', "com.apple.speech.synthesis.voice.sin-ji")# 普通話發(fā)音# voices = engine.setProperty(#     'voice', "com.apple.speech.synthesis.voice.ting-ting.premium")# 臺灣甜美女生普通話發(fā)音# voices = engine.setProperty(#     'voice', "com.apple.speech.synthesis.voice.mei-jia")print('準(zhǔn)備開始語音播報...')# 輸入語音播報詞語engine.setProperty('volume', 0.7)engine.say(msg)engine.runAndWait()engine.stop()

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    麻豆一区二区三区在线免费| 国产超碰在线观看免费| 午夜精品成年人免费视频| 深夜少妇一区二区三区| 国产水滴盗摄一区二区| 亚洲综合日韩精品欧美综合区| 国产精品欧美一级免费| 国产成人精品资源在线观看| 中日韩免费一区二区三区| 天堂热东京热男人天堂| 日韩美女偷拍视频久久| 欧洲亚洲精品自拍偷拍| 五月婷婷缴情七月丁香| 精品午夜福利无人区乱码| 免费高清欧美一区二区视频| 中文字幕一区二区三区大片| 国产在线一区二区免费| 国产水滴盗摄一区二区| 男人把女人操得嗷嗷叫| 男人的天堂的视频东京热| 国产一区欧美一区日本道| 欧美激情视频一区二区三区| 三级高清有码在线观看| 国产一级性生活录像片| 日本精品中文字幕人妻| 九九蜜桃视频香蕉视频| 亚洲性日韩精品一区二区| 亚洲国产精品久久琪琪| 日韩一区二区三区在线日| 国产成人av在线免播放观看av| 日韩三极片在线免费播放| 欧美av人人妻av人人爽蜜桃| 中文字幕人妻日本一区二区| 久久精品福利在线观看| 午夜日韩在线观看视频| 免费人妻精品一区二区三区久久久| 久久偷拍视频免费观看| 亚洲国产成人精品福利| 欧美中文字幕日韩精品| 91欧美激情在线视频| 国产午夜福利在线免费观看|