歌詞記述言語についての妄想/桜流し
宇多田ヒカル「桜流し」
歌詞オブジェクト解析エンジンをターミナルから利用してみよう
最近pythonの勉強をしています。
歌詞理論というと嘘くさいので歌詞記述言語としての何かを考えてみようと、昼休みにとり南蛮そばを食べながら想像をしてみました。
※以下は妄想です。想像力を豊かにするための体操です。しかも途中。
歌詞を文字列オブジェクトと理解する
文字列のプロパティには、
- character
- kana
- alphabet
- ipa
- vocabulary
などがある。
また、characterやkanaにはcountというプロパティが入っている。
桜流し.character.count => 3
桜流し.kana => ['さ','く','ら','な','が','し']
桜流し.kana[2] => 'ら'
桜流し.kana[2:] => 'らながし'
桜流し.kana.count => 6
桜流し.alphabet => ['s','a','k','u'
,'r','a','n','a','g','a','sh','i']
これらは、歌詞カード上の音の表記や、譜面上の音の表記、聴覚上の音の響きなどを 表し分けることができる。
注意
アルファベットだと、母音子音の数を数えるのに視覚的なものと齟齬がおきるので、ipaを採用したほうがいいかな。
kanaやalphabetには consonant や vowel も入っている。
桜流し.kana.consonant => ['さ','か','ら','な','が','さ']
桜流し.kana.vowel => ['あ','う','あ','あ','あ','い']
これらの表記は簡易的に子音韻や母音韻の存在を知るのに向いているだろう。
歌詞における表記からひらがなへの変換や、アルファベット、ipa表記への変換は機械がやるのは難しそうなので、人間を知的な解析エンジンとして利用することになる。
したがって、歌詞の処理には人力による歌詞のプロパティを格納するデータベースの用意が必須である。
解析に用いられる理論によって、得られるデータも微妙に異なってくることには注意したい。だがあまり頭を固くすることはないだろう。あくまで便宜的な手段にすぎない。
逆算
上記のような動作を考えると、まず解析対象の歌詞を空のオブジェクトと見なし、そこに各プロパティを格納していく手順が初めにいるだろう。