Это всего лишь удар в темноте, так как я не лингвист (хотя я написал синтезатор голоса), метрика, которая будет здесь полезна, это число фонем , составляющих каждый Словом, так как сами фонемы будут иметь одинаковую приблизительную продолжительность независимо от использования. Есть международная таблица фонетического алфавита для английских диалектов , а также хорошая фонология английского языка .
Хороший фонетический словарь с открытым исходным кодом доступен из проекта cmudict , в котором около 130k слов
Вот очень быстрый удар по программе поиска:
#!/usr/bin/python
import re
words={}
for line in open("cmudict.0.7a",'ro').readlines():
split_idx = line.find(' ')
words[line[0:split_idx]] = line[split_idx+1:-1]
user_input = raw_input("Words: ")
print
for word in user_input.split(' '):
try:
print "%25s %s" % (word, words[word.upper()])
except:
print "%25s %s" % (word, 'unable to find phonems for word')
При запуске ..
Words: I support hip hop from the underground up
I AY1
support S AH0 P AO1 R T
hip HH IH1 P
hop HH AA1 P
from F R AH1 M
the DH AH0
underground AH1 N D ER0 G R AW2 N D
up AH1 P
Если вы хотите получить супер модные штаны по этому поводу, всегда есть Python Natural Language Toolkit , который может иметь несколько полезных для вас деталей.
Кроме того, некоторые в реальном мире используют .. хотя, чтобы быть справедливым, я установил 'styin' в 'styling' .. Но оставил 'Tellin', чтобы выявить дефицит неизвестных слов .. Возможно, вы могли бы попробуйте поискать слова, заканчивающиеся на in'
, подставив g для апострофа, а затем отбросьте NG
фонему из поиска ..
Yes Y EH1 S
the DH AH0
rhythm R IH1 DH AH0 M
the DH AH0
rebel R EH1 B AH0 L
Without W IH0 TH AW1 T
a AH0
pause P AO1 Z
I'm AY1 M
lowering L OW1 ER0 IH0 NG
my M AY1
level L EH1 V AH0 L
The DH AH0
hard HH AA1 R D
rhymer R AY1 M ER0
where W EH1 R
you Y UW1
never N EH1 V ER0
been B IH1 N
I'm AY1 M
in IH0 N
You Y UW1
want W AA1 N T
styling S T AY1 L IH0 NG
you Y UW1
know N OW1
it's IH1 T S
time T AY1 M
again AH0 G EH1 N
D D IY1
the DH AH0
enemy EH1 N AH0 M IY0
tellin unable to find phonems for word
you Y UW1
to T UW1
hear HH IY1 R
it IH1 T
They DH EY1
praised P R EY1 Z D
etc...
Если вы планируете уделить этому немного времени, мне было бы интересно помочь. Я думаю, что помещать 'Worlds first rapping IDE' в мое резюме было бы весело. И, если он уже существует, первая в мире интегрированная среда разработки на основе Python. : Р