使用Python实现真实的文本到语音转换,不需要';你不需要上网吗?
我正在尝试创建一个人工智能程序(没有什么大的或特别的),我希望它能有声音(谁不会呢?)。我研究过espeak、festival、GTT,它们很好用,但不够现实,如果这有道理的话,我真的很自豪。我一直在寻找更现实的东西。 像这样使用Python实现真实的文本到语音转换,不需要';你不需要上网吗?,python,python-2.7,text-to-speech,Python,Python 2.7,Text To Speech,我正在尝试创建一个人工智能程序(没有什么大的或特别的),我希望它能有声音(谁不会呢?)。我研究过espeak、festival、GTT,它们很好用,但不够现实,如果这有道理的话,我真的很自豪。我一直在寻找更现实的东西。 像这样 from gtts import gTTS tts = gTTS(text='what to say', lang='en') tts.save('/path/to/file.mp3') gTTS工作正常。我喜欢它。这很现实,但需要互联网。。问题是,我希望我的应用程序
from gtts import gTTS
tts = gTTS(text='what to say', lang='en')
tts.save('/path/to/file.mp3')
gTTS工作正常。我喜欢它。这很现实,但需要互联网。。问题是,我希望我的应用程序尽可能独立。我讨厌依赖互联网
还有其他选择吗
PS:我目前正在运行Linux,因此您的操作系统可能有不同的解决方案。请尝试使用pyttsx3 2.5,如下所示: gTTS在python3中工作得很好,但它需要互联网连接才能工作,因为它依赖谷歌获取音频数据。但Pyttsx完全离线,工作正常,并且有多个tts引擎支持 适用于Python 2和3 要安装它,请执行以下操作:
pip install pyttsx3
使用它应尽可能简单:
import pyttsx3;
engine = pyttsx3.init();
engine.say("I will speak this text");
engine.runAndWait() ;
编辑1-更改声音
要获得较少的机器人声音,您可以尝试按以下方式更改声音:
engine.setProperty('voice', voice.id)
获取可用的声音
voices = engine.getProperty('voices')
您可以尝试此问题中解释的不同可用语音:
编辑2-选择语音引擎
该库支持以下引擎:
- sapi5-Windows上的sapi5
- nsss-Mac OS X上的NSSpeechSynthesizer
- espeak-每隔一个平台上进行espeak
pyttsx3.init(driverName='sapi5')
这里有更多信息:如果语音识别这么简单,它就不需要互联网。一个简单的谷歌搜索结果是:我的朋友,这是我害怕的答案。未来不会来得太快:(我试试看,Isma。如果成功了,我会回答我自己的问题。谢谢:)不幸的是,Isma,pyttsx3听起来像是espeak的复制品。这对于将其移植到另一台计算机来说是很好的,但对于现实主义来说则不然。不管怎样,谢谢。我测试过这个,它可以工作,但听起来像是espeak的复制品。如果能让声音在另一台没有安装espeak的计算机上工作,那将是一件非常棒的事情,但听起来并不真实。我想找一个听起来不像机器人的声音。或者至少你试过改变声音吗?我编辑了我的答案。不幸的是,Python中似乎没有太多的替代方法来实现这一点。如果你能转到c#,还有其他解决方案。我甚至不知道你能用这个模块改变声音。让我试试看,只是测试一下。但它并没有像预期的那样工作。它不是改变声音的质量,甚至性别,而是改变声音的口音。这是一个小肱骨,其中一些。但由于它的机器人化程度并没有降低,我不会将这个答案标记为已解决,希望有人能找到我正在寻找的解决方案。如果我运行的是Windows,sapi5引擎将正常工作,但不幸的是,我运行的是Linux。