【问题标题】:RecursionError when using gtts on Python在 Python 上使用 gtts 时出现 RecursionError
【发布时间】:2020-10-26 12:03:26
【问题描述】:

我正在使用 gtts(google text to speech) 包将几个中文文本转换为语音。但是,我得到了很多 RecursionError: maximum recursion depth exceeded。

代码很简单:

from gtts import gTTS

tts = gTTS(text=sentence, lang='zh')
tts.save(r"E:\Project\audioData\zh%d.wav"%(1))

完整的错误信息显示为照片 Error Messeage

Traceback (most recent call last):
File "E:\Independent Study\Project\test.py", line 3, in <module>
tts = gTTS(text=sentence, lang='zh')
File "C:\Users\Yuchen Liu\AppData\Local\Programs\Python\Python36\lib\site-
packages\gtts\tts.py", line 97, in __init__
text_parts = self._tokenize(text, self.MAX_CHARS)
File "C:\Users\Yuchen Liu\AppData\Local\Programs\Python\Python36\lib\site-
packages\gtts\tts.py", line 169, in _tokenize
min_parts += self._minimize(p, " ", max_size)
File "C:\Users\Yuchen Liu\AppData\Local\Programs\Python\Python36\lib\site-
packages\gtts\tts.py", line 178, in _minimize
return [thestring[:idx]] + self._minimize(thestring[idx:], delim, max_size)
File "C:\Users\Yuchen Liu\AppData\Local\Programs\Python\Python36\lib\site-
packages\gtts\tts.py", line 178, in _minimize
return [thestring[:idx]] + self._minimize(thestring[idx:], delim, max_size)
File "C:\Users\Yuchen Liu\AppData\Local\Programs\Python\Python36\lib\site-
packages\gtts\tts.py", line 178, in _minimize
return [thestring[:idx]] + self._minimize(thestring[idx:], delim, max_size)
[Previous line repeated 983 more times]
File "C:\Users\Yuchen Liu\AppData\Local\Programs\Python\Python36\lib\site-
packages\gtts\tts.py", line 176, in _minimize
if self._len(thestring) > max_size:
File "C:\Users\Yuchen Liu\AppData\Local\Programs\Python\Python36\lib\site-
packages\gtts\tts.py", line 154, in _len
return len(unicode(text))
RecursionError: maximum recursion depth exceeded

请帮忙!

【问题讨论】:

  • 请不要发布照片。请张贴文字。
  • 一些代码也会有帮助。
  • 错误不是该代码引起的,它显示了完整的代码。
  • 您的句子中是否包含 100 多个字符的单词?这是我查看库代码后看到错误发生的唯一方法。为了让它像那样永远递归,它似乎试图处理一个以空格开头的字符串,后跟至少 99 个非空格字符。
  • @Blckknght ,有中文文本,这是可能的。我注意到_tokenize他们的标点包括中文句号,但不包括中文逗号(,)。在中文写作中,逗号的使用更像是英文中的句号。另外,我很少看到空格。也许如果有某种前导缩进,或者在一段时间后有一个空格,那么很容易有" ",然后99个字符穿插着无法识别的逗号并且没有空格。刘雨辰,你用的文字能打印一下吗?

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


【解决方案1】:

正确的术语是:

from gtts import gTTS

tts = gTTS("sentence",lang = "zh")

tts.save("sentence.mp3")

【讨论】:

    猜你喜欢
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    相关资源
    最近更新 更多