前言
本篇文章主要介紹,如何利用python來實現將文字轉成語音。將文字轉成語音主要有兩種不同的實現方法:先將文字轉成語音,然後再通過讀取語音實現發音、直接呼叫系統內建的語音引擎實現發音,後一種方法的實現主要利用第三方庫。
環境python版本:anaconda 4.4.10
作業系統:win10
注意:在使用第三方庫的時候,不同的作業系統和python版本**可能有所差別。
呼叫api
可以呼叫第三方的語音合成api生成音訊檔案,然後再**音訊檔案即可,這裡我使用的是百度語音合成api。
1、註冊賬號建立應用
在使用之前,需要先註冊乙個百度賬號,然ldwwaucbn後再建立乙個語音合成的api,需要拷貝appid、api key、secret key後面呼叫介面的時候需要使用。
2、呼叫語音合成介面
python呼叫百度語音合成api介面詳細文件:
3、安裝百度提供的python庫:
如果已安裝pip,執行pip install baidu-aip即可。
如果已安裝setuptools,執行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, )
# 識別正確返回語音二進位制 錯誤則返回dict 參照下面錯誤碼
if not isinstance(result, dict):
with open('auido.***', 'wb') as f:
f.write(result)
**音訊檔案
安裝playsound:pip install playsound
from playsound import playsound
playsound("auido.***")
利用系統內建語音引擎實現發音
1. pyttsx
pyttsx是乙個跨平台將文字轉成語音的第三方庫,它對作業系統內建的語音引擎實現了包裝。
pyttsx安裝
python2:pip install pyttsx
python3:pip install pyttsx3
**import pyttsx3
engine = pyttsx3.init()
engine.say("good")
engine.runandwait()
pyttsx預設使用的是讀取英文引擎,如果需要讀取中文時需要修改語言設定,不然可能會報錯或者無法發音,首先我們需要參考系統支援的語言型別和引數,通過以下**可以檢視
engine = pyttsx3.init()
voices = engine.getproperty("voices")
for item in voices:
print(item.id,item.languages)
可以看到zh-cn的引數,表示的是中文,然後將**修改成如下即可
engine = pyttsx3.init()
engine.setproperty("voice","hkey_local_machine\software\microsldwwaucbnoft\sp
eech\voices\tokens\tts_ms_zh-cn_huihui_11.0")
engine.say("你好嗎?")
engine.runandwait()
2. gtts
gtts可以將文字轉成語音進行儲存為***格式,然後再讀取語音實現發音,它是通過呼叫google提供的tts服務來實現將文字轉語音的,因為需要呼叫google的服務,所以需要翻牆,因為缺少環境所以下面的**是沒有測試過的。呼叫下面**的時候,需要設定在**中設定**或者全域性**。
from gtts import gtts
import os
tts = gtts(text="come on",lwww.cppcns.comang="en")
tts.s**e("test.***")
os.system("mpg321 test.***")
如果需要生成w**格式的音訊檔案,可以利用ffmpeg將***的音訊檔案轉成w**格式。
作業系統內建引擎
利用win32com來呼叫windows作業系統內建的語音引擎實現文字的發音
本文標題: python將文字轉成語音並讀出來的例項詳解
本文位址: /jiaoben/python/265442.html
python把文字轉成語音
建立後會有乙個三個key,呼叫的時候會用到 呼叫起來還是挺簡單的 引數 型別 描述 是否必須 tex string 合成的文字,使用utf 8編碼,請注意文字長度必須小於1024位元組 是 cuid string 使用者唯一標識,用來區分使用者,填寫機器 mac 位址或 imei 碼,長度為60以內...
python 文字轉語音
import pyttsx3 初始化,必須要有 engine pyttsx3.init engine.say hello engine.say 我會說中文了,開森,開森 注意,沒有本句話是沒有聲音的 engine.runandwait engine.say 我能說第二句話了 engine.runan...
python文字轉語音
介面位址 安裝介面 pip install baidu aip from aip import aipspeech api key 你的 api key secret key 你的 secret key vol 5,識別正確返回語音二進位制 錯誤則返回dict 參照下面錯誤碼 if not isin...