如何使Python发言

我怎么能让Python说一些文字?

我可以用subprocess来使用Festival,但是我不能控制它(或者可能在交互模式下,但是它不会干净)。

有一个Python的TTS库吗? 像节日的API,eSpeak,…?

请注意,这只适用于Python 2.x

你应该尝试使用PyTTSx包,因为PyTTS已经过时了。 PyTTSx使用最新的python版本。

http://pypi.python.org/pypi/pyttsx/1.0 – >这个包

希望能帮助到你

有点俗气,但如果你使用Mac,你可以从python传递一个terminal命令到控制台。

尝试在terminal中input以下内容:

$ say 'hello world' 

而且会有来自Mac的声音说出来。 从python这样的事情是比较容易的:

 import os os.system("echo 'hello world'") os.system("say 'hello world'") 

Debian,Ubuntu,Redhat和其他Linux发行版提供了python-espeak软件包。 它有最新的更新,工作正常。

 from espeak import espeak espeak.synth("Hello world.") 

Jonathan Leaders指出,它也可以在Windows上使用,你也可以安装mbrola语音。 请访问espeak网站http://espeak.sourceforge.net

一个简单的Google把我引向了pyTTS ,还有一些关于它的文档 。 但是,它看起来没有保留,而且是微软的语音引擎特有的。

至less在Mac OS X上,您可以使用subprocess调用say命令,这对于与同事搞混了很有趣,但对于您的需求可能不是非常有用。

这听起来像Festival也有一些公共的API:

Festival提供了一个基于BSD套接字的界面。 这允许Festival作为服务器运行并允许客户端程序访问它。 基本上,服务器为每个连接到它的客户端提供一个新的命令解释器。 服务器分配给每个客户端,但这要比等待节日过程从头开始要快得多。 另外服务器可以运行在更大的机器上,提供更快的综合。 linky

还有一个function齐全的C ++ API ,您可以使用Python模块(这很有趣!)。 节日还提供了一个简化的C API – 在该文档中保持滚动 – 你可能会扔ctypes一次性。

也许你已经确定了市场的一个漏洞?

如何使电脑发言(20/9加)

感谢stakoverflow我得到这个:

 import speech speech.say("Hello everybody") 

我不得不改变speech.py​​(我把它的副本放在文件的相同目录中)

第66行(替代这个)

 _recognizer = win32com.client.Dispatch("SAPI.SpInProcRecognizer") 

第67行(添加了这个)

 _recognizer.AudioInputStream = win32com.client.Dispatch("SAPI.SpMMAudioIn") 

114行(用这个替代)

 _ListenerBase = win32com.client.getevents("SAPI.SpInProcRecoContext") 

Ps在Windows上发言

 import win32com.client as wincl speak = wincl.Dispatch("SAPI.SpVoice") speak.Speak("This is the pc voice speaking") 
  • 以pipe理员身份安装模块:

pip安装pypiwin32


PC上的文本到每个操作系统上的MP3与MP3

还有另外一种方法可以让计算机说话,这不是一样的方法,你必须使用gtts模块并连接。

在bash中

 # pip install gtts 

代码

 from gtts import gTTS tts = gTTS(text="This is the pc speaking", lang='en') tts.save("pcvoice.mp3") 

在Linux上,听mp3

 os.system("mpg321 pcvoice.mp3") 

如果你没有mpg321:

 $ sudo apt-get install mpg321 

在Windows上,听MP3

 os.system("start pcvoice.mp3") 

可能没有任何“Python专用”,但KDE和GNOME桌面提供了文本到语音作为其可访问性支持的一部分,并且还提供了Python库绑定。 使用python绑定来控制文本到语音的桌面库也是可能的。

如果在JVM上使用Jython的Python实现,则FreeTTS系统可能是可用的。

最后, OSX和Windows具有用于文本到语音的本机API。 有可能通过ctypes或其他机制(如COM)从python使用这些。

这是你在找什么。 Mac的完整TTS解决scheme。 你可以使用这个独立的或作为一个协同定位的Mac服务器的networking应用程序:

http://wolfpaulus.com/jounal/mac/ttsserver/

您可以使用python来使用文本到语音转换器。
这里是一个Python代码的例子

    从subprocess调用
     speech =“Hello World!”
    呼叫([ “espeak的”,语音])

PS:如果espeak没有安装在你的linux系统上,那么你需要先安装它。
打开terminal(使用ctrl + alt + T)并键入

     sudo安装espeak

对于文本到语音,我在Python中发现了这个名为“ gTTS ”的包。 你可以试试这个。 它与Python 3.5一起工作。

这个软件包的github回购是gTTS-github 。

如果您使用的是python 3和windows 10,那么我发现最好的解决scheme就是来自Giovanni Gianni。 这在男声中为我演奏:

 import win32com.client as wincl speak = wincl.Dispatch("SAPI.SpVoice") speak.Speak("This is the pc voice speaking") 

我也在YouTube上发现了这个video ,所以如果你真的想,你可以find你认识的人,并制作自己的DIY音色。