如何在Ubuntu 10.10上使用Python将文本转换为语音?
我刚接触这种编程,主要是关于文字转语音或者语音转文字的,所以我来这里寻求一些初步的帮助。我在网上查了一下,发现了适用于Ubuntu的pyttsx,最开始我不知道怎么开始,但后来我勉强搞定了。不过现在的问题是,当我输入类似这样的内容:
import pyttsx
engine=pyttsx.init()
它就出现了段错误。我需要对此的帮助,也请告诉我我是不是在用对工具。提前谢谢你们!
4 个回答
你可能想看看这两个链接里的回答:需要在Linux上使用的文本转语音和语音识别工具 和 Python中的语音处理库,用于语音转文本
为什么会出现段错误呢?这只是我的猜测:你可能安装了API包,但没有安装实际的语音引擎(比如Sphinx)。 http://pypi.python.org/pypi/pyttsx 上说:
pyttsx是一个Python包,支持在Mac OSX、Windows和Linux上常见的文本转语音引擎。它目前支持SAPI5、NSSpeechSynthesizer和espeak。pyttsx在Windows上需要Mark Hammond的win32com包。
你安装了支持的语音引擎吗?
在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们没有正确理解某些概念,或者在写代码时犯了一些小错误。
比如说,当你在写程序时,可能会用到一些特定的词汇或者语法规则。如果你不太明白这些规则,就很容易写出有问题的代码。就像学习一门新语言一样,刚开始的时候可能会觉得很难,但只要多练习,就会慢慢变得熟悉。
另外,编程中还有很多工具和资源可以帮助你解决问题,比如在线论坛、文档和教程。通过这些资源,你可以找到别人遇到的类似问题和解决方案,这样就能更快地找到自己的问题所在。
总之,编程是一项需要不断学习和实践的技能,遇到问题时不要气馁,多查资料、多请教别人,慢慢就能掌握它。
$ sudo apt-get install sphinx2-bin libsphinx2-dev
# enter your password when prompted
$ python -i
>>> import pyttsx
>>> engine=pyttsx.init()
>>> engine.say('Sally sells seashells by the seashore.')
>>> engine.runAndWait()
espeak在ubuntu系统中是默认安装的。你可以试试用python来调用它。
import os
import datetime
def tts(text):
return os.system("espeak -s 155 -a 200 "+text+" " )
m = datetime.datetime.now().strftime("%I %M %S")
tts("'Sir the time is"+str(int(m[0:2]))+" "+str(int(m[3:5]))+" : ' ")