PK!`!ttslib/__init__.pyfrom .core import tts PK!֥|ttslib/core.pyimport sys from .osx import do_say from .ttsx import do_ttsx from .guess import Guess def tts(s, lang, non_blocking=True): platform = sys.platform voice = Guess.do_guess(lang) if voice: if platform == 'darwin': do_say(s, voice, non_blocking) else: do_ttsx(s, voice, non_blocking) return else: from google_speech import Speech Speech(s, lang).play(()) PK!D$??ttslib/data/__init__.pytry: from importlib.resources import read_text except ImportError: from importlib_resources import read_text RESOURCES = ['to_speaker.yaml', 'supported.yaml', 'windows.yaml', 'osx.txt', 'espeak.yaml', 'guess.yaml', 'speaker.yaml'] def get_resource(res): return read_text('ttslib.data', res) PK!yttslib/data/espeak.yamlMandarin: age: null gender: male id: Mandarin languages: [b'\x05zh'] name: Mandarin afrikaans: age: null gender: male id: afrikaans languages: [b'\x05af'] name: afrikaans albanian: age: null gender: male id: albanian languages: [b'\x05sq'] name: albanian aragonese: age: null gender: male id: aragonese languages: [b'\x05an'] name: aragonese armenian: age: null gender: male id: armenian languages: [b'\x05hy'] name: armenian armenian-west: age: null gender: male id: armenian-west languages: [b'\x05hy-west'] name: armenian-west bosnian: age: null gender: male id: bosnian languages: [b'\x05bs'] name: bosnian brazil: age: null gender: male id: brazil languages: [b'\x05pt-br'] name: brazil bulgarian: age: null gender: null id: bulgarian languages: [b'\x05bg'] name: bulgarian cantonese: age: null gender: male id: cantonese languages: [b'\x05zh-yue'] name: cantonese catalan: age: null gender: male id: catalan languages: [b'\x05ca'] name: catalan croatian: age: null gender: male id: croatian languages: [b'\x05hr'] name: croatian czech: age: null gender: male id: czech languages: [b'\x05cs'] name: czech danish: age: null gender: male id: danish languages: [b'\x05da'] name: danish default: age: null gender: male id: default languages: [b'\x05en'] name: default dutch: age: null gender: male id: dutch languages: [b'\x05nl'] name: dutch en-scottish: age: null gender: male id: en-scottish languages: [b'\x05en-sc'] name: en-scottish en-westindies: age: null gender: male id: en-westindies languages: [b'\x05en-wi'] name: en-westindies english: age: null gender: male id: english languages: [b'\x02en-gb'] name: english english-north: age: null gender: male id: english-north languages: [b'\x05en-uk-north'] name: english-north english-us: age: null gender: male id: english-us languages: [b'\x02en-us'] name: english-us english_rp: age: null gender: male id: english_rp languages: [b'\x05en-uk-rp'] name: english_rp english_wmids: age: null gender: male id: english_wmids languages: [b'\x05en-uk-wmids'] name: english_wmids esperanto: age: null gender: male id: esperanto languages: [b'\x05eo'] name: esperanto estonian: age: null gender: null id: estonian languages: [b'\x05et'] name: estonian finnish: age: null gender: male id: finnish languages: [b'\x05fi'] name: finnish french: age: null gender: male id: french languages: [b'\x05fr-fr'] name: french french-Belgium: age: null gender: male id: french-Belgium languages: [b'\x05fr-be'] name: french-Belgium georgian: age: null gender: null id: georgian languages: [b'\x05ka'] name: georgian german: age: null gender: male id: german languages: [b'\x05de'] name: german greek: age: null gender: male id: greek languages: [b'\x05el'] name: greek greek-ancient: age: null gender: male id: greek-ancient languages: [b'\x05grc'] name: greek-ancient hindi: age: null gender: male id: hindi languages: [b'\x05hi'] name: hindi hungarian: age: null gender: male id: hungarian languages: [b'\x05hu'] name: hungarian icelandic: age: null gender: male id: icelandic languages: [b'\x05is'] name: icelandic indonesian: age: null gender: male id: indonesian languages: [b'\x05id'] name: indonesian irish-gaeilge: age: null gender: null id: irish-gaeilge languages: [b'\x05ga'] name: irish-gaeilge italian: age: null gender: male id: italian languages: [b'\x05it'] name: italian kannada: age: null gender: null id: kannada languages: [b'\x05kn'] name: kannada kurdish: age: null gender: male id: kurdish languages: [b'\x05ku'] name: kurdish latin: age: null gender: male id: latin languages: [b'\x05la'] name: latin latvian: age: null gender: male id: latvian languages: [b'\x05lv'] name: latvian lingua_franca_nova: age: null gender: male id: lingua_franca_nova languages: [b'\x05lfn'] name: lingua_franca_nova lithuanian: age: null gender: male id: lithuanian languages: [b'\x05lt'] name: lithuanian lojban: age: null gender: null id: lojban languages: [b'\x05jbo'] name: lojban macedonian: age: null gender: male id: macedonian languages: [b'\x05mk'] name: macedonian malay: age: null gender: male id: malay languages: [b'\x05ms'] name: malay malayalam: age: null gender: male id: malayalam languages: [b'\x05ml'] name: malayalam nepali: age: null gender: male id: nepali languages: [b'\x05ne'] name: nepali norwegian: age: null gender: male id: norwegian languages: [b'\x05no'] name: norwegian persian: age: null gender: null id: persian languages: [b'\x05fa'] name: persian persian-pinglish: age: null gender: null id: persian-pinglish languages: [b'\x05fa-pin'] name: persian-pinglish polish: age: null gender: male id: polish languages: [b'\x05pl'] name: polish portugal: age: null gender: male id: portugal languages: [b'\x05pt-pt'] name: portugal punjabi: age: null gender: null id: punjabi languages: [b'\x05pa'] name: punjabi romanian: age: null gender: male id: romanian languages: [b'\x05ro'] name: romanian russian: age: null gender: male id: russian languages: [b'\x05ru'] name: russian serbian: age: null gender: male id: serbian languages: [b'\x05sr'] name: serbian slovak: age: null gender: male id: slovak languages: [b'\x05sk'] name: slovak spanish: age: null gender: male id: spanish languages: [b'\x05es'] name: spanish spanish-latin-am: age: null gender: male id: spanish-latin-am languages: [b'\x05es-la'] name: spanish-latin-am swahili-test: age: null gender: male id: swahili-test languages: [b'\x05sw'] name: swahili-test swedish: age: null gender: male id: swedish languages: [b'\x05sv'] name: swedish tamil: age: null gender: male id: tamil languages: [b'\x05ta'] name: tamil turkish: age: null gender: male id: turkish languages: [b'\x05tr'] name: turkish vietnam: age: null gender: male id: vietnam languages: [b'\x05vi'] name: vietnam vietnam_hue: age: null gender: male id: vietnam_hue languages: [b'\x05vi-hue'] name: vietnam_hue vietnam_sgn: age: null gender: male id: vietnam_sgn languages: [b'\x05vi-sgn'] name: vietnam_sgn welsh: age: null gender: male id: welsh languages: [b'\x05cy'] name: welsh PK!XA\\ttslib/data/guess.yamlaf: [afrikaans] al: [albanian] ar: [ar_sa, aragonese, armenian, armenian_west, es_ar] au: [en_au] be: [nl_be] bo: [bosnian] br: [brazil] bu: [bulgarian] ca: [cantonese, catalan, fr_ca] cn: [zh_cn] cr: [croatian] cs: [cs_cz] cz: [cs_cz, czech] da: [da_dk, danish] de: [de_de] dk: [da_dk] du: [dutch] el: [el_gr] en: [english, english (united states), english_us, en_us, en_au, en_gb, en_ie, en_in, en_scotland, en_scottish, en_westindies, en_za, english_north, english_rp, english_wmids] es: [es_es, esperanto, estonian, es_ar, es_mx] fi: [fi_fi, finnish] fr: [fr_fr, french, fr_ca, french_belgium] gb: [en_gb] gr: [greek, greek_ancient] he: [he_il] hi: [hi_in, hindi] hk: [zh_hk] hu: [hu_hu, hungarian] ic: [icelandic] id: [id_id] ie: [en_ie] il: [he_il] in: [indonesian] ir: [irish_gaeilge] it: [it_it, italian] ja: [ja_jp, japanese] jp: [ja_jp] ka: [kannada] ko: [ko_kr, korean] kr: [ko_kr] ku: [kurdish] li: [lithuanian] lo: [lojban] mx: [es_mx] nb: [nb_no] ne: [nepali] nl: [nl_nl, nl_be] no: [norwegian] pe: [persian, persian_pinglish] pl: [pl_pl] pt: [pt_br, pt_pt] pu: [punjabi] ro: [ro_ro, romanian] ru: [ru_ru, russian] sa: [ar_sa] se: [serbian] sk: [sk_sk] sl: [slovak] sp: [spanish, spanish (spain), spanish_latin_am] sv: [sv_se] ta: [tamil] th: [th_th] tr: [tr_tr] tu: [turkish] tw: [zh_tw] us: [en_us] vi: [vietnam, vietnam_hue, vietnam_sgn] we: [welsh] za: [en_za] zh: [zh_cn, mandarin, chinese (simplified), chinese (taiwan), zh_hk, zh_tw] others: - [swahili_test, swedish] - [polish, portugal] - [macedonian, malay, malayalam] - [lingua_franca_nova] - [latin, latvian] - [georgian, german] PK!ttslib/data/osx.txtAlex en_US # Most people recognize me by my voice. Alice it_IT # Salve, mi chiamo Alice e sono una voce italiana. Alva sv_SE # Hej, jag heter Alva. Jag är en svensk röst. Amelie fr_CA # Bonjour, je m’appelle Amelie. Je suis une voix canadienne. Anna de_DE # Hallo, ich heiße Anna und ich bin eine deutsche Stimme. Carmit he_IL # שלום. קוראים לי כרמית, ואני קול בשפה העברית. Damayanti id_ID # Halo, nama saya Damayanti. Saya berbahasa Indonesia. Daniel en_GB # Hello, my name is Daniel. I am a British-English voice. Diego es_AR # Hola, me llamo Diego y soy una voz española. Ellen nl_BE # Hallo, mijn naam is Ellen. Ik ben een Belgische stem. Fiona en-scotland # Hello, my name is Fiona. I am a Scottish-English voice. Fred en_US # I sure like being inside this fancy computer Ioana ro_RO # Bună, mă cheamă Ioana . Sunt o voce românească. Joana pt_PT # Olá, chamo-me Joana e dou voz ao português falado em Portugal. Jorge es_ES # Hola, me llamo Jorge y soy una voz española. Juan es_MX # Hola, me llamo Juan y soy una voz mexicana. Kanya th_TH # สวัสดีค่ะ ดิฉันชื่อKanya Karen en_AU # Hello, my name is Karen. I am an Australian-English voice. Kyoko ja_JP # こんにちは、私の名前はKyokoです。日本語の音声をお届けします。 Laura sk_SK # Ahoj. Volám sa Laura . Som hlas v slovenskom jazyku. Lekha hi_IN # नमस्कार, मेरा नाम लेखा है. मैं हिन्दी में बोलने वाली आवाज़ हूँ. Luca it_IT # Salve, mi chiamo Luca e sono una voce italiana. Luciana pt_BR # Olá, o meu nome é Luciana e a minha voz corresponde ao português que é falado no Brasil Maged ar_SA # مرحبًا اسمي Maged. أنا عربي من السعودية. Mariska hu_HU # Üdvözlöm! Mariska vagyok. Én vagyok a magyar hang. Mei-Jia zh_TW # 您好,我叫美佳。我說國語。 Melina el_GR # Γεια σας, ονομάζομαι Melina. Είμαι μια ελληνική φωνή. Milena ru_RU # Здравствуйте, меня зовут Milena. Я – русский голос системы. Moira en_IE # Hello, my name is Moira. I am an Irish-English voice. Monica es_ES # Hola, me llamo Monica y soy una voz española. Nora nb_NO # Hei, jeg heter Nora. Jeg er en norsk stemme. Paulina es_MX # Hola, me llamo Paulina y soy una voz mexicana. Samantha en_US # Hello, my name is Samantha. I am an American-English voice. Sara da_DK # Hej, jeg hedder Sara. Jeg er en dansk stemme. Satu fi_FI # Hei, minun nimeni on Satu. Olen suomalainen ääni. Sin-ji zh_HK # 您好,我叫 Sin-ji。我講廣東話。 Tessa en_ZA # Hello, my name is Tessa. I am a South African-English voice. Thomas fr_FR # Bonjour, je m’appelle Thomas. Je suis une voix française. Ting-Ting zh_CN # 您好,我叫Ting-Ting。我讲中文普通话。 Veena en_IN # Hello, my name is Veena. I am an Indian-English voice. Victoria en_US # Isn't it nice to have a computer that will talk to you? Xander nl_NL # Hallo, mijn naam is Xander. Ik ben een Nederlandse stem. Yelda tr_TR # Merhaba, benim adım Yelda. Ben Türkçe bir sesim. Yuna ko_KR # 안녕하세요. 제 이름은 Yuna입니다. 저는 한국어 음성입니다. Yuri ru_RU # Здравствуйте, меня зовут Yuri. Я – русский голос системы. Zosia pl_PL # Witaj. Mam na imię Zosia, jestem głosem kobiecym dla języka polskiego. Zuzana cs_CZ # Dobrý den, jmenuji se Zuzana. Jsem český hlas. PK!b5mttslib/data/speaker.yamlgtts: [af, ar, az, be, bg, bn, ca, cs, cy, da, de, el, en, eo, es, et, eu, fa, fi, fr, ga, gl, gu, hi, hr, ht, hu, id, is, it, iw, ja, ka, kn, ko, la, lt, lv, mk, ms, mt, nl, no, pl, pt, ro, ru, sk, sl, sq, sr, sv, sw, ta, te, th, tl, tr, uk, ur, vi, yi, zh-CN, zh-TW] linux: [Mandarin, afrikaans, albanian, aragonese, armenian, armenian-west, bosnian, brazil, bulgarian, cantonese, catalan, croatian, czech, danish, default, dutch, en-scottish, en-westindies, english, english-north, english-us, english_rp, english_wmids, esperanto, estonian, finnish, french, french-Belgium, georgian, german, greek, greek-ancient, hindi, hungarian, icelandic, indonesian, irish-gaeilge, italian, kannada, kurdish, latin, latvian, lingua_franca_nova, lithuanian, lojban, macedonian, malay, malayalam, nepali, norwegian, persian, persian-pinglish, polish, portugal, punjabi, romanian, russian, serbian, slovak, spanish, spanish-latin-am, swahili-test, swedish, tamil, turkish, vietnam, vietnam_hue, vietnam_sgn, welsh] macos: [Alex, Alice, Alva, Amelie, Anna, Carmit, Damayanti, Daniel, Diego, Ellen, Fiona, Fred, Ioana, Joana, Jorge, Juan, Kanya, Karen, Kyoko, Laura, Lekha, Luca, Luciana, Maged, Mariska, Mei-Jia, Melina, Milena, Moira, Monica, Nora, Paulina, Samantha, Sara, Satu, Sin-ji, Tessa, Thomas, Ting-Ting, Veena, Victoria, Xander, Yelda, Yuna, Yuri, Zosia, Zuzana] windows: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-ES_HELENA_11.0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_FR-FR_HORTENSE_11.0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_JA-JP_HARUKA_11.0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_KO-KR_HEAMI_11.0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_RU-RU_IRINA_11.0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-TW_HANHAN_11.0] PK!>.ttslib/data/supported.yamllinux: afrikaans: [afrikaans] albanian: [albanian] aragonese: [aragonese] armenian: [armenian] armenian_west: [armenian-west] bosnian: [bosnian] brazil: [brazil] bulgarian: [bulgarian] cantonese: [cantonese] catalan: [catalan] croatian: [croatian] czech: [czech] danish: [danish] default: [default] dutch: [dutch] en_scottish: [en-scottish] en_westindies: [en-westindies] english: [english] english_north: [english-north] english_rp: [english_rp] english_us: [english-us] english_wmids: [english_wmids] esperanto: [esperanto] estonian: [estonian] finnish: [finnish] french: [french] french_belgium: [french-Belgium] georgian: [georgian] german: [german] greek: [greek] greek_ancient: [greek-ancient] hindi: [hindi] hungarian: [hungarian] icelandic: [icelandic] indonesian: [indonesian] irish_gaeilge: [irish-gaeilge] italian: [italian] kannada: [kannada] kurdish: [kurdish] latin: [latin] latvian: [latvian] lingua_franca_nova: [lingua_franca_nova] lithuanian: [lithuanian] lojban: [lojban] macedonian: [macedonian] malay: [malay] malayalam: [malayalam] mandarin: [Mandarin] nepali: [nepali] norwegian: [norwegian] persian: [persian] persian_pinglish: [persian-pinglish] polish: [polish] portugal: [portugal] punjabi: [punjabi] romanian: [romanian] russian: [russian] serbian: [serbian] slovak: [slovak] spanish: [spanish] spanish_latin_am: [spanish-latin-am] swahili_test: [swahili-test] swedish: [swedish] tamil: [tamil] turkish: [turkish] vietnam: [vietnam] vietnam_hue: [vietnam_hue] vietnam_sgn: [vietnam_sgn] welsh: [welsh] gtts: {af: null, ar: null, az: null, be: null, bg: null, bn: null, ca: null, cs: null, cy: null, da: null, de: null, el: null, en: null, eo: null, es: null, et: null, eu: null, fa: null, fi: null, fr: null, ga: null, gl: null, gu: null, hi: null, hr: null, ht: null, hu: null, id: null, is: null, it: null, iw: null, ja: null, ka: null, kn: null, ko: null, la: null, lt: null, lv: null, mk: null, ms: null, mt: null, nl: null, no: null, pl: null, pt: null, ro: null, ru: null, sk: null, sl: null, sq: null, sr: null, sv: null, sw: null, ta: null, te: null, th: null, tl: null, tr: null, uk: null, ur: null, vi: null, yi: null, zh-CN: null, zh-TW: null} macos: ar_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] windows: chinese (simplified): [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0] chinese (taiwan): [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-TW_HANHAN_11.0] english (united states): [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0] french: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_FR-FR_HORTENSE_11.0] japanese: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_JA-JP_HARUKA_11.0] korean: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_KO-KR_HEAMI_11.0] russian: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_RU-RU_IRINA_11.0] spanish (spain): [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-ES_HELENA_11.0] PK!=h"n##ttslib/data/to_speaker.yamlafrikaans: espeak: [afrikaans] gtts: null macos: null windows: null albanian: espeak: [albanian] gtts: null macos: null windows: null ar_sa: espeak: null gtts: null macos: [Maged] windows: null aragonese: espeak: [aragonese] gtts: null macos: null windows: null armenian: espeak: [armenian] gtts: null macos: null windows: null armenian_west: espeak: [armenian-west] gtts: null macos: null windows: null bosnian: espeak: [bosnian] gtts: null macos: null windows: null brazil: espeak: [brazil] gtts: null macos: null windows: null bulgarian: espeak: [bulgarian] gtts: null macos: null windows: null cantonese: espeak: [cantonese] gtts: null macos: null windows: null catalan: espeak: [catalan] gtts: null macos: null windows: null chinese (simplified): espeak: null gtts: null macos: null windows: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0] chinese (taiwan): espeak: null gtts: null macos: null windows: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-TW_HANHAN_11.0] croatian: espeak: [croatian] gtts: null macos: null windows: null cs_cz: espeak: null gtts: null macos: [Zuzana] windows: null czech: espeak: [czech] gtts: null macos: null windows: null da_dk: espeak: null gtts: null macos: [Sara] windows: null danish: espeak: [danish] gtts: null macos: null windows: null de_de: espeak: null gtts: null macos: [Anna] windows: null default: espeak: [default] gtts: null macos: null windows: null dutch: espeak: [dutch] gtts: null macos: null windows: null el_gr: espeak: null gtts: null macos: [Melina] windows: null en_au: espeak: null gtts: null macos: [Karen] windows: null en_gb: espeak: null gtts: null macos: [Daniel] windows: null en_ie: espeak: null gtts: null macos: [Moira] windows: null en_in: espeak: null gtts: null macos: [Veena] windows: null en_scotland: espeak: null gtts: null macos: [Fiona] windows: null en_scottish: espeak: [en-scottish] gtts: null macos: null windows: null en_us: espeak: null gtts: null macos: [Alex, Fred, Samantha, Victoria] windows: null en_westindies: espeak: [en-westindies] gtts: null macos: null windows: null en_za: espeak: null gtts: null macos: [Tessa] windows: null english: espeak: [english] gtts: null macos: null windows: null english (united states): espeak: null gtts: null macos: null windows: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0] english_north: espeak: [english-north] gtts: null macos: null windows: null english_rp: espeak: [english_rp] gtts: null macos: null windows: null english_us: espeak: [english-us] gtts: null macos: null windows: null english_wmids: espeak: [english_wmids] gtts: null macos: null windows: null es_ar: espeak: null gtts: null macos: [Diego] windows: null es_es: espeak: null gtts: null macos: [Jorge, Monica] windows: null es_mx: espeak: null gtts: null macos: [Juan, Paulina] windows: null esperanto: espeak: [esperanto] gtts: null macos: null windows: null estonian: espeak: [estonian] gtts: null macos: null windows: null fi_fi: espeak: null gtts: null macos: [Satu] windows: null finnish: espeak: [finnish] gtts: null macos: null windows: null fr_ca: espeak: null gtts: null macos: [Amelie] windows: null fr_fr: espeak: null gtts: null macos: [Thomas] windows: null french: espeak: [french] gtts: null macos: null windows: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_FR-FR_HORTENSE_11.0] french_belgium: espeak: [french-Belgium] gtts: null macos: null windows: null georgian: espeak: [georgian] gtts: null macos: null windows: null german: espeak: [german] gtts: null macos: null windows: null greek: espeak: [greek] gtts: null macos: null windows: null greek_ancient: espeak: [greek-ancient] gtts: null macos: null windows: null he_il: espeak: null gtts: null macos: [Carmit] windows: null hi_in: espeak: null gtts: null macos: [Lekha] windows: null hindi: espeak: [hindi] gtts: null macos: null windows: null hu_hu: espeak: null gtts: null macos: [Mariska] windows: null hungarian: espeak: [hungarian] gtts: null macos: null windows: null icelandic: espeak: [icelandic] gtts: null macos: null windows: null id_id: espeak: null gtts: null macos: [Damayanti] windows: null indonesian: espeak: [indonesian] gtts: null macos: null windows: null irish_gaeilge: espeak: [irish-gaeilge] gtts: null macos: null windows: null it_it: espeak: null gtts: null macos: [Alice, Luca] windows: null italian: espeak: [italian] gtts: null macos: null windows: null ja_jp: espeak: null gtts: null macos: [Kyoko] windows: null japanese: espeak: null gtts: null macos: null windows: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_JA-JP_HARUKA_11.0] kannada: espeak: [kannada] gtts: null macos: null windows: null ko_kr: espeak: null gtts: null macos: [Yuna] windows: null korean: espeak: null gtts: null macos: null windows: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_KO-KR_HEAMI_11.0] kurdish: espeak: [kurdish] gtts: null macos: null windows: null latin: espeak: [latin] gtts: null macos: null windows: null latvian: espeak: [latvian] gtts: null macos: null windows: null lingua_franca_nova: espeak: [lingua_franca_nova] gtts: null macos: null windows: null lithuanian: espeak: [lithuanian] gtts: null macos: null windows: null lojban: espeak: [lojban] gtts: null macos: null windows: null macedonian: espeak: [macedonian] gtts: null macos: null windows: null malay: espeak: [malay] gtts: null macos: null windows: null malayalam: espeak: [malayalam] gtts: null macos: null windows: null mandarin: espeak: [Mandarin] gtts: null macos: null windows: null nb_no: espeak: null gtts: null macos: [Nora] windows: null nepali: espeak: [nepali] gtts: null macos: null windows: null nl_be: espeak: null gtts: null macos: [Ellen] windows: null nl_nl: espeak: null gtts: null macos: [Xander] windows: null norwegian: espeak: [norwegian] gtts: null macos: null windows: null persian: espeak: [persian] gtts: null macos: null windows: null persian_pinglish: espeak: [persian-pinglish] gtts: null macos: null windows: null pl_pl: espeak: null gtts: null macos: [Zosia] windows: null polish: espeak: [polish] gtts: null macos: null windows: null portugal: espeak: [portugal] gtts: null macos: null windows: null pt_br: espeak: null gtts: null macos: [Luciana] windows: null pt_pt: espeak: null gtts: null macos: [Joana] windows: null punjabi: espeak: [punjabi] gtts: null macos: null windows: null ro_ro: espeak: null gtts: null macos: [Ioana] windows: null romanian: espeak: [romanian] gtts: null macos: null windows: null ru_ru: espeak: null gtts: null macos: [Milena, Yuri] windows: null russian: espeak: [russian] gtts: null macos: null windows: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_RU-RU_IRINA_11.0] serbian: espeak: [serbian] gtts: null macos: null windows: null sk_sk: espeak: null gtts: null macos: [Laura] windows: null slovak: espeak: [slovak] gtts: null macos: null windows: null spanish: espeak: [spanish] gtts: null macos: null windows: null spanish (spain): espeak: null gtts: null macos: null windows: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-ES_HELENA_11.0] spanish_latin_am: espeak: [spanish-latin-am] gtts: null macos: null windows: null sv_se: espeak: null gtts: null macos: [Alva] windows: null swahili_test: espeak: [swahili-test] gtts: null macos: null windows: null swedish: espeak: [swedish] gtts: null macos: null windows: null tamil: espeak: [tamil] gtts: null macos: null windows: null th_th: espeak: null gtts: null macos: [Kanya] windows: null tr_tr: espeak: null gtts: null macos: [Yelda] windows: null turkish: espeak: [turkish] gtts: null macos: null windows: null vietnam: espeak: [vietnam] gtts: null macos: null windows: null vietnam_hue: espeak: [vietnam_hue] gtts: null macos: null windows: null vietnam_sgn: espeak: [vietnam_sgn] gtts: null macos: null windows: null welsh: espeak: [welsh] gtts: null macos: null windows: null zh_cn: espeak: null gtts: null macos: [Ting-Ting] windows: null zh_hk: espeak: null gtts: null macos: [Sin-ji] windows: null zh_tw: espeak: null gtts: null macos: [Mei-Jia] windows: null PK!* ttslib/data/windows.yamlHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0: age: null gender: null id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0 languages: &id001 [] name: Microsoft David Desktop - English (United States) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0: age: null gender: null id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0 languages: *id001 name: Microsoft Zira Desktop - English (United States) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-ES_HELENA_11.0: age: null gender: null id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-ES_HELENA_11.0 languages: *id001 name: Microsoft Helena Desktop - Spanish (Spain) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_FR-FR_HORTENSE_11.0: age: null gender: null id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_FR-FR_HORTENSE_11.0 languages: *id001 name: Microsoft Hortense Desktop - French HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_JA-JP_HARUKA_11.0: age: null gender: null id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_JA-JP_HARUKA_11.0 languages: *id001 name: Microsoft Haruka Desktop - Japanese HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_KO-KR_HEAMI_11.0: age: null gender: null id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_KO-KR_HEAMI_11.0 languages: *id001 name: Microsoft Heami Desktop - Korean HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_RU-RU_IRINA_11.0: age: null gender: null id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_RU-RU_IRINA_11.0 languages: *id001 name: Microsoft Irina Desktop - Russian HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0: age: null gender: null id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0 languages: *id001 name: Microsoft Huihui Desktop - Chinese (Simplified) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-TW_HANHAN_11.0: age: null gender: null id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-TW_HANHAN_11.0 languages: *id001 name: Microsoft Hanhan Desktop - Chinese (Taiwan) PK!"Frttslib/guess.pyfrom ruamel import yaml import sys try: from importlib.resources import read_text except ImportError: from importlib_resources import read_text from .util import normalize class Guess: TO_SPEAKER = yaml.safe_load(read_text('ttslib.data', 'to_speaker.yaml')) SPEAKER = yaml.safe_load(read_text('ttslib.data', 'speaker.yaml')) GUESS = yaml.safe_load(read_text('ttslib.data', 'guess.yaml')) @classmethod def do_guess(cls, lang_or_speaker): lang_or_speaker = normalize(lang_or_speaker) human_os = { 'darwin': 'macos', 'win32': 'windows' }.get(sys.platform, 'linux') if human_os == 'macos': if lang_or_speaker in cls.SPEAKER['macos']: return lang_or_speaker elif human_os == 'windows': if lang_or_speaker in cls.SPEAKER['windows']: return lang_or_speaker else: if lang_or_speaker is cls.SPEAKER['linux']: return lang_or_speaker if lang_or_speaker in cls.TO_SPEAKER.keys(): if cls.TO_SPEAKER[lang_or_speaker][human_os]: return cls.TO_SPEAKER[lang_or_speaker][human_os][0] for k, v_list in cls.GUESS.items(): if lang_or_speaker.startswith(k): for v in v_list: speaker = cls.do_guess(v) if speaker: return speaker return None PK!'^KK ttslib/osx.pyimport subprocess from threading import Thread def do_say(s, voice, non_blocking=True): def _do_say(): subprocess.call([ 'say', '-v', voice, s ]) if non_blocking: t = Thread(target=_do_say) t.daemon = True t.start() else: _do_say() PK!@ggttslib/ttsx.pyfrom threading import Thread import pyttsx3 def do_ttsx(s, voice, non_blocking=True): def _do_say(): engine = pyttsx3.init() engine.setProperty('voice', voice) engine.say(s) engine.runAndWait() if non_blocking: t = Thread(target=_do_say) t.daemon = True t.start() else: _do_say() PK!9V99ttslib/util.pydef normalize(k): return k.lower().replace('-', '_') PK! ::ttslib-0.1.1.dist-info/LICENSEMIT License Copyright (c) 2018 Pacharapol Withayasakpunt Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PK!H WXttslib-0.1.1.dist-info/WHEEL A н#Z."jm)Afb~ڠO68oF04UhoAf f4=4h0k::wXPK!HVh aTttslib-0.1.1.dist-info/METADATAOK1)6PŢv-Qt7lbwVTPD[2f2-)#e+ C1H24$!ƠSŀum FfmA,1!p>)U,!(4"\ZC=V wuv% S$:KXa^Gg5Kttslib-0.1.1.dist-info/RECORDuɒJн $%@̠ ! ,B _ٖD;y3̮0{d( ߚ I3?pKD\D([v<ĕʾG[x֫1~A?!.ٽCa/o5]7{p8;{Y-]_5AWh&1b"ry)Q3 YY)~}_R/3N]pb쒸cye4Ư=A*׹ aXr%C+.ֺ"> Iep'iF0$~zCzYɮi?j`dD$wR"E8d +G\'Ӹ[Jc`HC6/YpNebYU,# iъOX=2⊩-- ppLe%\U )9 lL:MCj;ϻIxl, z=z\I$s.Z a`zfEO߿w-n2ںfN<>>/{f^sc-gTFׁ K:B7X \o,Fsr}VpI5_È+0={ܲ#5lj_B.jBJ{ ˊ槢OwkYM%-sA;##h77EYqY 'k.>>ttslib/data/supported.yamlPK!=h"n##$Nttslib/data/to_speaker.yamlPK!* #rttslib/data/windows.yamlPK!"Fr{ttslib/guess.pyPK!'^KK ttslib/osx.pyPK!@gg4ttslib/ttsx.pyPK!9V99DŽttslib/util.pyPK! ::,ttslib-0.1.1.dist-info/LICENSEPK!H WXttslib-0.1.1.dist-info/WHEELPK!HVh aT3ttslib-0.1.1.dist-info/METADATAPK!H{o>Kċttslib-0.1.1.dist-info/RECORDPK=