在本教程中,我們將學習如何將人類語言文本轉換為類似人類的語音。
有時我們更喜歡聽內容而不是閱讀。我們可以一邊聽關鍵文件數據,一邊進行多任務處理。 Python 提供了很多將文本轉換為語音的 API。谷歌文本到語音 API 很受歡迎,通常被稱為通用技術終端 API。
這個工具非常容易使用,並提供了許多內置功能,用於將文本文件保存為 mp3 文件。
我們不需要使用神經網絡和訓練模型來將文件轉換成語音,因為這也很難實現。相反,我們將使用這些 API 來完成一項任務。
gTTS API提供了將文本文件轉換成不同語言的工具,如英語、印地語、德語、泰米爾語、法語等。我們還可以在快速或慢速模式下播放音頻語音。
然而,作為它的最新更新,我們不能改變語音文件;它將由系統生成,不可更改。
要將文本文件轉換成,我們將使用另一個名為 pyttsx3 的離線庫。
安裝通用技術規範 API
在終端中鍵入以下命令來安裝 gTTS API。
pip install gTTS
然後,安裝附加模塊,以便與 gTTS 一起工作。
pip install playsound
然後安裝 pyttsx3。
pip install pyttsx3
讓我們了解一下 gTTS API 的工作原理
import gtts
from playsound import playsound
我們可以看到,它非常容易使用;我們需要導入它,並將 gTTS 對象作為一個接口傳遞給 Google Translator API。
# make a request to google to get synthesis
t1 = gtts.gTTS("Welcome to javaTpoint")
在上一行中,我們以文本形式發送了數據,並接收了實際的音頻語音。現在,將此保存為音頻文件 welcome.mp3 。
# save the audio file
t1.save("welcome.mp3")
它會將它保存到一個目錄中,我們可以如下收聽這個文件:
# play the audio file
playsound("welcome.mp3")
輸出:
請打開系統音量,聽我們之前保存的文本。
現在,我們將文本定義為語音的完整 Python 程序。
Python 程序
# Import the gTTS module for text
# to speech conversion
from gtts import gTTS
# This module is imported so that we can
# play the converted audio
from playsound import playsound
# It is a text value that we want to convert to audio
text_val = 'All the best for your exam.'
# Here are converting in English Language
language = 'en'
# Passing the text and language to the engine,
# here we have assign slow=False. Which denotes
# the module that the transformed audio should
# have a high speed
obj = gTTS(text=text_val, lang=language, slow=False)
#Here we are saving the transformed audio in a mp3 file named
# exam.mp3
obj.save("exam.mp3")
# Play the exam.mp3 file
playsound("exam.mp3")
輸出:
說明:
在上面的代碼中,我們已經導入了 API 並使用了 gTTS 函數。 gTTS() 函數接受三個參數-
- 第一個參數是我們想要轉換成語音的文本值。
- 第二個參數是指定的語言。它支持多種語言。我們可以將文本轉換成音頻文件。
- 第三個參數代表演講的速度。我們已經將慢速值設為假;這意味着演講將以正常速度進行。
我們將這個文件保存為 exam.py ,可以隨時訪問,然後我們使用了 playsound() 功能在運行時收聽音頻文件。
可用語言列表
要獲得可用的語言,請使用以下函數-
輸出:
{'af': 'Afrikaans', 'sq': 'Albanian', 'ar': 'Arabic', 'hy': 'Armenian', 'bn': 'Bengali', 'bs': 'Bosnian', 'ca': 'Catalan', 'hr': 'Croatian', 'cs': 'Czech', 'da': 'Danish', 'nl': 'Dutch', 'en': 'English', 'et': 'Estonian', 'tl': 'Filipino', 'fi': 'Finnish', 'fr': 'French', 'de': 'German', 'el': 'Greek', 'en-us': 'English (US)','gu': 'Gujarati', 'hi': 'Hindi', 'hu': 'Hungarian', 'is': 'Icelandic', 'id': 'Indonesian', 'it': 'Italian', 'ja': 'Japanese', 'en-ca': 'English (Canada)', 'jw': 'Javanese', 'kn': 'Kannada', 'km': 'Khmer', 'ko': 'Korean', 'la': 'Latin', 'lv': 'Latvian', 'mk': 'Macedonian', 'ml': 'Malayalam', 'mr', 'en-in': 'English (India)'}
我們已經提到了幾個重要的語言和它們的代碼。你可以在這個圖書館裡找到幾乎所有的語言。
office api
我們已經使用了谷歌 API,但是如果我們想使用離線將文本轉換為語音怎麼辦。Python 提供了 pyttsx3 庫,它尋找預裝在我們平台中的 TTS 引擎。
讓我們了解如何使用 pyttsx3 庫:
示例-
import pyttsx3
# initialize Text-to-speech engine
engine = pyttsx3.init()
# convert this text to speech
text = "Python is a great programming language"
engine.say(text)
# play the speech
engine.runAndWait()
在上面的代碼中,我們使用了 say() 方法,並將文本作為參數傳遞。它用於向隊列中添加一個單詞,而 runAndWait() 方法運行真實的事件循環,直到所有命令排隊。
它還提供了一些我們可以根據需要使用的附加屬性。我們來了解一下語速的細節:
# get details of speaking rate
rate = engine.getProperty("rate")
print(rate)
輸出:
200
We can change rate of speed as we want:
# setting new voice rate (faster)
engine.setProperty("rate", 300)
engine.say(text)
engine.runAndWait()
如果我們通過了 100 分,那麼就會慢一些。
engine.setProperty("rate", 100)
engine.say(text)
engine.runAndWait()
現在,我們可以在聲音中聽到文本文件。
# get details of all voices available
voices = engine.getProperty("voices")
print(voices)
輸出:
[<pyttsx3.voice.Voice object at 0x000002D617F00A20>, <pyttsx3.voice.Voice object at 0x000002D617D7F898>, <pyttsx3.voice.Voice object at 0x000002D6182F8D30>]
在本教程中,我們討論了使用第三方庫將文本文件轉換為語音。我們還討論了線下圖書館。通過使用這個,我們可以建立自己的虛擬輔助。
原創文章,作者:MCHVQ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/329322.html