Esto es solo una puñalada en la oscuridad ya que no soy lingüista (aunque he escrito un sintetizador de voz), la medida que es útil aquí es el número de phonemes que componen cada palabra, ya que los fonemas ellos mismos tendrán la misma duración aproximada independientemente del uso. Hay un International Phonetic Alphabet chart for english dialects, así como un bonito phonology of English.
Una buena fuente abierta diccionario fonético está disponible desde el proyecto cmudict que tiene alrededor 130k words
Aquí está una puñalada muy rápido a un mirar hacia arriba programa:
#!/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')
Cuando ejecuta ..
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
Si desea obtener pantalones súper elegantes sobre esto, siempre está el Python Natural Language Toolkit que puede tener som tidbits útiles para usted.
Además, algunos mundo real utilizar .. aunque para ser justos, me fijo 'estilo' a 'estilo' .. Pero izquierda 'Contando para revelar la deficiencia de palabras desconocidas .. Probablemente se podría tratar de una búsqueda de las palabras que terminan con in'
por sustituía la g en el apóstrofe y luego dejar caer el fonema NG
de las operaciones de búsqueda ..
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...
Si esto es algo que planea en poner algo de tiempo en, estaría interesado en ayudar . Creo que poner 'Mundos primero para golpear IDE' en mi currículum sería hilarante. Y si ya existe, el primer IDE de rap basado en Python del mundo. : p
Jeje, agradable pregunta, pero por desgracia no tengo ni idea de cómo responder a ella :(Mi única observación es que esas y frases similares tienen una alta proporción de las letras 'ptkbdgw' y' th'. Pero supongo que es igualmente importante cómo se distribuyen sobre la oración. –
¿Qué hay de lo que intenta hacer su pregunta aquí: http: // linguistics .stackexchange.com/No es tan activo como stackoverflow, pero es posible que obtengas una mejor respuesta allí. Una vez que obtienes el algoritmo, podemos ayudarte con el código de Python :) –
Esta es una pregunta muy buena. Aunque ciertamente no tengo una respuesta para esto, de lo más alto de mi cabeza tal vez asumiría que las palabras con más sílabas al final podrían ser más fáciles de rapear rápidamente en general. Sin embargo, parece que Busta Rhymes puede rapear cualquier cosa a la velocidad de la luz. Un buen punto de partida, como señaló Julien Bourdon más arriba, sería profundizar en la lingüística para este. Sin embargo, me mantendré atento a esto porque me gustaría saberlo. – SMT