2012-02-27 4 views
12

私は非常に素早くラップすることができる文章を発見するのは大好きです。例えば、「ちょっとWikipediaを読まなければならない」または「麦芽のボトルで樋の中に巻き上げたくない」などです。 (George Watsky)最も速く話すことのできる単語とその組み合わせを見つけてください。

私は話したときに非常に速く聞こえるように発音可能な単語(または単語の組み合わせ)を見つけることができるPythonでプログラムを作成したかったのです。

私は当初、文字と音の高さの比が最高になると思っていましたが、それらの単語を見つけるためのPythonプログラムを書くと、本当に速くは聞こえなかった非常に単純な単語だけを取り出しました。

私は実際に言葉を速く発音させることに迷っています。それは形態素と文字の比率ですか?母音と子音が交互に現れる数ですか?

この問題を解決するにはどうすればPythonプログラムを工夫しますか?

+0

ヘヘ、素敵な質問は、残念ながら私はそれが私の唯一の観測があることである:(どのように答えるために見当もつかないそれらの文章と同様の文章では、「ptkbdgw」と「th」という文字の比率が高くなりますが、文章の上にそれらがどのように分布しているかが同様に重要です。 –

+4

http:// linguistics .stackexchange.com /それはstackoverflowと同じくらいアクティブではありませんが、より良い答えが得られるかもしれません。アルゴリズムを入手したら、私たちはPythonコードを手助けすることができます:) –

+0

これはかなりクールな質問です。私は確かにこれに答えることはできませんが、私の頭の上から、私はたぶん、最後に音節の多い言葉が全体的に素早く素早く聞こえると思うでしょう。しかし、それはBusta Rhymesが光のスピードで何かをラップすることができるかのようです。 Julien Bourdon氏が指摘したように、この点については言語学を掘り下げることが重要です。私は知りたいので、私はこのことに注意を払うつもりです。 – SMT

答えて

7

私は言語学者ではないけれども(音声シンセサイザーを書きましたが)、暗黙のうちにスタブです。ここで役に立つのは、各単語を構成するphonemesの番号です。音素使用にかかわらず、おおよそ同じ持続時間になります。 International Phonetic Alphabet chart for english dialectsといい、phonology of Englishがあります。

優れたオープンソースの発音辞書はここでおよそ130k words

を持って調べるプログラムで本当に速い刺しだcmudictプロジェクトから提供されています:

実行
#!/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がありますあなたのための便利なおいしいもの。

はまた、いくつかの現実の世界での使用は...公正​​であるためにも、私は..「スタイリング」から「センスが」に固定されているが、左未知語の欠乏を明らかにするために「テリン」..おそらく、検索を試みることができます検索からNG音素をドロップしアポストロフィのためにグラムを下塗りとすることによりin'で終わる言葉..

    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 rapping IDE」を入れるのは面白いと思う。既に存在する場合は、世界初のPythonベースのラッピングIDEです。 :p

+2

または、世界一*最新のラッピングIDE!あなたのお母さんに –

+1

int32_t。 – synthesizerpatel

+0

華麗! @パテル、私はかなり長い間このことに取り組んでいます。興味があるので、私はあなたに連絡して援助をします! – Parseltongue

2

あなたが与えた例や気に入った例をとり、あなたの考えをすべて分析することから始めましょう。音素から文字の比率など。どのような音が合理的で、あなたが計算することができます。サンプルが多いほど良い。うまくいけば、これはあなたがすでに共有している行と言葉がどのような性質を持っているかを知ることができ、正しい方向に導くはずです。

それ以外の人は、短い母音(明らかに)や 't'、 'p'、 'hard' gなどのような硬い子音が最高になると思っています。

は(それは本当に答えではありません原因コメントとしてこれを残したかったが、それはあまりにも長いです:)

関連する問題