Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python实现真实的文本到语音转换,不需要';你不需要上网吗?_Python_Python 2.7_Text To Speech - Fatal编程技术网

使用Python实现真实的文本到语音转换,不需要';你不需要上网吗?

使用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工作正常。我喜欢它。这很现实,但需要互联网。。问题是,我希望我的应用程序

我正在尝试创建一个人工智能程序(没有什么大的或特别的),我希望它能有声音(谁不会呢?)。我研究过espeak、festival、GTT,它们很好用,但不够现实,如果这有道理的话,我真的很自豪。我一直在寻找更现实的东西。 像这样

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
如果espeak不是很自然,那么如果您在Windows上,您可以尝试sapi5;如果您在Mac OS X上,您可以尝试nsss

您可以在init方法中指定引擎,例如:

pyttsx3.init(driverName='sapi5') 

这里有更多信息:

如果语音识别这么简单,它就不需要互联网。一个简单的谷歌搜索结果是:我的朋友,这是我害怕的答案。未来不会来得太快:(我试试看,Isma。如果成功了,我会回答我自己的问题。谢谢:)不幸的是,Isma,pyttsx3听起来像是espeak的复制品。这对于将其移植到另一台计算机来说是很好的,但对于现实主义来说则不然。不管怎样,谢谢。我测试过这个,它可以工作,但听起来像是espeak的复制品。如果能让声音在另一台没有安装espeak的计算机上工作,那将是一件非常棒的事情,但听起来并不真实。我想找一个听起来不像机器人的声音。或者至少你试过改变声音吗?我编辑了我的答案。不幸的是,Python中似乎没有太多的替代方法来实现这一点。如果你能转到c#,还有其他解决方案。我甚至不知道你能用这个模块改变声音。让我试试看,只是测试一下。但它并没有像预期的那样工作。它不是改变声音的质量,甚至性别,而是改变声音的口音。这是一个小肱骨,其中一些。但由于它的机器人化程度并没有降低,我不会将这个答案标记为已解决,希望有人能找到我正在寻找的解决方案。如果我运行的是Windows,sapi5引擎将正常工作,但不幸的是,我运行的是Linux。