gTTS函式庫修正(11/30更新)

使用google的gTTS函式庫是很方便的文字轉語音函式庫,原理是基於網路爬蟲相關技術,到google的翻譯網頁傳要求請google轉成語音,再把語音下載下來。

但google回傳的東西往往會突然變更格式--這時候這種函式庫就需要更新解析的方法。

因此我們設立本專頁,專門處理gTTS修正的方法。

————————————————————————————————————–

11/29後更新,請將以下程式碼放在你有用到gTTS的程式碼之前:

import calendar
import time
import math
import re
import requests
from gtts import gTTS
from gtts_token.gtts_token import Token

def _patch_faulty_function(self):
    if self.token_key is not None:
        return self.token_key

    timestamp = calendar.timegm(time.gmtime())
    hours = int(math.floor(timestamp / 3600))

    results = requests.get("https://translate.google.com/")
    tkk_expr = re.search("(tkk:*?'\d{2,}.\d{3,}')", results.text).group(1)
    tkk = re.search("(\d{5,}.\d{6,})", tkk_expr).group(1)
    
    a , b = tkk.split('.')

    result = str(hours) + "." + str(int(a) + int(b))
    self.token_key = result
    return result

Token._get_token_key = _patch_faulty_function