def lex_set_token(token): global lex, lex_token, lex_entry, lex_base tts.set_locale('de') tts.set_engine('mary') tts.set_voice('bits3') lex_token = token lex_base = token.split('_')[0] if lex_token in lex: lex_entry = lex[lex_token] else: if DEFAULT_MARY: ipas = tts.gen_ipa(lex_base) else: ipas = sequitur_gen_ipa(lex_base) lex_entry = {'ipa': ipas} lex[lex_token] = lex_entry ipas = lex_entry['ipa'] tts.say_ipa(ipas)
def lex_gen_ipa (locale, engine, voice, speak=False): global tts if engine == 'sequitur': ipas = sequitur_gen_ipa (lex_base) else: tts.set_locale (locale) tts.set_engine (engine) tts.set_voice (voice) ipas = tts.gen_ipa (lex_base) if speak: tts.set_locale ('de') tts.set_engine ('mary') tts.set_voice ('dfki-pavoque-neutral-hsmm') tts.say_ipa(ipas) return ipas
for word in tokenize(ts['prompt']): if word in lex: continue if word in missing: missing[word] += 1 else: missing[word] = 1 cnt = 0 for item in reversed(sorted(missing.items(), key=lambda x: x[1])): lex_base = item[0] ipas = sequitur_gen_ipa(lex_base) print u"%5d/%5d Adding missing word : %s [ %s ]" % (cnt, len(missing), item[0], ipas) lex_entry = {'ipa': ipas} lex[lex_base] = lex_entry cnt += 1 # # dictionary export # dictfn2 = '%s/local/dict/lexicon.txt' % data_dir print "Exporting dictionary..."
def lex_edit(token): global lex, lex_token, lex_entry, lex_base lex_set_token(token) while True: lex_paint_main() c = stdscr.getch() if c == ord('q'): lex.save() break # generate de-mary elif c == ord('g'): tts.set_locale('de') tts.set_engine('mary') tts.set_voice('bits3') ipas = tts.gen_ipa(lex_base) tts.say_ipa(ipas) lex_entry['ipa'] = ipas # generate de-espeak elif c == ord('h'): tts.set_locale('de') tts.set_engine('espeak') tts.set_voice('de') ipas = tts.gen_ipa(lex_base) tts.set_locale('de') tts.set_engine('mary') tts.set_voice('bits3') tts.say_ipa(ipas) lex_entry['ipa'] = ipas # generate en-mary elif c == ord('l'): tts.set_locale('en-US') tts.set_engine('mary') tts.set_voice('cmu-rms-hsmm') ipas = tts.gen_ipa(lex_base) tts.say_ipa(ipas) lex_entry['ipa'] = ipas # generate fr-mary elif c == ord('k'): tts.set_locale('fr') tts.set_engine('mary') tts.set_voice('pierre-voice-hsmm') ipas = tts.gen_ipa(lex_base) tts.say_ipa(ipas) lex_entry['ipa'] = ipas # generate de-sequitur elif c == ord('j'): ipas = sequitur_gen_ipa(lex_base) tts.set_locale('de') tts.set_engine('mary') tts.set_voice('bits3') tts.say_ipa(ipas) lex_entry['ipa'] = ipas # speak de mary unitsel elif c == ord('p'): if len(lex_entry['ipa']) == 0: continue ipas = lex_entry['ipa'] tts.set_locale('de') tts.set_engine('mary') tts.set_voice('bits3') tts.say_ipa(ipas) # speak de mary hsmm elif c == ord('o'): if len(lex_entry['ipa']) == 0: continue ipas = lex_entry['ipa'] tts.set_locale('de') tts.set_engine('mary') tts.set_voice('dfki-pavoque-neutral-hsmm') tts.say_ipa(ipas) # speak fr mary hsmm elif c == ord('i'): if len(lex_entry['ipa']) == 0: continue ipas = lex_entry['ipa'] tts.set_locale('fr') tts.set_engine('mary') tts.set_voice('pierre-voice-hsmm') tts.say_ipa(ipas) # speak en mary hsmm elif c == ord('u'): ipas = lex_entry['ipa'] tts.set_locale('en-US') tts.set_engine('mary') tts.set_voice('cmu-rms-hsmm') tts.say_ipa(ipas) # edit token elif c == ord('t'): token = utils.edit_popup(stdscr, ' Token ', '') lex_set_token(token) # edit XS elif c == ord('e'): ipas = lex_entry['ipa'] xs = ipa2xsampa(lex_token, ipas, stress_to_vowels=False) xs = utils.edit_popup(stdscr, ' X-SAMPA ', xs) try: ipas = xsampa2ipa(lex_token, xs) lex_entry['ipa'] = ipas except: pass