如何在Ubuntu 10.10上使用Python将文本转换为语音?

4 投票
4 回答
11488 浏览
提问于 2025-04-16 15:55

我刚接触这种编程,主要是关于文字转语音或者语音转文字的,所以我来这里寻求一些初步的帮助。我在网上查了一下,发现了适用于Ubuntu的pyttsx,最开始我不知道怎么开始,但后来我勉强搞定了。不过现在的问题是,当我输入类似这样的内容:

import pyttsx
engine=pyttsx.init()

它就出现了段错误。我需要对此的帮助,也请告诉我我是不是在用对工具。提前谢谢你们!

4 个回答

2

你可能想看看这两个链接里的回答:需要在Linux上使用的文本转语音和语音识别工具Python中的语音处理库,用于语音转文本

为什么会出现段错误呢?这只是我的猜测:你可能安装了API包,但没有安装实际的语音引擎(比如Sphinx)。 http://pypi.python.org/pypi/pyttsx 上说:

pyttsx是一个Python包,支持在Mac OSX、Windows和Linux上常见的文本转语音引擎。它目前支持SAPI5、NSSpeechSynthesizer和espeak。pyttsx在Windows上需要Mark Hammond的win32com包。

你安装了支持的语音引擎吗?

6

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们没有正确理解某些概念,或者在写代码时犯了一些小错误。

比如说,当你在写程序时,可能会用到一些特定的词汇或者语法规则。如果你不太明白这些规则,就很容易写出有问题的代码。就像学习一门新语言一样,刚开始的时候可能会觉得很难,但只要多练习,就会慢慢变得熟悉。

另外,编程中还有很多工具和资源可以帮助你解决问题,比如在线论坛、文档和教程。通过这些资源,你可以找到别人遇到的类似问题和解决方案,这样就能更快地找到自己的问题所在。

总之,编程是一项需要不断学习和实践的技能,遇到问题时不要气馁,多查资料、多请教别人,慢慢就能掌握它。

$ 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()
10

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]))+" : ' ")

撰写回答