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?
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
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.
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')
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