示例#1
0
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)
示例#2
0
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
示例#3
0
        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..."
示例#4
0
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