在本文中,您將學習如何讓 Python 開口說話,我們將創(chuàng)建一個 Python 程序,將我們提供的任何文本轉換為語音。 怎么能讓 Python 說話? Python 提供了數(shù)十萬個第三方庫,允許開發(fā)人員編寫任何類型的程序,允許用很少的代碼做復雜的事情。所以。我們可以使用第三方庫方便的將文本轉換為語音。 使用 PyTTSx3 將文本轉換為語音在使用此模塊之前,請記住使用 pip 安裝它: pip install pyttsx3 如果你使用的是 Windows ,在安裝 pyttsx3 前,還必須安裝模塊 pypiwin32。 pip install pypiwin32 只需要幾行代碼,就可以讓 Python 開口說話。 import pyttsx3 # 初始化引擎 engine = pyttsx3.init() # 將文本轉為語音 engine.say("如何讓 Python 開口說話!") engine.runAndWait() engine.stop()
運行程序,你將聽到來自計算機的聲音。 可以多次調用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>
還可以在調用 say() 函數(shù)之前修改語音的標準速率和音量。 import pyttsx3 # 初始化引擎 engine = pyttsx3.init() # 設置速率 rate = engine.getProperty('rate') engine.setProperty('rate', rate+50) # 設置音量 volume = engine.getProperty('volume') engine.setProperty('volume', volume+0.25) # 將文本轉為語音 engine.say("如何讓 Python 開口說話!") pyttsx3.speak("How are you?") engine.runAndWait() engine.stop()
還可以使用 save_to_file() 函數(shù),將語音保存為 MP3 文件。 import pyttsx3 # 初始化引擎 engine = pyttsx3.init() # 設置速率 rate = engine.getProperty('rate') engine.setProperty('rate', rate+50) # 設置音量 volume = engine.getProperty('volume') engine.setProperty('volume', volume+0.25) # 將文本轉為語音 str1 = "如何讓 Python 開口說話!" engine.say("如何讓 Python 開口說話!") engine.save_to_file(str1, 'say.mp3') engine.runAndWait() engine.stop()
還可以讀取文本文件的內容并轉換為 MP3 文件。 import pyttsx3 # 初始化引擎 engine = pyttsx3.init() # 設置速率 rate = engine.getProperty('rate') engine.setProperty('rate', rate+50) # 設置音量 volume = engine.getProperty('volume') engine.setProperty('volume', volume+0.25) # 將文本轉為語音 with open("1.txt", "r") as f: #打開文本 str1 = f.read() #讀取文本 engine.save_to_file(str1, 'say.mp3') engine.runAndWait() engine.stop()
至此,我們了解了如何使用 Python 模塊 PyTTSx3 將文本轉換為語音,從創(chuàng)建的程序中可以看出,使用 PyTTSx3 模塊非常靈活方便。除了 PyTTSx3 外,還有很多其他模塊也能實現(xiàn)文本轉語音的功能,比如 PyTTSx4、gTTS 等。
|