musirak.com

音楽制作に関することをメインに、他には趣味の話もぼちぼち書いているブログです。

作詞する人工知能が欲しくなったのでPythonで作ろうとしてみた

Reticulated Python

自動的に曲の作詞をしてくれるハイテクなマッスィーンが欲しい、曲は作れるが作詞は苦手な私は常々そう思っていました。
そんな折、人工知能が作詞した曲が話題になり、こんなのが欲しかったんだと羨ましくなった次第です。

「研究室が沸き立った」――AIが作詞、アイドル新曲ができるまで 電通大教授に聞く (1/5) - ITmedia NEWS

いずれはこう言ったものも我々のような善男善女が気軽に使えるようになる日が来るのでしょうが、そんな日を待っていられるほど人生も私の気も長くありません。
なので、完全な作詞をしてくれなくともアシスタントぐらいにはなってくれる人工知能を作ってみようかと思いました。

Python環境の構築

人工知能と聞くと一般人には手の出せない崇高なイメージがありましたが、いざ調べてみると結構個人でも取り組んでいる方々がいました。
書店でも関連書籍が結構ありまして、これはもう無駄に身構える必要なんてないみたいですね。

どうやら、人工知能などの開発には「Python」というプログラミング言語を使うのが一般的な模様。
書籍やインターネットで人工知能について漁ると、たいていがPythonについても触れていたので、そう間違っていることはないでしょう。

そんなわけで、人工知能の開発にはPythonを使うことにしました。
それにしてもPythonってなんだかつよそう(小学生並みの感想) Pythonの環境構築については下のページを見ながらコツコツと作りました。

qiita.com

歌詞の自動生成

さて、開発の環境は整いました。
ですが、作詞をする人工知能を作るって漠然とした目標では何からとっかかればいいのかわかりませんし、そもそもプログラミングで作詞ってこと自体よくわかりません。
ランダムに文字を選んで生成された文章がある程度意味のあるものになっている確率なんて、それこそサルにタイプライターでシェイクスピアを書かせるようなものですね。

そんなわけで文章を生成するプログラムについて調べていたら、以下のページを見つけました。

fuchami.hatenadiary.jp

まさに探していたそのものです。
このページを参考に・・・と言うか文章生成の部分をそっくりそのままコピペしています。

こういう風に処理を理解しないまま単にネットからプログラムをコピペするのはプログラマーからすれば恥ずべきことなのでしょうが、ミュージシャンだから恥ずかしくないもん!

ちなみに、上記のコピペプログラムはちゃんと動作するに至りました。
上のプログラムは西野カナの曲の歌詞を収集し、それを元に語句をつなぎ合わせて新しい歌詞を作るというプログラムなので、元ネタを変えればまた違う雰囲気の文章が生まれます。
また、元ネタを増やせるだけ増やせば元となったミュージシャンの雰囲気は薄まって、普通に使っても大丈夫そうなありきたりな歌詞にもなります。

あれ?人工知能とか作る前に当初の目的を達成してなくない?

次のステップはどうしようか

人工知能なしでもいい感じに作詞できるプログラムはできましたが、これにしてもちゃんと処理を理解したり別の手法を試してみればより精度の高いものができるかもしれません。
それに、人工知能を活用すれば冒頭の記事のように曲の最初から最後までの歌詞を破綻なく生成できるようにもなるかもしれません。

そう言ったこととは別に、人工知能にも興味が持てたのでもっと勉強して見たくなりました。
機械学習とかディープラーニングとかテンサーフローとか、人工知能っぽい事柄についても理解を深めていきたいです。

いいや、その前にこれから付き合っていくPythonについてをもうちょっと勉強しておいた方がいいのかもしれません。