Ответ 1
Это просто удар в темноте, поскольку я не лингвист (хотя, я написал синтезатор голоса), метрика, которая здесь будет полезной, - это число фонемы, которые составляют каждое слово, поскольку сами фонемы будут одинаковой приблизительной продолжительностью независимо от использования. Там Международный фонетический алфавит для английских диалектов, а также хорошая фонология английского языка.
Хороший фонетический словарь с открытым исходным кодом доступен из проекта 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, который может иметь некоторые полезные лакомые кусочки для вас.
Кроме того, некоторые реальное использование в мире... хотя, честно говоря, я исправил "стилину" до "стиля". Но оставил "сказать", чтобы выявить недостаток неизвестных слов. Возможно, вы могли бы попробовать найти слова, заканчивающиеся с 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 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...
Если вы планируете заняться чем-то, я бы хотел помочь. Я думаю, что поставить "Мировую первую рэп-IDE" на мое резюме было бы весело. И если он существует уже, первая в мире Python основанная на рэпе IDE.: Р