[月別過去ログ] 2020年02月

« 2020年01月 | 最新のページに戻る | 2020年03月 »

2020年02月27日

「ニューラルネットワークを用いた歌声シンセサイザーNEUTRINO」使ってみた

音楽作るのが趣味なもんで、ボーカロイド2(初音ミク)が発表された2007年の夏にはデモソングを聴いて衝撃を受けて、発売すぐに購入して自作曲とか作ってた。(たとえばsoundcloudに上げたシューゲ曲とか。)

その後も断続的にはボカロいじってきたのだけど、年に数回くらいの頻度で使わないのでいつまで経っても上達しなかった。ボカロでは「調声」といって、たとえば急激なフォルマント変化でケロケロ音のような人間的でないロボ的な歌い方をするのを直すテクがあるのだけど、そういうのも習得せず、基本midiキーボードで弾いたのをクォンタイズしただけ、みたいな使い方をしてた。

そしたら今回「ニューラルネットワークを用いた歌声シンセサイザーNEUTRINO」というのが発表された。(ネットの反応はこちら:togetter) 無料でダウンロードできる。製作者のブログからデモソングが聴けるのだけど、これがすごい人間らしく歌ってる。そういうわけで即ダウンロードして試してみた。

ダウンロードするとサンプルの楽譜ファイル(たとえばsample1.musicxml)が入っているので、製作者のブログに書いてあるとおりRun.batを実行すると1-2分かけて音声ファイル(たとえばsample1.wav)が生成される。

じゃあまずいちばん簡単なところで「カエルの歌」から入力してみるかと、MuseScore (こちらも無料ソフト)をダウンロードして、チュートリアルの動画を見てやり方学んで、楽譜入力して、非圧縮MusicXMLファイル形式(kaeru.musicxml)で保存する。これをNEUTRINO > score > musicxml > のフォルダに放り込んで、Run.batをエディタで開いてBASENAME=sample1を新しい楽譜のファイル名BASENAME=kaeruにリネームする。ほかは一切いじらない。これでRun.batを実行したら、問題なくwavファイルができた。

ではさっそく曲を作ってみようと、Ableton Live (Lite 10)でシンプルなバックトラックを2小節分作る(Am-Bmのくりかえし)。それからバックトラックをループさせて、Dドリアンのスケールでメロディーを12小節分ラップトップのキーボードで入力した。メロディーだけmidiクリップとして書き出す(図の"8 Philly Lead"というやつ)。

screenshot0227a.png

こうしてできたdorian.midをMuseScoreで開いて歌詞を入力する。

screenshot0227b.png

これを非圧縮MusicXMLファイル形式(dorian6.musicxml)で保存して、おなじくRun.batを実行するとwavファイルができる。

でもここで問題が発生した。歌声がぜんぶブレス音(呼気)だけになって歌声になってない。試行錯誤の末これは音域の問題であることが判明。楽譜ファイルを一オクターブ下に転調したら解決した(貼ってある画像は転調後のもの)。

その後もキーボードで手弾きしただけだと32分音符とかがあったりして、こういうのはうまく発声してくれないことがわかった。そういうわけでいわゆる「調声」はしていないのだけど、音域と音の長さ(休符も含めて)をいじるのにちょっと時間がかかった。(Run.batを一回走らせるのに2分かかるので、ここの往復作業でトータル1時間くらいかかった。)

それでも最終的には問題なく音声ファイルdorian6.wavが出来上がったので、それをAbleton Liveに貼り付ける。昔のPiapro Studioがない時代にボカロ曲を作るときと同じ要領。

そのままでも曲として成り立っているのだけど、いちおうボーカルにはリバーブかけて、masterでコンプかけて完成版ができた。Soundcloudにアップしておいた:

すげー歌えててびっくりした。上の楽譜見ればわかるようにベタ打ちなのにフレーズの終わりごとにちょっとしゃくりあげてる。アニソンというかアイドルソングの文法な。(これに気づいたので、フレーズごとに休符を入れて、のっぺりと歌わないようにした。) あと0:24-0:26あたりとかすごくない?なんか「節回し」というか歌ってくれてるよね。ベロシティとかもまったくいじってないのに(ぜんぶ同じ100のまま)。

というわけで、しばらくneutrinoいじってみる予定。といいつつ次使うのは半年後だったりするんだけど…


2020年02月25日

熱力学の再勉強中。

ここ最近Fristonの自由エネルギー原理FEPについて自分で勉強したり、各地で講演したり、生理研でチュートリアル・ワークショップを開催したり、とさまざまな活動をしてきた。

FEPでは、ベイズの法則による事後分布の計算を変分ベイズでやるために情報理論で言うところの「変分自由エネルギー」を最小化する。(機械学習ではELBO evidence lower boundという呼び名のほうが浸透しているだろう。)

FEPが興味深いのは、環境と相互作用するagentの内部状態がどのように時間発展してゆくかを決定づける変分原理としての役目を果たすかもしれない、という点だ。この点がFEPの特異かつ怪しい部分であって、もしFEPがただの「ベイズの事後分布の簡便な計算法」であるならば自由エネルギー「原理」と銘打つ根拠がない。

先日京大・生命科学の本田直樹さんが企画した国際シンポジウム "COMPUTATIONAL PRINCIPLES IN ACTIVE PERCEPTION AND REINFORCEMENT LEARNING IN THE BRAIN"に参加して、ドイツ ウルム大学のDaniel Braunの連続講演を聞いてきた。

彼は物理的な意味での(ヘルムホルツの)自由エネルギーの最小化を発想の元にして、知覚と行動の統一理論として自由エネルギー最小化を提唱している。Daniel Braunの自由エネルギー原理も発想は違うけど結果としてFristonのFEPと同じものを最小化している。以下の2つの論文が基本理論で、ここから様々な応用をしている。

  • Ortega PA, Braun DA (2013) Thermodynamics as a theory of decision-making with information-processing costs. Proc R Soc A 469: 2 LINK
  • Genewein T, Leibfried F, Grau-Moya J and Braun DA (2015) Bounded Rationality, Abstraction, and Hierarchical Decision-Making: An Information-Theoretic Optimality Principle. Front. Robot. AI 2:27 LINK

そういうわけでDaniel Braunの論文も読んでいるところで、そのう ちまとめておきたい。それはまた今度。


でもって今回の本題なのだけど、そんなこんなで、そろそろ情報理論での変分自由エネルギー最小化と熱力学、統計力学でのヘルムホルツ自由エネルギーの最小化との対応付け(がそもそもあるのかを含めて)をちゃんと理解しておく必要があるなと思った。

いや、いちおう大学1,2年のときに熱力学、統計力学の講義があって、試験もパスしてはいるのだけど、一夜漬けでぜんぜんダメな成績だった記憶がある。そのあとブルーバックスとか読んではいたのだけど、熱力学を歴史を追って説明するというストーリーで毎度挫折していた。そこでそれとは異なるアプローチで、しかも定評のある「熱力学 ― 現代的な視点から」田崎晴明 培風館 を読むことにした。

この本では、(じつのところ見えない存在である)熱Qの概念からスタートするのではなくて、(計測可能な)仕事Wの概念からスタートして、熱力学を再構成するという話の運びになっている、というところまでは以前調べて知ってた。それでこの三連休を使って1章から7章のヘルムホルツ自由エネルギーの最小化までとにかく読み進めた。

でもって読みっぱなしだと頭に残らないので、こういうときはとったノートをまとめて公開できるように形を整えてみるのがよいだろう(ブログのネタにもなるし)、と考えてまとめノートを作ってみた。まずこちらがA4一枚に収まるように作成したチートシート的なもの。(画像からPDFにリンクしてある。)

Thermodynamics4thumb.png

もうひとつが9ページ分でまとめた、よりノートらしいノートになってます。こちらはSlideShareにアップしておきました。

熱力学の初歩まとめ 20200224 吉田正俊 from Masatoshi Yoshida

この分量を作るだけでもけっこうな時間がかかった。まだ本文を飛ばしながら読んだだけで、繰り返し読んで、例題を解いてゆくことでさらに理解が深まるわけでまだ先は遠い。熱力学自体の勉強としても相転移くらいまでは理解しておきたいし(臨界現象は生物の理論的にも重要そう)。

やってみて再確認できたのは、けっきょくのところ熱力学でのエントロピー、自由エネルギー、といったものは平衡状態でのみ定義可能なものであって(途中の過程自体は平衡であり続ける必要はないけど)、それを生物のような物質の出入りがありながら構造を保ちつづけている非平衡定常状態NESSに単純に当てはめるわけにはいかない。非平衡でのエントロピーをどう定義するか自体が現在でも課題であり、このあたりの進捗をフォローできるように勉強しておく必要があると思った。(FristonのParticular Physics論文でもNESSとマルコフブランケットから話が始まった。)

そして情報理論での変分自由エネルギー最小化との対応付けという意味では本丸は統計力学の方なのだけど、こちらについてはここさいきん渡辺澄夫「ベイズ統計の理論と方法」を読み進めたので、また別の記事を作成できたらと考えている。そちらはまたの機会に。


お勧めエントリ

  • 細胞外電極はなにを見ているか(1) 20080727 (2) リニューアル版 20081107
  • 総説 長期記憶の脳内メカニズム 20100909
  • 駒場講義2013 「意識の科学的研究 - 盲視を起点に」20130626
  • 駒場講義2012レジメ 意識と注意の脳内メカニズム(1) 注意 20121010 (2) 意識 20121011
  • 視覚、注意、言語で3*2の背側、腹側経路説 20140119
  • 脳科学辞典の項目書いた 「盲視」 20130407
  • 脳科学辞典の項目書いた 「気づき」 20130228
  • 脳科学辞典の項目書いた 「サリエンシー」 20121224
  • 脳科学辞典の項目書いた 「マイクロサッケード」 20121227
  • 盲視でおこる「なにかあるかんじ」 20110126
  • DKL色空間についてまとめ 20090113
  • 科学基礎論学会 秋の研究例会 ワークショップ「意識の神経科学と神経現象学」レジメ 20131102
  • ギャラガー&ザハヴィ『現象学的な心』合評会レジメ 20130628
  • Marrのrepresentationとprocessをベイトソン流に解釈する (1) 20100317 (2) 20100317
  • 半側空間無視と同名半盲とは区別できるか?(1) 20080220 (2) 半側空間無視の原因部位は? 20080221
  • MarrのVisionの最初と最後だけを読む 20071213

月別過去ログ


« 2020年01月 | 最新のページに戻る | 2020年03月 »