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
注意:在使用第三方庫的時候,不同的操作系統(tǒng)和Python版本代碼可能有所差別。
調(diào)用api
可以調(diào)用第三方的語音合成api生成音頻文件,然后再播放音頻文件即可,這里我使用的是百度語音合成api。
1、注冊賬號創(chuàng)建應(yīng)用
在使用之前,需要先注冊一個百度賬號,然后再創(chuàng)建一個語音合成的api,需要拷貝AppID、API Key、Secret Key后面調(diào)用接口的時候需要使用。

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,
})
# 識別正確返回語音二進(jìn)制 錯誤則返回dict 參照下面錯誤碼
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是一個跨平臺將文字轉(zhuǎn)成語音的第三方庫,它對操作系統(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è)置,不然可能會報錯或者無法發(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è)置代碼或者全局代理。
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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Python中語音轉(zhuǎn)文字相關(guān)庫介紹(最新推薦)
- Python調(diào)用訊飛語音合成API接口來實(shí)現(xiàn)文字轉(zhuǎn)語音
- 基于Python實(shí)現(xiàn)語音識別和語音轉(zhuǎn)文字
- Python語音識別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類的方法屬性與方法屬性的動態(tài)綁定代碼詳解
這篇文章主要介紹了python類的方法屬性與方法屬性的動態(tài)綁定代碼詳解,具有一定借鑒價值,需要的朋友可以參考下2017-12-12
pymongo為mongodb數(shù)據(jù)庫添加索引的方法
這篇文章主要介紹了pymongo為mongodb數(shù)據(jù)庫添加索引的方法,涉及Python操作mongodb數(shù)據(jù)庫的相關(guān)技巧,非常簡單實(shí)用,需要的朋友可以參考下2015-05-05
通過pycharm的database設(shè)置進(jìn)行數(shù)據(jù)庫的可視化方式
這篇文章主要介紹了通過pycharm的database設(shè)置進(jìn)行數(shù)據(jù)庫的可視化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
python中random.randint和random.randrange的區(qū)別詳解
這篇文章主要介紹了python中random.randint和random.randrange的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
PyQt5使用QTimer實(shí)現(xiàn)電子時鐘
這篇文章主要為大家詳細(xì)介紹了PyQt5使用QTimer實(shí)現(xiàn)電子時鐘,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07
Python利用tkinter實(shí)現(xiàn)一個簡易番茄鐘的示例代碼
番茄鐘是番茄工作法使用的一個時間表,即選擇一個待完成的任務(wù),將番茄時間設(shè)為25分鐘,專注工作,中途不允許做任何與該任務(wù)無關(guān)的事,直到番茄時鐘響起,然后在紙上畫一個X短暫休息一下。本文用tkinter實(shí)現(xiàn)一個簡易番茄鐘,需要的可以參考一下2022-12-12
使用python實(shí)現(xiàn)excel的Vlookup功能
這篇文章主要介紹了使用python實(shí)現(xiàn)excel的Vlookup功能,當(dāng)我們想要查找的數(shù)據(jù)量較大時,這時則有請我們的主角VLookup函數(shù)出場,那么如何用python實(shí)現(xiàn)VLookup呢,需要的朋友可以參考下2023-04-04

