簡體   English   中英

在 Python 3 下運行的文本轉語音 (TTS) 模塊

[英]Text-to-speech (TTS) module that works under Python 3

我已經嘗試過 PyTTS(已棄用)和 PyTTSx(最推薦的)和兩個 Google TTS 解決方案(gTTS 和另一個名為 Hung Truong 的人的解決方案),但它們都沒有在 Python 3.4 下工作。 似乎它們還沒有被移植到 3.x。

我在 StackOverflow 和 Google 上搜索過,但所有提議的 TTS 解決方案都不能在 Python 3 下運行。我在 Windows 7 上。

Reddit 上的一位用戶找到了解決方案

原來 gTTS 在 Python 3.x 下工作,是我錯誤地導入了模塊。

我正在使用:

import gtts
blabla = ("Spoken text")
tts = gTTS(text=blabla, lang='en')
tts.save("C:/test.mp3")

導致以下錯誤:

NameError: name 'gTTS' is not defined

當正確的方法是:

from gtts import gTTS
blabla = ("Spoken text")
tts = gTTS(text=blabla, lang='en')
tts.save("C:/test.mp3")

最好的解決方案是:

pyttsx3


Pyttsx3 是一個離線跨平台文本轉語音庫,兼容Python 3 和 Python 2 ,支持多種 TTS 引擎。

我發現它非常有用,並且與gTTS不同, gTTS 需要互聯網連接才能工作並且也有一些延遲,因此聲音制作沒有延遲。

安裝 :

這是一個示例代碼:


    import pyttsx3
    engine = pyttsx3.init()
    engine.say("Hello this is me talking")
    engine.setProperty('rate',120)  #120 words per minute
    engine.setProperty('volume',0.9) 
    engine.runAndWait()
    

我剛剛安裝了 2015-10-07 上傳的 gtts 1.0.7

以下代碼適用於 Python 3.5:

import subprocess
from gtts import gTTS

audio_file = "hello.mp3"
tts = gTTS(text="Hello World!", lang="en")
tts.save(audio_file)
return_code = subprocess.call(["afplay", audio_file])

我在 Mac 上使用內置的“afply”來播放 mp3,但還有其他方式,例如在 python 上播放 mp3 歌曲

您可以使用 Google Text-to-Speech API,而不是使用模塊。 你可以很容易地使用這個 URL 來生成一個 wav 文件並通過一個簡單的 HTTP 請求來獲取它:

http://www.translate.google.com/translate_tts?tl=en&q=Hello%20World

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM