Magenta(Googleの音楽機械学習ライブラリ)のRNNセルはどこにあるのか?

Magenta(Googleの音楽機械学習ライブラリ)のRNNセルはどこにあるのか?またどの様に書き換えや開発を行うのか? 基本的にMagentaのRNNセルはevents_rnn_graph.pyという共有ファイルの中に記述されています。 GitHubのレポジトリでいうと https://github.com/magenta/magenta/blob/d1b5ea5853a19890a5db2fd5eb0afe3a3778be15/magenta/models/shared/events_rnn_graph.py の28〜32行目のmake_rnn_cell関数のところです。 base_cell=rnn.BasicLSTMCellのBasicLSTMCellが選択されているRNNセルです。 このRNNセルはTensorFlowのRNNセルクラスですのでTensorFlowのサイトからセルの中身がどんな処理を行うプログラムなのか?確認する事ができます。 tf.compat.v1.nn.rnn_cell.BasicLSTMCellのページはこちらhttps://www.tensorflow.org/api_docs/python/tf/compat/v1/nn/rnn_cell/BasicLSTMCell おそらくLSTMが、音楽生成にはもっとも適していそうなので(当然Magentaの開発者の方々が1番検証されたでしょう)他のセルを試す必要はない様に思えます。がもし、他のセルを使用したい場合はBasicLSTMCellを他のセルに変えれば良いわけです。 TensorFlowのRNNセルのページはこちらです。どんなセルがあるか確認できます。 https://www.tensorflow.org/api_docs/python/tf/compat/v1/nn/rnn_cell 各セルの解説は今回はしません。また全ての書き換えを実践・検証したわけではないのできるものできないものがあるかもしれませんが、可能なセルについては簡単に書き換えが可能でした。 音楽生成もそれぞれ違いを検証しましたが、すぐにわかる明らかな違いはありませんでした。しかし、詳細に実践していけば当然違いはあると思います。また何か発見したら報告したいと思います。

Magenta(Googleの音楽機械学習ライブラリ)のRNNセルはどこにあるのか? Read Post »

音楽+機械学習ハッカソン、BitRateの優秀プロジェクトが発表  音楽+機械学習の可能性を感じる7つのプロジェクトを解説

2020年の8月7日〜9月7日(実際は6週間を超えた開催期間だったらしいです)に、オンラインで開催された、Google の機械学習音楽ライブラリーMagenta開発チームと、サンフランシスコのメディアアート機関”Gray Area”による機械学習&音楽のリモートワークショップ&ハッカソンイベント”Bit Rate”。 以前CANPLAYの記事にてその告知を行いましたのでご記憶されている方もいらっしゃるでしょうか? 世界中から800を超える有志が参加した!との事。ファイナル審査に進んだ33のプロジェクトの中から、優秀プロジェクトが3つ、表彰プロジェクトが4つ、決定しました。その各プロジェクトを一つずつ紹介させていただきます。どれも非常に興味深く、この中には、これからの音楽+機械学習のブレークスルーとなる様なプロジェクトもあるかもしれません。 Top Submissions:優秀プロジェクト1 Dear Diary音楽とともに文字を書いて癒し効果を得る Dear Diaryはジャーナリングの際の文字入力にMagentaを使用した音楽を一緒に生成して瞑想効果を高める目的の音楽マインドフルネスウェブアプリです。 https://deardiary.ai/ ジャーナリングとは、書く瞑想とも呼ばれ、思い浮かんだ文章をただ文字として書き記す事で瞑想の様な効果を得る手法です。ストレス軽減や、心を落ち着かせる効果があると言われています。 文字を入力すると、Magentaが生成するピアノの音楽が一緒に生成されて、確かに何も考えずにいれると言えば良いのか、癒しの効果が期待できるのかもしれません。 試してみました。(machneはタイプ漏れ。machineが正解です。) いかがでしょうか?使っている技術はMagenta.jsからはMusicVAEのinter polation(2つの異なる音楽をつなげる事で新たな音楽を生む音楽生成機械学習)、ピアノの音色はTone.js、自然言語処理も大いに活用されている様で、そのために使用したライブラリはvader.jsというものだそうです。例えばコード進行沿った音楽生成ができるImprovRNNはあまり音楽的な生成ができなかった、、、とレポートされていますが、通常の音楽生成ではもっとも音楽的な生成ができるImprovRNNがなぜだろう?と色々想像して

音楽+機械学習ハッカソン、BitRateの優秀プロジェクトが発表  音楽+機械学習の可能性を感じる7つのプロジェクトを解説 Read Post »

音楽機械学習ライブラリMagentaのRNNネットワークとEncoder Decoderのファイルはどこにあるのか?

CANPLAYでもAI作曲科、音楽AI開発科、ともに授業で解説しているGoogleの音楽機械学習ライブラリMagentahttps://magenta.tensorflow.org/ についてRNNのネットワーク構成はどこで確認できるのか?Encoder Decoderのファイルはどこ?と質問をいただきましたので記事にします。 GitHubのurlリンクでお伝えします。 Magentaの音楽生成各RNNのネットワーク構成についてはevents_rnn_model.pyhttps://github.com/magenta/magenta/blob/master/magenta/models/shared/events_rnn_model.py 各encoder decoderに関してはnote_seqの中に複数のPerformance_RNN関連ファイルhttps://github.com/magenta/note-seq/tree/master/note_seq があるのでそちらを確認ください。 素晴らしい高度な質問で感心しました。CANPLAY生徒様、音楽AIに関わる皆様の参考になれば幸いです。

音楽機械学習ライブラリMagentaのRNNネットワークとEncoder Decoderのファイルはどこにあるのか? Read Post »

機械学習音楽ライブラリ Magentaが2.1.3へバージョンアップ

機械学習音楽ライブラリ Magenta が2.1.3ヘバージョンアップしました。 特に新機能はなく地味な内容ではありますが、重要な修正点があり、Python3.8への対応と3.9への非対応が記述されております。 また、GanSynth(Gan=敵対的生成ネットワークを使用したシンセサイザーモデル)について、データの取り扱いに一部修正がありました。こちらは依存ライブラリの関係だと思います。 地味なアップデートでしたが、そんな中稀に非常に重要な修正内容が含まれており、(最近その対応に追われておりました)やはり常にチェックを怠る事はできないと感じております。

機械学習音楽ライブラリ Magentaが2.1.3へバージョンアップ Read Post »

OpenAIのJukeboxで生成されたWindows95のスタートアップサウンドの続き

OpenAIのJukeboxで生成されたWindows95のスタートアップサウンドの続きだそうです。 CANPLAYでも何曲も生成実践しているのですが、やはりアップサンプリング(音質を元のレベルのまで戻す)まで行われてはいない様です。試みとしては面白くAI時代の音楽表現という感じはします。 Jukeboxについては詳細に講義でも解説しております。記事化もしてありますのでこちらをご確認ください。

OpenAIのJukeboxで生成されたWindows95のスタートアップサウンドの続き Read Post »

マイケルジャクソンのBeat itのパロディーソングで知られるアル・ヤンコビックをAIに |ジョージア工科大学の准教授が開発したパロディーソングの詩を生成するWeird AI Yancovic

皆様アル・ヤンコビック氏をご存じでしょうか?80年代のマイケルジャクソン時代を生きた方ならご存知、Beat itのパロディーソング Eat itを作ったパロディーソングの巨匠と言える方です。ご存知の方はお久しぶりに笑っていただくために、初めての方にもやはり笑っていただくためにまずはEat itの動画をご紹介しましょう。 このアルヤンコビック氏の名を関したパロディーソングの詩を生成するWeird AI YankovicというPyTorchとOpen AIのGPT2を使用したAIをジョージア工科大学の准教授Mark O. Riedl氏が開発したとの事で、その論文まで発表されました。 論文はこちらです(英語) https://arxiv.org/pdf/2009.12240.pdf 早速私もWeird AI Yankovicを使用し、AI is weird(AIっておかしい)という詩を生成してみました。 生成時の様子をキャプチャした動画です。 生成された詩 For the following three Is more than enough to set When off and also not but Just the corresponding id And also not but the corresponding. Has a few tricks For each to set when off. For the following three is more than enough. Has a few tricks to weed I am not going to attempt 和訳 次の3つの場合 設定には十分すぎる オフのときもそうでないときも 対応するIDのみでいける ただ対応するだけではない いくつかのトリックがある それはそれぞれがオフのときに設定される 次の3つで十分すぎる 刈り取るにはいくつかのトリックがある 私はしませんよ いかがでしょうか?意味はよくわかりませんが、、、 プログラムはOpenAIのGPT2を使用しています。論文を読む限り、アルゴリズムもにしっかりと考えられており、コードもかなり複雑なのですが、この情熱がなんの役にも立たない(失礼汗)事のために用いられた事。。。。笑いつつも妙に心を動かされました。何の意味があるから

マイケルジャクソンのBeat itのパロディーソングで知られるアル・ヤンコビックをAIに |ジョージア工科大学の准教授が開発したパロディーソングの詩を生成するWeird AI Yancovic Read Post »

機械学習で自分の歌声を色々な楽器音に変換できるTone Transfer

Googleの機械学習音楽プロジェクトMagentaから新しいウェブアプリの登場です。 Tone Transferhttps://sites.research.google/tonetransfer Tone Transferは、歌声や楽器音、その他あらゆるオーディオデータを他の楽器の音に変えるという、機械学習だかこそ実現できる新しいコンセプトの高度なプログラムとなっています。文字で解説するよりもまずは動画でどんな事が行えるのか見てみましょう。自分の歌を、フルート、サックス、トランペット、ヴァイオリンという4つの楽器音に変換してみます。 いかがでしょうか?録音はPCのマイクから行っていますが問題なく変換可能でした。標準で用意されている入力用のサンプルでもわかりますが、歌声や楽器音だけでなく、手拍子や雑音など、音程のない音でも変換でき、それらしくもユニークな演奏になる様です。注意点としては、入力オーディオは単音のみ認識で和音は不可、エラーが出ます。単音の歌などは問題ないですが、ピアノやギターで和音演奏は意図した通りの変換が行われません。それでは実践方法を簡単に解説していきます。 1・まずは用意されているサンプルで視聴 サンプルは入力(変換元)が6種類、変換用楽器が上述したフルート、サックス、トランペット、ヴァイオリンの4種類用意されています。どんな事ができるのか?まずは視聴をしてみてください。レコーディングは入力の最下列にあるAdd your inputをクリックします。 2・自分の歌をレコーディング Recordボタンで録音開始です。他に既存のオーディオファイルをアップロードし使用する事もできます。 気に入ったメロディー以外に、ドラムループや特殊音などをアップするのもあり得ない効果が出て面白いかもしれません。 3・変換 録音またはアップロードが完了するとTransformボタンが現れますのでクリックして変換を行います。少し待つと変換が完了しますので左側のTransformationから楽器を選んで視聴する事ができます。再生ボタンの脇にコントロール機能もあり、原音、変換のミックス量やオクターブなどを調整できるので色々試すと新たな楽器音を作る事などもできるかもしれません。 Pythonで希望の楽器音を使用した独自モデルの作成も可能です 今回のTone Transfer

機械学習で自分の歌声を色々な楽器音に変換できるTone Transfer Read Post »

Magenta.jsの新しいウェブアプリLo-Fi Playerリリース

Sony Flow MachineのLo-Fi Beats “サクラチル”に感化されたのでしょうか?MagentaもMagenta.jsを使用したLo-Fiヒップホップ生成ウェブアプリ Lo-Fi Playerhttps://magenta.github.io/lofi-player/ をリリースしました。 YouTubeライブで公開中です。 ちなみにSony Flow MachineのLoFi Beats “サクラチル”YouTubeライブはこちら 当然ながらMagenta.jsのLo-Fi PlayerはFlow Machine版と違い、ウェブアプリとして色々な操作を自分で行うことができます。ウェブ版でデモプレイをしてみましので動画をご覧ください。 なかなか心地良いローファイビートが生成されています。 動画内にありますが、2つの音楽データ(前半後半)の選択、ベースパート、ドラムパートのオン・オフ、背景画像効果音選択、などが可能です。 Lo-Fi Player技術的解説 (VAEについて) このLo-Fi PlayerはMagenta.jsの中でもMusicVAEのInterpolation(2つの音楽データをつなぐことで新たな音楽を作る)というモデルが使用されている様です。本来この2つの音楽データ(それぞれ1小節)を最初と最後に配置し、その間にある空間を埋める事により新たな音楽生成を行うのがMusicVAEの仕組みです。最初と最後が1小節ずつ、としてその間が14小節分あれば合計16小節の音楽が生成されます。図にしてみると下図の様になります。 この区間を埋める時に、関連性の低い音データまでを考慮してしまうと、ニューラルネットワークの計算も大変、かつ、いわゆる音楽的に外れる可能性も高くなってしまいます。そこでデータの重要な部分だけを残して削減(エンコーダ)し、元に戻す(デコーダ)を行うのがVAE (Variational Auto Encoder )です。このVAEがMusicVAEの名前の由来になっています。VAEの使用と不使用の効果を視覚化したのが下図です。 MusicVAEは(オフィシャルに公開されているもの)最大3トラックの音楽生成が行えます。今回のLo-Fi Playerも・メロディー・ベース・ドラムの3ト

Magenta.jsの新しいウェブアプリLo-Fi Playerリリース Read Post »

Magentaが2.1.1へバージョンアップ

Magentaが2.1.1へバージョンアップしました。 と言っても非常に微細なアップデートでコードにして数行です。 onsets_frames_transcription(オーディオデータからMIDIファイルを作成する)のonsets_frames_transcription_create_tfrecords.pyに一つ関数が加えられただけです。 赤が削除コード。緑が追加コード。tfrecordデータを作成する際のエラー対策の様です。 残念ながらWindowsでMagentaがインストールできないエラーは解決していません。一時的な解決策となりますが、CANPLAYで対策プログラムを作成しております。 【2020.08.22Magenta Windowsインストール対策】Windowsで Magentaがインストールできないエラーが発生しています。プログラムそのものの問題で依存ライブラリの一部にWindowsで使用できないものが含まれる様になったためです。対策は以下の様に行ってください。 1・通常通り新しい仮想環境の作成 2・pip install tensorflowで通常通りインストール 3・pip install –no-deps magenta==2.0.1 でmagentaをインストール (2020.08.22現在の最新版2.1.1ではエラーが出ます)4・pip install –no-deps tensor2tensor でtensor2tensor をインストール 5・dorpamin-rlを除いた依存ライブラリをインストール6・その後エラーが出る様であれば pip install –no-deps tensor2tensor 再度実行 さらに詳細な対策、および依存ライブラリーインストール用の更新プログラムはCANPLAY生徒様に配布しております。

Magentaが2.1.1へバージョンアップ Read Post »

Magentaチームによる機械学習&音楽のリモートワークショップ&ハッカソンイベント”Bit Rate”が開催

Google の機械学習音楽ライブラリーMagenta開発チームと、サンフランシスコのメディアアート機関”Gray Area”による機械学習&音楽のリモートワークショップ&ハッカソンイベント”Bit Rate”が8月7日〜9月7日に開催されます。開催場所はもちろんアメリカサンフランシスコと言う事ですが、今回はコロナ禍の状況下でリモート開催と言う事で日本からも参加できるのではないかと思います。 https://grayarea.org/event/bitrate-ml-music-series/ 主にJavaScriptの音楽ライブラリーやMagentaを組み合わせて、機械学習&音楽の新しいアプリを開発するワークショップとハッカソンの組み合わせでスケジュールは下記の様になっています。 Introduction & Opening – August 7 5:30 – 6pm PST: Introductions by Gray Area and Magenta team at Google Research. Workshops & Lectures – August 7 – August 9 August 7, 6-9pm PST: p5.js Workshop – Instructor: Rachel Rose Waterhouse August 8, 11am – 2pm PST: Magenta.js Workshop – Instructor: Tero Parviainen August 9, 12pm – 3pm PST: ml5.js Workshop – Instructor: Stephanie Andrews Series Begins – August 7 Teams gather and begin prototyping process. Project Submissions – August 31 Projects created will be submitted on devpost.com. Conclusion & Awards &#821

Magentaチームによる機械学習&音楽のリモートワークショップ&ハッカソンイベント”Bit Rate”が開催 Read Post »