如何用 Python 將文本轉換成語音

在本教程中,我們將學習如何將人類語言文本轉換為類似人類的語音。

有時我們更喜歡聽內容而不是閱讀。我們可以一邊聽關鍵文件數據,一邊進行多任務處理。 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-hk/n/329322.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MCHVQ的頭像MCHVQ
上一篇 2025-01-14 18:55
下一篇 2025-01-14 18:55

相關推薦

  • 如何用Python寫愛心

    本文將會從多個方面闡述如何用Python語言來畫一個美麗的愛心圖案。 一、準備工作 在開始編寫程序之前,需要先理解一些編程基礎知識。首先是繪圖庫。Python有很多繪圖庫,常見的有…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • c# enum轉換成string

    本文將從以下幾個方面詳細闡述c#中enum類型轉換成string類型的方法及注意事項。 一、基本語法和示例 c#中的enum類型可以看作是一組有名字的常量值,通常用於定義一組相關的…

    編程 2025-04-29
  • 如何用Python對數據進行離散化操作

    數據離散化是指將連續的數據轉化為離散的數據,一般是用於數據挖掘和數據分析中,可以幫助我們更好的理解數據,從而更好地進行決策和分析。Python作為一種高效的編程語言,在數據處理和分…

    編程 2025-04-29
  • 如何用Python打印溫度轉換速查表

    本文將從多個方面闡述如何用Python打印溫度轉換速查表,以便於快速進行溫度轉換計算。 一、Python打印溫度轉換速查表的基本知識 在計算機編程領域中,溫度轉換是一個重要的計算。…

    編程 2025-04-29
  • 如何用Python訪問網站

    本文將從以下幾個方面介紹如何使用Python訪問網站:網絡請求、POST請求、用戶代理、Cookie、代理IP、API請求。 一、網絡請求 Python有三種主流的網絡請求庫:ur…

    編程 2025-04-29
  • 如何用指數函數編寫3.5^5.1?

    本文將從以下幾個方面詳細闡述如何用指數函數編寫3.5^5.1。 一、指數函數介紹 指數函數是一種特殊的函數形式,通常採用a^x的形式表示。其中a是指底數,x是指冪次。當冪次是整數時…

    編程 2025-04-28
  • Python文本居中設置

    在Python編程中,有時需要將文本進行居中設置,這個過程需要用到字符串的相關函數。本文將從多個方面對Python文本居中設置作詳細闡述,幫助讀者在實際編程中運用該功能。 一、字符…

    編程 2025-04-28
  • 文本數據挖掘與Python應用PDF

    本文將介紹如何使用Python進行文本數據挖掘,並將着重介紹如何應用PDF文件進行數據挖掘。 一、Python與文本數據挖掘 Python是一種高級編程語言,具有簡單易學、代碼可讀…

    編程 2025-04-28
  • 如何用簡筆畫畫出小豬佩奇全家福

    要想畫出小豬佩奇全家福,我們可以按照以下步驟進行。 一、畫出小豬佩奇 首先,我們需要畫出小豬佩奇的臉。可以用一個圓形來表示小豬佩奇的頭部,然後再在頭部上畫上兩個小耳朵,耳朵的形狀和…

    編程 2025-04-28

發表回復

登錄後才能評論