在 Python 中將文字轉換為語音

Manav Narula 2023年1月30日
  1. 在 Python 中使用 gTTS 模組將文字轉換為語音
  2. 在 Python 中使用 pyttsx3 模組將文字轉換為語音
在 Python 中將文字轉換為語音

由於過去幾十年的技術進步,我們擁有許多配備語音識別功能的裝置。Python 有多種可用的模組可以處理音訊物件。一些模組可以將一些書面文字轉換為音訊。

在本教程中,我們將討論如何使用 Python 將文字轉換為語音。

在 Python 中使用 gTTS 模組將文字轉換為語音

Google 建立了一個名為 Google Text-To-Speech 的 API,他們用它來讀取文字並提供音訊輸出。此 API 與名為 gtts 的 Python 模組整合,該模組可以將文字轉換為語音、執行音訊操作等,通過將音訊儲存在位元組大小的物件中,甚至儲存最終輸出。

我們將使用 gTTS 函式建立一個物件,該物件將讀取文字並將其轉換為音訊物件。我們可以在這個函式中使用許多引數。我們可以使用 slow 引數降低輸出速度。Google API 支援不同的語言,我們可以使用 lang 引數提及支援的語言。

我們將在下面的程式碼中實現這個方法。

from gtts import gTTS
from playsound import playsound

s = gTTS("Sample Text")
s.save("sample.mp3")
playsound("sample.mp3")

在上面的程式碼中,我們建立了一個讀取所需文字的物件。我們使用 save() 函式儲存這個包含語音音訊的物件,然後使用 playsound() 函式播放它。從 playsound 庫匯入的 playsound() 函式可以播放音訊檔案。

請注意,鑑於此模組使用 Google API 將文字轉換為語音,因此需要有效的網際網路連線。如果你希望它離線執行,你可以參考下面討論的方法。

在 Python 中使用 pyttsx3 模組將文字轉換為語音

pyttsx3 是另一個可以執行此類轉換並在沒有網際網路連線的情況下工作的模組。首先,我們將使用該模組中的 init() 建構函式建立一個引用 pyttsx3.Engine 的物件。然後 say() 函式在此處新增要在佇列中朗讀的所需文字。然後我們使用 runAndWait() 函式從佇列中播放命令。

例如,

import pyttsx3

s = pyttsx3.init()
data = "Sample Text"
s.say(data)
s.runAndWait()

我們可以使用 setProperty() 方法設定最終輸出的播放速率等屬性。該模組與 Python 2 和 Python 3 相容。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Python Audio