簡體   English   中英

Python GTTS 錯誤:AttributeError:'NoneType' 對象沒有屬性 'group'

[英]Python GTTS Error : AttributeError: 'NoneType' object has no attribute 'group'

我有一個項目,我正在做文本到語音的轉換。 我的音頻文件被存儲為 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'

那么我們如何解決這個彈出的錯誤呢?

現在有官方修復。 它與gttsgtts-token的上游依賴有關。 它已在gtts-token==1.1.2得到修復

在我重新安裝gttsgtts-token后,問題得到了解決。 現在它正在工作。 感謝開源大神和@carrey-cole

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

看來這是一個已知的錯誤,在撰寫本文時已於 7 天前修復: https : //github.com/pndurette/gTTS/issues/137

解決方案是升級 gTTS-token 包。

請嘗試以下操作:

pip install google_tts

它的工作原理相同

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

如果您將 Windows 7、8 或 10 與 Anaconda for Python 一起使用,請打開 Anaconda 提示符並嘗試以下操作:

pip install gtts --upgrade

pip install gtts-token --upgrade

這對我有用。

出現這個問題是因為gtts版本過時了。

在 CLI 中運行以下命令

pip install gtts --upgrade

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM