我非常喜欢发现可以很快敲击的句子。例如,"要读一点维基百科"或者"不想用一瓶麦芽卷在阴沟里。" (George Watsky)
我想用Python编写一个程序,使我能够找到可以清晰表达的单词(或单词组合),使其在说话时听起来非常快。
我最初认为具有高音节比率的单词将是最好的,但是在编写Python程序来查找这些单词时,我只检索了非常简单的单词,这些单词听起来并不快(例如"衣阿华&#34)。
所以我真的让人听起来很快。这是语素与字母的比率吗?它是交替的元音 - 辅音对的数量吗?
你们如何设计一个python程序来解决这个问题?
答案 0 :(得分:7)
由于我不是语言学家(虽然我已经编写了语音合成器),但这只是一个黑暗中的刺,这里有用的指标是构成每个语法的phonemes的数量。这个词,因为无论使用什么,音素本身都将是相同的大致持续时间。这里有一个International Phonetic Alphabet chart for english dialects,还有一个不错的phonology of English。
cmudict项目提供了一个好的开源语音词典,该词典大约有130k words
这是一个非常快速的查找计划:
#!/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可能有一些有用的花絮。
此外,一些现实世界使用 ..虽然公平,但我修复了#styl;'来样式' ..但是离开' 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...
如果这是你打算花一些时间的东西,我有兴趣帮忙。我认为将“世界”首次敲击IDE'在我的简历上会很有趣。如果已经存在,那么这是世界上第一个基于Python的rapping IDE。 :P
答案 1 :(得分:2)
我想说从你给出的例子或其他你喜欢的例子开始,并对你的所有想法进行某种分析是个好主意:例如:音素与信件的比例等;无论听起来合理,你都可以计算出来。样品越多越好。希望这会让你很好地了解你已经享受的线条和单词的属性,这应该引导你朝着正确的方向前进。
否则,我的外行人的猜测是短元音(显然)和硬辅音如't',某些'p','hard'等等,将是最好的 - 它们会让线条听起来断断续续地快速射击。
(想把它留作评论,因为它不是真正的答案,但它太长了:)