如何让Python说些文字?
我可以在子进程中使用Festival,但是我将无法控制它(或者可能是在交互模式下,但是它不是干净的)。
有Python TTS库吗?就像节日的API一样,eSpeak,...?
如何让Python说些文字?
我可以在子进程中使用Festival,但是我将无法控制它(或者可能是在交互模式下,但是它不是干净的)。
有Python TTS库吗?就像节日的API一样,eSpeak,...?
Answers:
请注意,这仅适用于python 2.x
由于PyTTS已过时,因此您应该尝试使用PyTTSx软件包。PyTTSx使用最新的python版本。
http://pypi.python.org/pypi/pyttsx/1.0- >程序包
希望能帮助到你
有点俗气,但是如果您使用的是Mac,则可以从python将终端命令传递给控制台。
尝试在终端中键入以下内容:
$ say 'hello world'
Mac会发出声音,说出这一点。从python这样的事情相对容易:
import os
os.system("echo 'hello world'")
os.system("say 'hello world'")
say
命令阻止我的Python代码,所以我添加了一个&符:os.system("say 'hello world' &")
安装pip安装pypiwin32
from win32com.client import Dispatch
speak = Dispatch("SAPI.SpVoice")
speak.Speak("Ciao")
在cmd中安装gtts模块后:pip install gtts
from gtts import gTTS
import os
tts = gTTS(text="This is the pc speaking", lang='en')
tts.save("pcvoice.mp3")
# to start the file from python
os.system("start pcvoice.mp3")
pip install pypiwin32
以administartor身份运行在系统中安装所需的模块。
的蟒-espeak的包可在Debian中的,Ubuntu,红帽和其他Linux发行版。它具有最新更新,并且运行良好。
from espeak import espeak
espeak.synth("Hello world.")
Jonathan Leaders指出它也可以在Windows上运行,您也可以安装mbrola声音。请访问espeak网站,网址为http://espeak.sourceforge.net
一个简单的Google引导我进入pyTTS,并找到了一些有关它的文件。但是,它看起来没有维护,并且特定于Microsoft的语音引擎。
至少在Mac OS X上,您可以使用subprocess
来调出该say
命令,这对于与同事打交道非常有趣,但对您的需求可能并不是很有用。
听起来Festival也有一些公共API:
Festival提供了基于BSD套接字的接口。这使Festival可以作为服务器运行,并允许客户端程序对其进行访问。基本上,服务器为连接到它的每个客户端提供一个新的命令解释器。服务器是为每个客户端分叉的,但这比必须等待Festival进程从头开始要快得多。服务器也可以在更大的计算机上运行,从而提供更快的综合速度。 林克
还有一个功能齐全的C ++ API,您可以使用它制作一个Python模块(这很有趣!)。Festival还提供了精简的C API-继续滚动该文档-您也许可以ctypes
一次性使用它。
也许您发现了市场上的漏洞?
有很多方法可以使Python在Python3和Python2中都可以使用,其中两种很棒的方法是:
如果您使用的是Mac,您将在计算机中内置os模块。您可以使用以下命令导入os模块:
import os
然后,您可以使用os.os命令使用os来运行终端命令:
os.system("Your terminal")
在终端中,使计算机发言的方式是使用“ say”命令,因此,只需使用以下命令即可使计算机发言:
os.system("say 'some text'")
如果您想使用它来说一个变量,可以使用:
os.system("say " + myVariable)
让python说话的第二种方法是使用
您将必须使用安装
pip isntall pyttsx3
或对于Python3
pip3 install pyttsx3
然后,您可以使用以下代码说出它:
import pyttsx3
engine = pyttsx3.init()
engine.say("Your Text")
engine.runAndWait()
我希望这有帮助!:)
Pyttsx3是一个python模块,是pyttsx的现代克隆,经过修改可在最新版本的Python 3中完美运行!
它是100%的多平台并且可以离线工作,并且可以在任何PYTHON版本上进行活跃/仍处于开发和工作状态
可以轻松安装,pip install pyttsx3
用法与pyttsx相同:
import pyttsx3;
engine = pyttsx3.init();
engine.say("I will speak this text");
engine.runAndWait();
这是最好的多平台选择!
这就是您要寻找的。适用于Mac的完整TTS解决方案。您可以单独使用此服务器,也可以将其用作Web应用程序的托管Mac服务器:
我更喜欢使用Google Text To Speech库,因为它的声音更自然。
from gtts import gTTS
def speak(text):
tts = gTTS(text=text, lang="en")
filename = "voice.mp3"
tts.save(filename)
有一个限制。gTTS只能将文本转换为语音并保存。因此,您将不得不找到另一个模块或函数来播放该文件。(例如:playsound)
Playsound是一个非常简单的模块,具有一个功能,即播放声音。
import playsound
def play(filename):
playsound.playsound(filename)
保存mp3文件后,可以直接调用playsound.playsound()。
结合以下来源,以下代码仅使用platform
和os
模块即可在Windows,Linux和macOS上运行:
tx = input("Text to say >>> ")
tx = repr(tx)
import os
import platform
syst = platform.system()
if syst == 'Linux' and platform.linux_distribution()[0] == "Ubuntu":
os.system('spd-say %s' % tx)
elif syst == 'Windows':
os.system('PowerShell -Command "Add-Type –AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak(%s);"' % tx)
elif syst == 'Darwin':
os.system('say %s' % tx)
else:
raise RuntimeError("Operating System '%s' is not supported" % syst)
注意:此方法不安全,可能被恶意文本利用。
只需在python中使用此简单代码即可。
仅适用于Windows OS。
from win32com.client import Dispatch
def speak(text):
speak = Dispatch("SAPI.Spvoice")
speak.Speak(text)
speak("How are you dugres?")
我个人使用这个。