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

匿名 (未验证) 提交于 2019-12-03 03:11:02

问题:

I have tried PyTTS (deprecated) and PyTTSx (the most recommended) and two Google TTS solutions (gTTS and another one by some guy named Hung Truong) but none of them worked under Python 3.4. It seems they haven't been ported to 3.x.

I searched here on StackOverflow and Google, but all the proposed TTS solutions don't work under Python 3. I'm on Windows 7.

回答1:

A user on Reddit found a solution.

Turns out that gTTS works under Python 3.x, it was me that was importing the module wrong.

I was using:

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

Resulting in the following error:

NameError: name 'gTTS' is not defined 

When the correct way is:

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


回答2:

The best solution for that is :

pyttsx3


Pyttsx3 is an offline cross-platform Test-to-Speech library which is compatible with both Python 3 and Python 2 and supports multiple TTS engines.

I have found it very useful and there is no delay in sound production unlike gTTS which needs internet connection to work and also has some delay.

To install :

pip install pyttsx3

Here is a sample code :

```

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() 

```



回答3:

I just installed gtts 1.0.7 that was uploaded on 2015-10-07

The following code works for me in 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]) 

I'm on a Mac using in the inbuilt "afply" to play the mp3 but there are other ways e.g. Playing mp3 song on python



回答4:

Rather than using a module, you could use Google Text-to-Speech API . You can easily use this URL to generate a wav file and get it through a simple HTTP request:

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



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!