【问题标题】:Text-to-speech (TTS) module that works under Python 3在 Python 3 下工作的文本转语音 (TTS) 模块
【发布时间】:2015-08-17 04:52:08
【问题描述】:

我已经尝试过 PyTTS(已弃用)和 PyTTSx(最推荐)和两个 Google TTS 解决方案(gTTS 和另一个叫 Hung Truong 的人的解决方案),但它们都不能在 Python 3.4 下工作。似乎它们还没有移植到 3.x。

我在 StackOverflow 和 Google 上搜索过这里,但所有建议的 TTS 解决方案都不能在 Python 3 下运行。我在 Windows 7 上。

【问题讨论】:

    标签: python python-3.x text-to-speech


    【解决方案1】:

    Reddit 上的用户found a solution

    原来 gTTS 在 Python 3.x 下工作,是我错误地导入了模块。

    我正在使用:

    import gtts
    blabla = ("Spoken text")
    tts = gTTS(text=blabla, lang='en')
    tts.save("C:/test.mp3")
    

    导致以下错误:

    NameError: name 'gTTS' is not defined
    

    当正确的方法是:

    from gtts import gTTS
    blabla = ("Spoken text")
    tts = gTTS(text=blabla, lang='en')
    tts.save("C:/test.mp3")
    

    【讨论】:

      【解决方案2】:

      最好的解决办法是:

      pyttsx3


      Pyttsx3 是一个离线跨平台文本转语音库,兼容 Python 3 和 Python 2,并支持多个 TTS 引擎。

      我发现它非常有用,而且声音制作没有延迟,不像 gTTS 需要互联网连接才能工作并且有一些延迟。

      安装:

      这是一个示例代码:

      
          import pyttsx3
          engine = pyttsx3.init()
          engine.say("Hello this is me talking")
          engine.setProperty('rate',120)  #120 words per minute
          engine.setProperty('volume',0.9) 
          engine.runAndWait()
          
      
      

      【讨论】:

      • 如果使用windows,也要安装pypiwin32 python -m pip install pypiwin32
      • 仍然出现错误。这次:com_error: (-2147352573, 'Member not found.', None, None)
      • 如何使用 pyttsx3 保存语音的音频文件?
      【解决方案3】:

      我刚刚安装了 2015 年 10 月 7 日上传的 gtts 1.0.7

      以下代码适用于 Python 3.5:

      import subprocess
      from gtts import gTTS
      
      audio_file = "hello.mp3"
      tts = gTTS(text="Hello World!", lang="en")
      tts.save(audio_file)
      return_code = subprocess.call(["afplay", audio_file])
      

      我在 Mac 上使用内置的“afply”来播放 mp3,但还有其他方式,例如Playing mp3 song on python

      【讨论】:

      • 如果你打算在 OS X 上使用 subprocess,为什么不直接使用 subprocess.call(["say", "Hello World!"])
      【解决方案4】:

      您可以使用 Google Text-to-Speech API 而不是使用模块。您可以轻松地使用此 URL 生成 wav 文件并通过简单的 HTTP 请求获取它:

      http://www.translate.google.com/translate_tts?tl=en&q=Hello%20World

      【讨论】:

      • Google 确实使用验证码保护此链接 :(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 2019-05-13
      • 1970-01-01
      • 1970-01-01
      • 2013-04-10
      • 1970-01-01
      相关资源
      最近更新 更多