Python GTTS错误:AttributeError:'NoneType'对象没有属性'group'

时间:2018-09-28 12:10:52

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

我有一个项目,我正在做文本到语音的转换。我的音频文件存储为mp3。

但是现在,当我检查Gtts api时抛出错误。我尝试搜索,但找不到该错误的可行解决方案。

我的代码如下:

def synth(sent,language='en',slow = False):
    """
    Synthesize text into audio
    """  
    os.system('clear')
    print("Speaker Output:" + sent)
    gt_ob = gTTS(text=sent, lang=language, slow=slow)
    file_name = hashlib.md5(sent.encode('utf-8')).hexdigest()
    print("File Name " + file_name)
    gt_ob.save("media/audio.mp3")
    print("Till here")
    os.system("ffmpeg -nostats -loglevel 0 -y -i media/audio.mp3 -ar 16000 media/"+ file_name + ".wav")

if __name__ == "__main__":
    synth("good morning","en")

我收到的错误消息是:

File "file_name.py", line 30, in <module>
synth("good morning","en")
  File "file_name.py", line 25, in synth
    gt_ob.save("media/audio.mp3")
  File "/home/arqam/anaconda3/lib/python3.6/site-packages/gtts/tts.py", line 247, in save
    self.write_to_fp(f)
  File "/home/arqam/anaconda3/lib/python3.6/site-packages/gtts/tts.py", line 187, in write_to_fp
    part_tk = self.token.calculate_token(part)
  File "/home/arqam/anaconda3/lib/python3.6/site-packages/gtts_token/gtts_token.py", line 28, in calculate_token
    seed = self._get_token_key()
  File "/home/arqam/anaconda3/lib/python3.6/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'

那么我们如何解决这个弹出的错误?

5 个答案:

答案 0 :(得分:7)

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

中修复。

在我重新安装gttsgtts-token后,该问题已解决。现在正在工作。感谢开源之神和@ carrey-cole

链接:https://github.com/pndurette/gTTS/issues/137

答案 1 :(得分:4)

看来这是一个已知的错误,在撰写本文时https://github.com/pndurette/gTTS/issues/137

已在7天前修复。

解决方案是升级gTTS令牌包。

答案 2 :(得分:1)

请尝试以下操作:

pip install google_tts

它的作用相同

import google_tts
a = google_tts.TTS(text = 'hello world')
a.save('test.mp3')

答案 3 :(得分:0)

由于gtts版本已过时,因此会出现问题。

在CLI中运行以下命令

pip install gtts --upgrade

答案 4 :(得分:0)

如果您将Windows 7、8或10与Anaconda for Python一起使用,请打开Anaconda提示符并尝试以下操作:

pip install gtts --upgrade

pip install gtts-token --upgrade

这对我有用。