在本文中,您將學(xué)習(xí)如何讓 Python 開口說話,我們將創(chuàng)建一個 Python 程序,將我們提供的任何文本轉(zhuǎn)換為語音。

怎么能讓 Python 說話?
Python 提供了數(shù)十萬個第三方庫,允許開發(fā)人員編寫任何類型的程序,允許用很少的代碼做復(fù)雜的事情。所以。我們可以使用第三方庫方便的將文本轉(zhuǎn)換為語音。
使用 PyTTSx3 將文本轉(zhuǎn)換為語音
在使用此模塊之前,請記住使用 pip 安裝它:
pip install pyttsx3
如果你使用的是 Windows ,在安裝 pyttsx3 前,還必須安裝模塊 pypiwin32。
pip install pypiwin32
只需要幾行代碼,就可以讓 Python 開口說話。
import pyttsx3
# 初始化引擎
engine = pyttsx3.init()
# 將文本轉(zhuǎn)為語音
engine.say("如何讓 Python 開口說話!")
engine.runAndWait()
engine.stop()
運行程序,你將聽到來自計算機的聲音。
可以多次調(diào)用say() 函數(shù),也可以直接使用 speak() 函數(shù):pyttsx3.speak("How are you?")
。
可以使用以下代碼,查看計算機支持哪些語言。
import pyttsx3
engine = pyttsx3.init()
voices = engine.getProperty('voices')
for voice in voices:
print(voice)
# 輸出:
<Voice id=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0
name=Microsoft Huihui Desktop - Chinese (Simplified)
languages=[]
gender=None
age=None>
<Voice id=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0
name=Microsoft Zira Desktop - English (United States)
languages=[]
gender=None
age=None>
還可以在調(diào)用 say() 函數(shù)之前修改語音的標(biāo)準(zhǔn)速率和音量。
import pyttsx3
# 初始化引擎
engine = pyttsx3.init()
# 設(shè)置速率
rate = engine.getProperty('rate')
engine.setProperty('rate', rate+50)
# 設(shè)置音量
volume = engine.getProperty('volume')
engine.setProperty('volume', volume+0.25)
# 將文本轉(zhuǎn)為語音
engine.say("如何讓 Python 開口說話!")
pyttsx3.speak("How are you?")
engine.runAndWait()
engine.stop()
還可以使用 save_to_file() 函數(shù),將語音保存為 MP3 文件。
import pyttsx3
# 初始化引擎
engine = pyttsx3.init()
# 設(shè)置速率
rate = engine.getProperty('rate')
engine.setProperty('rate', rate+50)
# 設(shè)置音量
volume = engine.getProperty('volume')
engine.setProperty('volume', volume+0.25)
# 將文本轉(zhuǎn)為語音
str1 = "如何讓 Python 開口說話!"
engine.say("如何讓 Python 開口說話!")
engine.save_to_file(str1, 'say.mp3')
engine.runAndWait()
engine.stop()
還可以讀取文本文件的內(nèi)容并轉(zhuǎn)換為 MP3 文件。
import pyttsx3
# 初始化引擎
engine = pyttsx3.init()
# 設(shè)置速率
rate = engine.getProperty('rate')
engine.setProperty('rate', rate+50)
# 設(shè)置音量
volume = engine.getProperty('volume')
engine.setProperty('volume', volume+0.25)
# 將文本轉(zhuǎn)為語音
with open("1.txt", "r") as f: #打開文本
str1 = f.read() #讀取文本
engine.save_to_file(str1, 'say.mp3')
engine.runAndWait()
engine.stop()
至此,我們了解了如何使用 Python 模塊 PyTTSx3 將文本轉(zhuǎn)換為語音,從創(chuàng)建的程序中可以看出,使用 PyTTSx3 模塊非常靈活方便。除了 PyTTSx3 外,還有很多其他模塊也能實現(xiàn)文本轉(zhuǎn)語音的功能,比如 PyTTSx4、gTTS 等。