Python將文字轉(zhuǎn)成語音并讀出來的實(shí)例詳解
前言
本篇文章主要介紹,如何利用Python來實(shí)現(xiàn)將文字轉(zhuǎn)成語音。將文字轉(zhuǎn)成語音主要有兩種不同的實(shí)現(xiàn)方法:先將文字轉(zhuǎn)成語音,然后再通過讀取語音實(shí)現(xiàn)發(fā)音、直接調(diào)用系統(tǒng)內(nèi)置的語音引擎實(shí)現(xiàn)發(fā)音,后一種方法的實(shí)現(xiàn)主要利用第三方庫。
環(huán)境
Python版本:Anaconda 4.4.10
操作系統(tǒng):win10
注意:在使用第三方庫的時(shí)候,不同的操作系統(tǒng)和Python版本代碼可能有所差別。
調(diào)用api
可以調(diào)用第三方的語音合成api生成音頻文件,然后再播放音頻文件即可,這里我使用的是百度語音合成api。
1、注冊(cè)賬號(hào)創(chuàng)建應(yīng)用
在使用之前,需要先注冊(cè)一個(gè)百度賬號(hào),然后再創(chuàng)建一個(gè)語音合成的api,需要拷貝AppID、API Key、Secret Key后面調(diào)用接口的時(shí)候需要使用。
2、調(diào)用語音合成接口
python調(diào)用百度語音合成api接口詳細(xì)文檔:http://yuyin.baidu.com/docs/tts/196
3、安裝百度提供的Python庫:
如果已安裝pip,執(zhí)行pip install baidu-aip即可。
如果已安裝setuptools,執(zhí)行python setup.py install即可。
from aip import AipSpeech """ 你的 APPID AK SK """ APP_ID = '你的 App ID' API_KEY = '你的 Api Key' SECRET_KEY = '你的 Secret Key' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) result = client.synthesis('你好嗎?', 'zh', 1, { 'vol': 5, }) # 識(shí)別正確返回語音二進(jìn)制 錯(cuò)誤則返回dict 參照下面錯(cuò)誤碼 if not isinstance(result, dict): with open('auido.mp3', 'wb') as f: f.write(result)
播放音頻文件
安裝playsound:pip install playsound
from playsound import playsound playsound("auido.mp3")
利用系統(tǒng)內(nèi)置語音引擎實(shí)現(xiàn)發(fā)音
1. Pyttsx
Pyttsx是一個(gè)跨平臺(tái)將文字轉(zhuǎn)成語音的第三方庫,它對(duì)操作系統(tǒng)內(nèi)置的語音引擎實(shí)現(xiàn)了包裝。
Pyttsx安裝
Python2:pip install pyttsx
Python3:pip install pyttsx3
代碼
import pyttsx3 engine = pyttsx3.init() engine.say("Good") engine.runAndWait()
pyttsx默認(rèn)使用的是讀取英文引擎,如果需要讀取中文時(shí)需要修改語言設(shè)置,不然可能會(huì)報(bào)錯(cuò)或者無法發(fā)音,首先我們需要參考系統(tǒng)支持的語言類型和參數(shù),通過以下代碼可以查看
engine = pyttsx3.init() voices = engine.getProperty("voices") for item in voices: print(item.id,item.languages)
可以看到ZH-CN的參數(shù),表示的是中文,然后將代碼修改成如下即可
engine = pyttsx3.init() engine.setProperty("voice","HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Sp eech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0") engine.say("你好嗎?") engine.runAndWait()
2. gTTS
gTTS可以將文字轉(zhuǎn)成語音進(jìn)行保存為MP3格式,然后再讀取語音實(shí)現(xiàn)發(fā)音,它是通過調(diào)用Google提供的TTS服務(wù)來實(shí)現(xiàn)將文字轉(zhuǎn)語音的,因?yàn)樾枰{(diào)用Google的服務(wù),所以需要翻墻,因?yàn)槿鄙侪h(huán)境所以下面的代碼是沒有測試過的。調(diào)用下面代碼的時(shí)候,需要設(shè)置在代碼中設(shè)置代碼或者全局代理。
from gtts import gTTS import os tts = gTTS(text="come on",lang="en") tts.save("test.mp3") os.system("mpg321 test.mp3")
如果需要生成wav格式的音頻文件,可以利用FFmpeg將MP3的音頻文件轉(zhuǎn)成wav格式。
操作系統(tǒng)內(nèi)置引擎
利用win32com來調(diào)用Windows操作系統(tǒng)內(nèi)置的語音引擎實(shí)現(xiàn)文字的發(fā)音
以上這篇Python將文字轉(zhuǎn)成語音并讀出來的實(shí)例詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python中語音轉(zhuǎn)文字相關(guān)庫介紹(最新推薦)
- Python調(diào)用訊飛語音合成API接口來實(shí)現(xiàn)文字轉(zhuǎn)語音
- 基于Python實(shí)現(xiàn)語音識(shí)別和語音轉(zhuǎn)文字
- Python語音識(shí)別API實(shí)現(xiàn)文字轉(zhuǎn)語音的幾種方法
- 基于Python編寫簡易文字語音轉(zhuǎn)換器
- Python詳解文字轉(zhuǎn)語音的實(shí)現(xiàn)
- python文字轉(zhuǎn)語音實(shí)現(xiàn)過程解析
- python文字轉(zhuǎn)語音的實(shí)例代碼分析
- python 利用pyttsx3文字轉(zhuǎn)語音過程詳解
- 使用Python實(shí)現(xiàn)文字轉(zhuǎn)語音并生成wav文件的例子
- python實(shí)現(xiàn)文字轉(zhuǎn)語音的項(xiàng)目實(shí)踐
相關(guān)文章
Python使用re模塊實(shí)現(xiàn)okenizer(表達(dá)式分詞器)
這篇文章主要介紹了Python使用re模塊實(shí)現(xiàn)okenizer,我們這里講解用正則表達(dá)式構(gòu)建簡單的表達(dá)式分詞器(tokenizer),它能夠?qū)⒈磉_(dá)式字符串從左到右解析為標(biāo)記(tokens)流,需要的朋友可以參考下2022-04-04python如何實(shí)現(xiàn)多層級(jí)自動(dòng)賦值字典
這篇文章主要介紹了python如何實(shí)現(xiàn)多層級(jí)自動(dòng)賦值字典問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08python中json、字典的區(qū)別以及相互轉(zhuǎn)換方法
在Python中我們經(jīng)常會(huì)用到JSON格式的數(shù)據(jù),而將JSON格式轉(zhuǎn)化為Python的字典類型是一種常見的操作,這篇文章主要給大家介紹了關(guān)于python中json、字典的區(qū)別以及相互轉(zhuǎn)換方法的相關(guān)資料,需要的朋友可以參考下2023-11-11python實(shí)現(xiàn)控制臺(tái)輸出顏色
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)控制臺(tái)輸出顏色,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03Python超越函數(shù)積分運(yùn)算以及繪圖實(shí)現(xiàn)代碼
今天小編就為大家分享一篇Python超越函數(shù)積分運(yùn)算以及繪圖實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11使用tensorflow DataSet實(shí)現(xiàn)高效加載變長文本輸入
今天小編就為大家分享一篇使用tensorflow DataSet實(shí)現(xiàn)高效加載變長文本輸入,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01python3使用print打印帶顏色的字符串代碼實(shí)例
這篇文章主要介紹了python3使用print打印帶顏色的字符串代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08