Получить фонемы из любого слова в Python NLTK или других модулях?

В Python NLTK есть код, который выплевывает фонемы распознанных слов. Например, 'see' -> [u'S ', u'IY1'], но для слов, которые не распознаны, выдается ошибка. Например 'seasee' -> ошибка.

import nltk

arpabet = nltk.corpus.cmudict.dict()

for word in ('s', 'see', 'sea', 'compute', 'comput', 'seesea'):
    try:
        print arpabet[word][0]
    except Exception as e:
        print e

#Output
[u'EH1', u'S']
[u'S', u'IY1']
[u'S', u'IY1']
[u'K', u'AH0', u'M', u'P', u'Y', u'UW1', u'T']
'comput'
'seesea'

Есть ли какой-нибудь модуль, который не имеет такого ограничения, но способен находить / угадывать фонемы любых реальных или выдуманных слов?

Если нет, могу ли я запрограммировать это? Я думаю о создании циклов, чтобы проверить увеличивающуюся часть слова. Например, в «seasee» первый цикл принимает «s», следующий цикл принимает «se», а третий - «море» ... и т. Д. И запускает команду. Хотя проблема в том, что я не знаю, как сигнализировать, что это правильная фонема. Например, и 's', и 'sea' в 'seasee' выведут несколько допустимых фонем.

Рабочий процесс:

import nltk

arpabet = nltk.corpus.cmudict.dict()

for word in ('s', 'see', 'sea', 'compute', 'comput', 'seesea', 'darfasasawwa'):
    try:
        phone = arpabet[word][0]
    except:
        try:
            counter = 0
            for i in word:
                substring = word[0:1+counter]
                counter += 1
                try:
                    print substring, arpabet[substring][0]
                except Exception as e:
                    print e
        except Exception as e:
            print e

#Output
c [u'S', u'IY1']
co [u'K', u'OW1']
com [u'K', u'AA1', u'M']
comp [u'K', u'AA1', u'M', u'P']
compu [u'K', u'AA1', u'M', u'P', u'Y', u'UW0']
comput 'comput'
s [u'EH1', u'S']
se [u'S', u'AW2', u'TH', u'IY1', u'S', u'T']
see [u'S', u'IY1']
sees [u'S', u'IY1', u'Z']
seese [u'S', u'IY1', u'Z']
seesea 'seesea'
d [u'D', u'IY1']
da [u'D', u'AA1']
dar [u'D', u'AA1', u'R']
darf 'darf'
darfa 'darfa'
darfas 'darfas'
darfasa 'darfasa'
darfasas 'darfasas'
darfasasa 'darfasasa'
darfasasaw 'darfasasaw'
darfasasaww 'darfasasaww'
darfasasawwa 'darfasasawwa'

Ответы на вопрос(2)

Ваш ответ на вопрос