2021年1月3日日曜日
AI作曲をコードと数式を使わず説明してみる、その3
2020年12月31日木曜日
AI音楽備忘録 どこまでが音楽か
AI音楽備忘録
現状AIモデルにての11作品。https://www.youtube.com/channel/UCX514JhcB-HsCYC4dBLMC1Q
当初は生成されたトラックサンプルをシーケンサ上で人力で選択し組み合わせていたのが、自動でミックス・フェードアウトまで作れるようになって、シーケンサを通さずに、コマンド一つで音楽が作成できるようにはなりました。
>
この例をみると、ドラムパターンはいい感じで繰り返されていますが、上物はどうも変化に乏しい。
しかし、コードや、音楽の大枠での構造(4、8小節のまとまりなど)をいうものを理解しているわけじゃないので、はじめと終わりなどの展開、コードに沿った音の重ね合わせ、などができるようになるのが次の課題になるでしょう。
何をもって音楽と呼ぶのだろう?
しかし、作っていくうちに音楽の定義という物を考えないと何がゴールかさっぱりわからない、ということに気がついたのです。
「何を音楽とするか」のいわゆるAIでいうところのフレーム問題(使い方が違う気はするけど)的な物にぶつかってしまったわけである。
なにが音楽なんて曖昧な物で、とどのつまり、いってしまえばただ雑音を録音しただけでも、音楽と言えてしまうわけですしね。
シュレーディンガーの作曲家
このプログラムの目標は音楽が永遠とアップロードされていて、それが人の手によるかどうなのかわからなくなることです。
自分が死んでもずっとアップロードされているので、周りからみたら生きてるか死んでるかわからない、みたいな形。
「リズム」と「上物」とに分かれた繰り返しの拍子を持つ物
に定義して進めてみることにしましょう。
2020年11月16日月曜日
AI作曲をコードと数式を使わず説明してみる、その2
特徴量の抽出
代表的なものには以下のようなものがあり、それぞれ一長一短ありますが、- 短時間フーリエ変換 (STFT)
- メル周波数ケプストラムMFCC
- ウェーブレット解析
とりあえずここでは一番基本の短時間フーリエ変換(以下STFT)を使用することにします。
時系列データを学習する
- 時系列のデータ
- 時間によってデータ変わるもの、毎日の気温、文章(前から後ろへ書いていきますね)、映像、などなど。
- 時系列ではないデータ
- 文字認識、絵、などなど。
2020年11月8日日曜日
AI作曲をコードと数式を使わず説明してみる、その1
Waveファイルで音楽をディープラーニングさせたい!!
もちろんこのアプローチですぐにまともな「作曲」ができるとは思えないけれど、リズムを変異させたりあらたな環境音を作りだしたり、と新たな作曲のヒント程度は作ることができるかもしれない。
音楽を分析する際のポイント
- テンポの正規化
- 小節の構造
- 楽器の構造
まずは音の「特徴」について考えよう。
例えば誰かの歌声を覚えるとき、人は、無意識のうちにその特徴を覚えていると思います。
声色の雰囲気だったり、のどの使い方だったり、高さだったり、しゃくりあげや、語尾の発生の仕方だったり。
ちなみにものまねがうまいひとなんかはこれが上手なのですよね。
ただしそれを人間がやるのと違う点は、音楽を物凄い短い時間の単位に区切り(0.001 秒ごと、などなど)そしてそれを、物凄い数やるということでしょうか。
音とは何か
コサイン波同士を足し算して音を作る
2020年9月20日日曜日
絶対音感がある人は3%、音大生では30%、アプリによれば5%?
新潟大学の宮崎謙一教授らチームによる研究によれば、日本人で絶対音感がある人は全体の3%ほどなんだそうです。
それが音大生だとぐんと跳ね上がって30%ほどになるそう。
ちなみに宮崎教授らのチームのテスト方法はピアノの音を聞かせて90%以上当てられることを基準としているそうです。
というわけでその結果を踏まえて、「絶対音感トレーニング」
アプリの結果からそのデータを独自に計算してみました。
このアプリはビギナーモードだと単音だけでのテストとなりますので、だいたい、850~900点以上、図の中の青い線より下のスコアが出た場合絶対音感がある、と考えて良いでしょう。
ビギナー意外のノーマル、ハード、スーパーハード、モードでは複数音当てなども含んでいるので、ちょっと比較しづらいので除外します。
こちらがその点数のグラフです。
縦軸が得点(1000点満点)、横軸がその人数です。
そして、実際に850点以上記録している人の割合を計算してみると、5.67% = 5%強となりました。
日本人全体の3%よりは多いですが、テストしてみようという時点で既に音楽への興味はある程度強いと考えられますから、5%というのは妥当な数字とも思えますね。
その他のデータはこちら
できる人はとことんできるということなのでしょうか。
2020年9月16日水曜日
FlutterによるiOS/Androidアプリ開発が良い理由
最近使用頻度の高いAndroid/iOS 両対応フレームワーク Flutter
数本アプリ開発を通じて少し知見も貯まったと思うので、思うところを記載します。
結論から言うと
そのアプリに必要なライブラリがあることが予め確認(重要)できるのなら、導入ゴーで良いと思う。
フレームワーク自体の開発速度も早いし、バージョン管理ツールも出た。いまアツい。
個人的には今年ARライブラリのWikitudeが対応したことで、さらに幅が広がりそう。
箇条書きで理由を述べます
Google開発・オープンソースなのでなんとなく安心感がある。
フレームワーク自体の開発ペースが早い。そのため複数バージョンを使用したりする機会も多い。以前は複数インストールして手動でパスを変えるという方法しかなかったが、バージョン管理ツールfvmが出てからだいぶ楽になった。
ネイティブコードで動作する。
アプリの動作・UIの部分だけ両対応することに集中した設計。細かい設定はXcodeやAndroidManifestを直接いじることになるが、正直その方が楽。両OSのバージョンアップや仕様変更にも対応しやすい。したがってバグも少ない。(Titaniumなどはbuild時にXcodeのプロジェクト自体を作り直していたので、いろいろ大変だった。。。)
ホットリロード機能がすごい。
動作中に少しコードを変更し、Rキーを押すだけで、リロードされる。再コンパイルが必要なしで、HTMLのような感覚でデザインを作れる。開発速度がとてもあがる。
アプリをDartで開発できる。
Javascriptのゆるさとオブジェクト志向言語のかっちり感を程よく組み込んだ良い言語だと思う。個人的には ” ) ” が多くなりすぎるので視認性はどうかな、とは思う。一部わかりづらい書き方があるがそれは慣れ。
嫌なコードの例
Container( padding: EdgeInsets.only(left:100,right:100), child:rows, alignment: Alignment(0,0), ) ]), //この辺の括弧が多い。。。 ), ] );
ライブラリ充実度がかなり上がってきた
2019年初頭くらいには、videoのプレイヤーやXMLのパースなどライブラリによってはまだまだ足りないところがあった印象だけど、ここにきて通常の使用には困らなくなった印象。このあたりは今後dartがどれくらい伸びるかにかかっている。。。
2017年8月4日金曜日
人工知能演奏のダイナミクス(強弱)、タイミング
する実験が magentaで発表されていました。
Mp3ファイル - クリックで再生されます。
今度のモデルは音のピッチだけじゃなく、強弱やタイミングも考慮してくれます。
仕組みはシンプルでMIDI鍵盤128通りのノートオフとノートオンに加えて、どれくらい前後にずれているか(100パターン)、どれくらいのボリュームの強弱があるか(32パターン)を、学習させています。
デモサウンドを聞く限りではかなりピアノ演奏としてのリアル感さが感じられるのではないでしょうか。
(しかし同じモデルを使っても筆者はこんないい感じに作曲できない!!!、細かいパラメーターの設定か、、学習モデルか、、個人的にもまだ研究が必要のようです。。。。)
Magentaは「MIDI」をベースに作曲するので、どうしてもそのままだとダイナミクスや、揺らぎについても考慮してやらないと、「観賞用」としてはベタベタの”人工的なサウンド”になってしまう傾向にあります。(反面、作曲補助という意味では、問題ないのですが、、、)
今回の発表はその解決に一石を投じたと言えます。
参考資料:
Ian Simon and Sageev Oore. "Performance RNN: Generating Music with Expressive Timing and Dynamics." Magenta Blog, 2017. https://magenta.tensorflow.org/performance-rnn