【问题标题】:How to convert text to speech using python on ubuntu 10.10?如何在 ubuntu 10.10 上使用 python 将文本转换为语音?
【发布时间】:2011-08-07 08:13:12
【问题描述】:

我是这种涉及文本到语音或语音到文本转换的编程的新手,这就是我在这里寻求一些初步帮助的原因。我在互联网上搜索过它,我发现了 pyttsx 的 ubuntu,最初我无法开始使用它,但不知何故我设法做到了,但现在问题是我输入了这样的内容:

import pyttsx
engine=pyttsx.init()

它给出了分段错误。我需要这方面的帮助,并告诉我是否使用了正确的工具。 提前致谢!

【问题讨论】:

    标签: python speech-recognition text-to-speech


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      $ 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()
      

      【讨论】:

      • 或者:sudo pip install pyttsx
      • 实际上是否也安装了 libsphinx 二进制文件和头文件?我以为 Sphinx 在 C 中。
      • 我不太确定。 pip 也可以编译 C,但我想我之前安装了 sphinx。所以我不知道如果我之前没有安装它是否会起作用。
      【解决方案3】:

      您可能需要阅读Need text to speech and speech recognition tools for LinuxSpeech processing library in Python for speech to text 中的答案

      为什么会出现分段错误?这是一个完整的猜测:您已经安装了 API 包,但您没有安装实际的语音引擎(如 Sphinx)。 http://pypi.python.org/pypi/pyttsx 说:

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

      您是否安装了受支持的引擎之一?

      【讨论】:

      • 你说得对,我的系统上没有安装任何语音引擎,我的系统上什至没有安装 pyttsx API。相反,我只是下载了 pyttsx 包,移动到该目录并导入了 pyttsx 目录。告诉我如何安装 API。
      • 对不起。我给了你我在那个主题上得到的一切。我可以帮助你处理 Windows 软件包,但对于 Ubuntu,你已经达到了我的知识极限。
      • @Ankur - 尝试安装 espeak。如果这样可以解决问题,您还可以让 ununtu 上 pyttsx 的包维护者知道他们的 .deb 包的依赖关系已损坏。鉴于您遇到了段错误,但它可能是另一个问题......
      • @Ankur - 等等,你真的尝试构建 pyttsx 模块吗?仅“移动到该目录并导入 pyttsx 目录”仅(永远)在纯 python 模块的情况下有效。以通常的方式从 repo 安装 pyttsx(如上面的 @sleeypnate 建议的那样),或者像通常使用 setuptools 一样构建和安装 python 模块(例如python setup.py build && sudo python setup.py installsudo easy_install pyttsx)。但是,如果您构建它,您将需要完整的构建依赖项。你最好从 repos 安装它。
      【解决方案4】:
      import pyttsx
      engine = pyttsx.init()
      engine.setProperty('rate', 75)
      for voice in voices:
          print "Using voice:", repr(voice)
          engine.setProperty('voice', voice.id)
          engine.say("How are you doing")
      
      engine.runAndWait()
      

      【讨论】:

        猜你喜欢
        • 2012-11-25
        • 2012-08-28
        • 2010-10-04
        • 1970-01-01
        • 2013-03-09
        • 2016-11-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多