Ошибка Python GTTS: AttributeError: у объекта 'NoneType' нет атрибута 'группа' - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть проект, где я делал преобразование текста в речь.Мой аудиофайл хранится в формате 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 голосов
/ 15 марта 2019

Если вы используете Windows 7, 8 или 10 вместе с Anaconda для Python, откройте приглашение Anaconda и попробуйте следующее:

pip install gtts --upgrade

pip install gtts-token --upgrade

Это работает для меня.

0 голосов
/ 02 марта 2019

Проблема возникает из-за того, что версия gtts устарела.

Выполните следующую команду в CLI

pip install gtts --upgrade

0 голосов
/ 28 сентября 2018

Есть официальное исправление.Это было связано с вышестоящей зависимостью gtts, gtts-token.Это было исправлено в gtts-token==1.1.2

Проблема была исправлена ​​после того, как я сделал новую установку как gtts, так и gtts-token.Теперь это работает.Благодаря богам с открытым исходным кодом и @ Carrey-Cole

Ссылка: https://github.com/pndurette/gTTS/issues/137

0 голосов
/ 29 ноября 2018

Попробуйте следующее:

pip install google_tts

работает так же

import google_tts
a = google_tts.TTS(text = 'hello world')
a.save('test.mp3')
0 голосов
/ 28 сентября 2018

Похоже, что это известная ошибка, которая уже исправлена ​​семь дней назад на момент написания: https://github.com/pndurette/gTTS/issues/137

Решением будет обновление пакета gTTS-токена.

...