PK!ttslib/__init__.pyPK!(+ttslib/alias.yamlar: [ar_sa] ar_sa: ar_sa cs: [cs_cz] cs_cz: cs_cz da: [da_dk] da_dk: da_dk de: [de_de] de_de: de_de el: [el_gr] el_gr: el_gr en: [en_us, en_gb, en_scotland, en_au, en_ie, en_za, en_in] en_au: en_au en_gb: en_gb en_ie: en_ie en_in: en_in en_scotland: en_scotland en_us: en_us en_za: en_za es: [es_ar, es_es, es_mx] es_ar: es_ar es_es: es_es es_mx: es_mx fi: [fi_fi] fi_fi: fi_fi fr: [fr_ca, fr_fr] fr_ca: fr_ca fr_fr: fr_fr he_il: he_il hi: [hi_in] hi_in: hi_in hu: [hu_hu] hu_hu: hu_hu id: [id_id] id_id: id_id it: [it_it] it_it: it_it ja: [ja_jp] ja_jp: ja_jp ko: [ko_kr] ko_kr: ko_kr nb_no: nb_no nl: [nl_be, nl_nl] nl_be: nl_be nl_nl: nl_nl pl: [pl_pl] pl_pl: pl_pl pt: [pt_pt, pt_br] pt_br: pt_br pt_pt: pt_pt ro: [ro_ro] ro_ro: ro_ro ru: [ru_ru] ru_ru: ru_ru sk: [sk_sk] sk_sk: sk_sk sv: [sv_se] sv_se: sv_se th: [th_th] th_th: th_th tr: [tr_tr] tr_tr: tr_tr zh_cn: zh_cn zh_hk: zh_hk zh_tw: zh_tw PK!-ttslib/local.pyimport sys from .osx import do_say def tts(s, lang): platform = sys.platform if platform == 'darwin': if do_say(s, lang): return from google_speech import Speech Speech(s, lang).play(()) PK!gmmttslib/online.pyfrom gtts import gTTS from tempfile import TemporaryFile import base64 class Tts: def __init__(self, s, lang): self.tts = gTTS(s, lang) def to_bytes(self): temp = TemporaryFile() self.tts.write_to_fp(temp) temp.seek(0) return temp.read() def to_base64(self): return base64.b64encode(self.to_bytes()) PK! ttslib/osx.pyimport subprocess from threading import Thread from .util import Alias def do_say(s, lang): def _do_say(_voice): subprocess.call([ 'say', '-v', _voice, s ]) voice = Alias.to_speaker(lang) if voice: t = Thread(target=_do_say, args=(voice,)) t.daemon = True t.start() return 1 return 0 PK!ooWzttslib/osx.yamlar_sa: [Maged] cs_cz: [Zuzana] da_dk: [Sara] de_de: [Anna] el_gr: [Melina] en_au: [Karen] en_gb: [Daniel] en_ie: [Moira] en_in: [Veena] en_scotland: [Fiona] en_us: [Alex, Fred, Samantha, Victoria] en_za: [Tessa] es_ar: [Diego] es_es: [Jorge, Monica] es_mx: [Juan, Paulina] fi_fi: [Satu] fr_ca: [Amelie] fr_fr: [Thomas] he_il: [Carmit] hi_in: [Lekha] hu_hu: [Mariska] id_id: [Damayanti] it_it: [Alice, Luca] ja_jp: [Kyoko] ko_kr: [Yuna] nb_no: [Nora] nl_be: [Ellen] nl_nl: [Xander] pl_pl: [Zosia] pt_br: [Luciana] pt_pt: [Joana] ro_ro: [Ioana] ru_ru: [Milena, Yuri] sk_sk: [Laura] sv_se: [Alva] th_th: [Kanya] tr_tr: [Yelda] zh_cn: [Ting-Ting] zh_hk: [Sin-ji] zh_tw: [Mei-Jia] PK!8*ggttslib/util.pyfrom ruamel import yaml try: from importlib.resources import read_text except ImportError: from importlib_resources import read_text def normalize(k): return k.lower().replace('-', '_') class Alias: alias = yaml.safe_load(read_text('ttslib', 'alias.yaml')) osx = yaml.safe_load(read_text('ttslib', 'osx.yaml')) @classmethod def _read_data(cls, a): for k, v in cls.alias.items(): if a in k: return v return None @classmethod def to_lang(cls, a): a = normalize(a) lang = cls._read_data(a) if a == lang: return lang elif isinstance(lang, str): a = lang return cls.to_lang(a) @classmethod def to_speaker(cls, a): lang = cls.to_lang(a) if lang: return cls.osx.get(lang, [None])[0] PK!H WXttslib-0.1.0.1.dist-info/WHEEL A н#Z."jm)Afb~ڠO68oF04UhoAf f4=4h0k::wXPK!HPUG6!ttslib-0.1.0.1.dist-info/METADATAOK1sTvB,bK5ZM{LK/gNQ% =IwZW{<T{㦈 ɰ[-SyBr=i][z}JcTU\VE6WJ|oAkǰc1f(.S ( [W#%\\_u&)^"C"FLMև