テキストで音楽を表現する方法を調べた。
char-rnn で音楽生成したい
以前の記事で、char-rnn というものを試して、 坊ちゃんのテキストからテキスト生成をすることを試した。
これを音楽に応用してみたい。今回の記事はその準備として情報収集をした。
こういうテキストから LSTM を使って音楽を生成する試みは、いろんな人がやっている。 発端となっているのは、Andrej Karpathy 氏のブログ記事。
Andrej Karpathy さんは、Touch で char-rnn を実装している。
私は最近、TensorFlow や Keras による、char-rnn の実装を勉強した。
- Udacity DLND deep-learning/Anna_KaRNNa.ipynb at master · udacity/deep-learning
- Fast.AI courses/char-rnn.ipynb at master · fastai/courses
Keras が好きなので、勉強のために Keras で実装したいと考えている。
記譜法を調べた
ABC 記譜法
ABC 記法はわりと有名な記法。WikiPedia にも情報がある。
以下の特徴がある。
- アスキー文字で音楽を表現
- 関連ソフトウェアが豊富
- 民族音楽に強い
ABC 記法から、五線譜に変換して再生する OSS.abcjs. これは凄い。
データベース・音源集
LSTM に応用した事例
- Training a Recurrent Neural Network to Compose Music
- “ Lisl ’ s Stis ”: Recurrent Neural Networks for Folk Music Generation | High Noon GMT
**kern notation
マイナーな記法。
データベースにクラシック音楽の曲がたくさんあるのが魅力。
ツールとしては、music21 をつかう。これは、DeepJazz でも使われている。
music21 はデータベースが充実しているけれども、データ形式が XML 形式だから char-rnn には使えないかな。
- music21: a Toolkit for Computer-Aided Musicology
- List of Works Found in the music21 Corpus — music21 Documentation
LSTM に応用した事例
自力で midi から text 変換
そういう手法もある。欲しいデータがみつからなかったら、この手も使う。