web-dev-qa-db-fra.com

Erreur Python GTTS: AttributeError: l'objet 'NoneType' n'a pas d'attribut 'groupe'

J'ai un projet où je faisais la conversion de texte en parole. Mon fichier audio est stocké au format MP3.

Mais maintenant, quand je vérifie que l’API Gtts jette une erreur. J'ai essayé de chercher mais je n'ai pas pu trouver de solution pratique au bogue.

Mon code est le suivant: 

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 __== "__main__":
    synth("good morning","en")

Et le message d'erreur que je reçois est le suivant: 

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'

Alors, comment pouvons-nous résoudre ce bug qui est apparu?

4
arqam

Il y a un correctif officiel maintenant. Il s'agissait d'une dépendance en amont de gtts, gtts-token. Cela a été corrigé dans gtts-token==1.1.2

Le problème a été résolu après une nouvelle installation de gtts et gtts-token. Maintenant ça marche. Merci aux dieux de l'open source et @ carrey-cole

Lien: https://github.com/pndurette/gTTS/issues/137

8
bipin_s

Il semble que ce soit un bogue connu qui avait déjà été corrigé il ya sept jours: https://github.com/pndurette/gTTS/issues/137

La solution serait de mettre à jour le paquet gTTS-token.

5
Iguananaut

Essayez ce qui suit: 

pip install google_tts

ça marche pareil 

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

Le problème se produit car la version de gtts est obsolète.

Exécutez la commande suivante dans la CLI

pip install gtts --upgrade

0
user9666121