如何使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应用程序:
您可以使用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音色。