如何在python中使用gTTS?

时间:2018-09-21 08:25:03

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

执行以下代码时

 from gtts import gTTS
 tts = gTTS('hello')
 tts.save('hello.mp3')

我收到“ AttributeError:'NoneType'对象没有属性'group'”。

Traceback (most recent call last):

File "C:\Users\HP\Desktop\Desktop\programming\Python_code\New Text Document - Copy (8) - Copy.py", line 3, in <module>
    tts.save('hello.mp3')
  File "C:\Users\HP\AppData\Local\Programs\Python\Python36\lib\site-packages\gtts\tts.py", line 247, in save
    self.write_to_fp(f)
  File "C:\Users\HP\AppData\Local\Programs\Python\Python36\lib\site-packages\gtts\tts.py", line 187, in write_to_fp
    part_tk = self.token.calculate_token(part)
  File "C:\Users\HP\AppData\Local\Programs\Python\Python36\lib\site-packages\gtts_token\gtts_token.py", line 28, in calculate_token
    seed = self._get_token_key()
  File "C:\Users\HP\AppData\Local\Programs\Python\Python36\lib\site-packages\gtts_token\gtts_token.py", line 62, in _get_token_key
    a = re.search("a\\\\x3d(-?\d+);", tkk_expr).group(1)
AttributeError: 'NoneType' object has no attribute 'group'

是否可以在Python中使用gTTS?

3 个答案:

答案 0 :(得分:0)

我检查了gtts_token.py的第64行的代码,并尝试进行print(a),但显示为“ NoneType”。

我在第64行中修复了该错误:

# bug
# a = re.search(“a\\\\x3d(-?\d+);”, tkk_expr).group(1)
# b = re.search(“b\\\\x3d(-?\d+);”, tkk_expr).group(1)

# debug
tkk = tkk_expr.replace(“\’”, “”).split(“;”)[0].split(“=”)[1]
a = tkk.split(“.”)[0]
b = tkk.split(“.”)[1]

答案 1 :(得分:0)

现在有一个官方修复程序。它与gtts的上游依赖性gtts-token有关。它已在gtts-token == 1.1.2

中修复。

我重新安装了gtts和gtts-token后,我的问题已解决。

可以在here中找到gtts中的相关github问题。这个问题在12小时内解决了。赞美开源之神! :D

答案 2 :(得分:0)

只需卸载gtts-token和gtts,然后重新安装。

pip uninstall gtts-token
pip uninstall gtts
pip install gtts-token
pip install gtts