Hatena::ブログ(Diary)

やねうらお−ノーゲーム・ノーライフ このページをアンテナに追加 RSSフィード

GT-Rの買取ならここですわ。どこよりも高く買取ってもらえるはず。お勧め!GT-R 買取
電王戦出場記念! 書籍化されたで! 監修したで!(`ω´) 絶版なってしもた Kindle版で復活!! 記事書いたで!
解析魔法少女美咲ちゃん マジカル・オープン!

YaneuLabs / やねうら王公式 / やねうらおにメール / twitter / プロフィール

 | 

2014-04-20 ボカロ(作るところから)はじめました

[] ボカロ(作るところから)はじめました  ボカロ(作るところから)はじめましたを含むブックマーク  ボカロ(作るところから)はじめましたのブックマークコメント


今日からボカロを始めることにした。もちろん、ボカロを作るところからだ。ボカロを含めて音源自作する。楽器(ハード)も自作する。

音楽理論自分で構築しなおす。自動作曲のためのプログラムも作る。そうして、やっと自分だけの音楽が完成する。とりあえず、目標はそこだ。


■ ボカロを作るとは?


初音ミク代表されるようなボーカロイドは、「あ」「い」「う」など、人間がそれぞれの文字を発声したものを録音しておき再生しているだけである。つながりが不自然なところは二文字、ときとして三文字つなげたファイルも持っている。ただそれだけである。私はそういうことをしたいわけではない。声を一から作るところからだ。


■ スーパーファミコンDSP


順序立てて話そう。


私は高校生ときアーケード麻雀移植のために音声合成の処理を書いたことがある。*1

このプログラムは実際には世に出なかったわけであるが、私はそれ以前から、音をプログラムすることに関して強い関心があった。


Falcomの『イース』の音源ドライバー中学とき夏休みを丸ごと潰して解析したのも音に対してすこぶる興味があったからだし*2、BM98を作ったことにしてもその延長線上にある。私はプログラム以上に音に対しての興味があった。


2004年ごろにソニーPS3の開発に際し、PS1/2のエミュレーションレイヤーの実装のための人員募集をしていた。そういう仕事は大好きなので、応募しようかと思ったのだが、その給料があまりにも安く、当時の自分給料の何分の一かになってしまうので、ずいぶん悩んだのだが、ついに応募はしなかった。ただ、そのときは応募も本気で考えていたので、小手調べにスーパーファミコンDSPソフトウェア実装してみた。


スーパーファミコンのサウンドを一度でも聴いたことがある人は、耳が腐ってでもいない限り、あれがとても特殊なサウンドであることがわかるだろう。ファミコンのそれとは一線を画する、そしてそのあとブームとなるFM音源とも異なる、骨太のサウンドである。実際、FM音源全盛期にスーパーファミコンゲーム移植しようとした会社が、FM音源パラメーターをどう調整してもスーパーファミコンっぽい音が出せなくてとても苦労したという話は枚挙にいとまがない。


要するに、スーパーファミコンDSP(サウンドチップ)とは当時の歴史のなかに本来、技術的に存在してはおかしいようなオーパーツのものなのである


何故こんなオーパーツがこの世に存在したのか。実は、このDSPはのちにソニー(SCEI)の社長にもなる久夛良木さんが手がけたものなのだ*3


f:id:yaneurao:20140420051801p:image


久夛良木さんレベルの超天才エンジニアの手がけたハード自分の手でエミュレーションレイヤーを実装してみて初めてその設計思想、素晴らしさが実感できるわけである。私はもちろん、久夛良木さんレベルのエンジニアではないが、しかし、プログラムを書く能力は人並み以上にあるから久夛良木さんのDSP自分の手でソフトウェアで再実装することが出来た。誰しも感動する小説に出会えたときには自分に文字を読む能力があり、そして小説の内容を理解できる能力が備わっていたことに感謝するだろう。それと同じ感動がそこにはあった。あのときだけは、自分プログラムを書く能力が備わっていたこと、そして、久夛良木さんの天才性の一部であれ、理解できたことに対して神様感謝してやまなかった。


スーパーファミコンDSPのどこがそんなに優れているのかについてざっと書いておく。本当は、この部分は本記事にはあまり関係がないのだが、ここを書いておかないと「やねうらおめ、また内容のない薄っぺらい記事を書きやがって!本当はスーファミDSPことなんか何も理解していないくせに!」などと勘ぐる輩が出てくるので、あえて書いておく。

※ 技術的な内容なので、興味のない人は読みとばしてください。


スーパーファミコンDSPの公称性能はこうなっている。*4


f:id:yaneurao:20140420051802p:image


上の説明は今ひとつわかりにくいが、DSPとは別に制御用のチップが載っている。6502を拡張した命令セットを持ち、音源ドライバーなどはここに配置する。この音源ドライバー結構いろいろなことが出来てしまうので、スーファミのサウンドはゲームメーカーによって音色がずいぶん違うと言われるゆえんである


・BRR圧縮された波形データ復元


事前にサンプリングした波形データ復元する機能PlayStationで使われている圧縮アルゴリズムと同一である*5


ADSR


ADSRは、Attack、Decay、Sustain、Releaseの頭文字で、FM音源に見られるようなエンベロープジェネレーターであるが、A,D,S,Rの値はそれぞれ4bit、3bit、5bit、3bitで指定する。(そのあと表引きして実際のA,D,S,Rの値が設定される) 併せて15bitだから16bitに収まっている。いまどきなら、それぞれの値を直接設定できるようにするところだろうが、当時はメモリもったいないのでこういう設計が好まれた。


ところが、このADSR機能を使わずに直接gain(≒ボリューム)を変更するモードもある。実のことを言うと大手メーカースーファミ用の音源ドライバーADSRモードではなく、こちらのモードを使ってあるものが多い(と思う)。自前の音源ドライバーADSRよりもっと細かな制御をしたほうが、サウンドに広がりが出てくるからである。なのでADSRはこのDSP代表的機能ではあるが、スーファミのサウンドの特徴ではないと私は考えている。


ガウス分布補間


指定した4点を曲線で補間する機能。実装的にはガウス分布テーブルを用いている(表引きしている)ので正確な補間ではないし、さら計算資源があるならスプライン補間したほうが歪みのないサウンドになるし、いまのPC用にソフトウェアで実装するならそうすべきところではあるのだが、良くも悪くもこの“歪み”自体スーファミらしいサウンドを形成していると思う。


ディレイ


ファミコンにはディレイがなかったのでこれは大きな進歩久夛良木さんの発言によると『ファミコンについてはサウンドトラック4本や音のディレイがないことから「そんなもんで音楽なんてやれませんよね」「普通の人はそれで感動するかというと、ぼくは感動しないと思う」「クリエイターがやりたいと思ってることがやれるかどうかというのがキー」』*6


リバーブ(次数8のFIRフィルタ付)


リバーブFIR(有限インパルス応答)フィルタ*7までつけてしまうのが恐ろしい。ここの「次数8」というのは、パラメーター(係数)が8個指定できるという意味FIRフィルタ自体デジタルフィルタとしては基本的ものなので説明は割愛


スーファミのサウンドまとめ


結局のところ、上記のような当時としてはかなり高機能な処理能力を備えたDSPと、このDSP制御チップ(ここに各ゲームメーカーが独自のサウンドドライバーを載せた)との組み合わせによりスーファミらしいサウンドがもたらされたわけである


■ オリジナルボカロを作るとは?


もうここまで説明すれば話は見えただろう。今回、ボカロ自作するわけであるが、まずそのためにスーファミDSPのようなソフトウェア実装のサウンドレイヤーを用意する。まあ、人間の肉声に近いサウンドが欲しいわけで、スーファミDSPよりは少し高機能ものにならざるを得ないが。また、ここは将来的にハードウェア化するかも知れないので、この部分はそのへんも見越しておく。


次に、このDSPに対してプログラムできる必要があるのだが、DSP制御用の命令セットを用意して、その命令によってプログラムすることにする。(将来的なハードウェア化を視野に入れているため)


あと、この自作ボカロライブで使うような用途を考えているため、この自作ボカロリアルタイムに歌わせることが出来るような楽器自体を作らなければならない。そのへんもすでに考えてある。


かなり早口な歌でも訓練次第ではリアルタイム演奏が可能である画期的楽器(音楽的なデバイス?)となる予定だ。


■ 音楽自動作曲とは?


ついでだからもう少し話を進めよう。コンピューターによるアルゴリズム作曲(自動作曲)についてである。この分野の近年の技術進歩めざましく、論文もたくさん出ているし、アルゴリズム作曲実用的になりつつあると思うのだが、私はそういう方向性でやりたいわけではないのだ。


作曲をやっている人にはわかると思うけど、どこかの段階で対位法とか勉強するわけだ。二声対位法、三声〜八声、厳格対位法模倣、二重対位法フーガetc…。そうするとその手の教科書には「禁則」(こういう進行は良くない)が延々と書いてある。和声に関しても、ある程度基礎が出来たのちに、いわゆる芸大和声(asin:4276102057)あたりから勉強するわけだが、「禁則」のオンパレードである。そして、興味深いことに本によって何が「禁則」であるかは定義が異なる。


じゃあ、そもそも「禁則」とは何なのか。

このように「禁則」とすることによって何が得られるのか。


結論的に言うと、その本を書いた人が想定している音楽(それは18世紀のものであったり、それ以前のものであったり、特定作曲家のものであったりするのだが)が得られるということである。この部分を理解していないと、やみくもに「禁則」だけ覚えることに終始してしまい、自分の作る曲の音楽的な可能性を狭めてしまう。


要するに「禁則」とは、曲の生成アルゴリズムが何かしらあるとしてそのためのルール集合の一部だと考えるとわかりやすいだろう。


例えば、モーツァルトの曲を分析し、そのルール集合が得られれば、そのルール集合からモーツァルトの曲っぽい曲が自動生成できるということだ。


しかし、自動生成と言っても、単にルール集合に書かれているルールを順番に適用していけばいいという単純なものではない。例えば、前の音符との次の音符との接続される形に良さの点数がつけられるとしたら、その点数を最大化したい。そして一曲通してその点数の合計が最大になるような曲にしたい。そうならないときは前の音符を消して、また別の音符に置き換えて…という作業を繰り返す必要がある。


実はこの部分はコンピューター将棋の探索と全く同じなのである。音符一つ(音符の高さ・音符の長さ)が将棋の指し手に相当し、音符を一つ置くことが将棋ではその指し手で局面を進めることを意味する。将棋で読みのなかで局面をいったりきたりするが、音符を足したり、消したりするのはそういう理由からである。そして、将棋であれば最終的な点数(将棋であれば最善応手列≒読み筋)の末端局面の評価値が最大になるような現局面での指し手を探すが、曲作りときも、最終的な点数が最大となるような音符の並びを探し出せば良いのである


まり自動作曲は実はルール集合さえ与えれば、コンピューター将棋の探索部によって解決できるのである


これは何も偶然の一致ではない。人間知的作業のほとんどは、何らかの点数を最大化するという、探索を伴う最大化問題に帰着されるので、作曲行為自体コンピューター将棋の探索の問題に還元されるのは何も不思議なことではないのだ。


■ 作曲のためのルール集合


では人間は何もしなくても曲が出来上がるのかと言うとそれは違う。作曲のためのルール集合自体人間が考えてやる必要がある。

ルール集合が同じであると似たような曲しか出来ないし、そこがまさに人間しか出来ない知的作業と言えるわけである


例えば、坂本龍一(織田信長に「さん」をつけないの同様、歴史レベルの偉人なので敬称をあえて略す)の作曲のための方法論として、自分が考えた作曲アルゴリズムに基づき、自分作曲機械だとみなしてそのアルゴリズムにより曲を生成し、その曲の良し悪しを音楽家坂本龍一が評価し、そして作曲アルゴリズム修正を行なうというフィードバックループにより作曲するという主旨のことが『坂本龍一音楽』(asin:4487801036)に書いてあったと思う。(うろ覚え)


坂本龍一が本当にそうやって作曲しているのかどうかは私は知らないが、そういう視点というのが面白いと思っていたし、この「自分作曲機械だとみなしてそのアルゴリズムにより曲を生成する」という部分は、私のプログラミング能力であればコンピューターに完全に肩代わりさせることが可能だ。


そうなってくると、「自分が考えた作曲アルゴリズム」が問題となる。従来のアルゴリズム作曲論文では、この部分が固定に近い形であったので、同じような曲しか作れなかった。自動生成される曲の完成度はともかく、私にはその部分が大いに不満であった。


私は特定ジャンル特定の種類の曲を大量に生成したいわけではないので、上記のようなフィードバックループをなるべく短い時間で回したいのである。そうすることにより短い時間自分作曲アルゴリズムが磨かれるわけである


そして、最終的にはこのループ自体を少しプログラム音楽に対して理解のある人であれば誰もが体験できるよう、自動作曲のためのプログラミングフレームワークとして公開したいわけである


■ まとめ


ということで、私の当面の目標は以下のような感じである。(何年かかるかは知らん)


ボカロ自作(そのために自分設計したDSPソフトウェア実装するところから)

音源自作(自分設計したDSPに対する制御プログラミングにより)

ボカロライブ演奏できるような楽器自作

アルゴリズム作曲とそのフレームワーク作成


■ あとがき


何故突然こんなことを思ったのかと言うと、電王戦が終わったので友達に借りてる漫画を読んでいたわけである。その友達とは電王トーナメントエントリーときにやねうら王の開発者としてもう一人名前が挙がっていたと思うが、彼である。彼は、いつも私をその気にさせる。やねうら王も彼がいたから作ろうという気になったわけである。だから、やねうら王のエントリーとき共同開発者として彼の名前を入れておいた。


今回、彼が持ってきた漫画は『ナッちゃん東京編 1―下町鉄工所奮闘記』 (asin:4088597001)という漫画で、下町の鉄工所で働く女の子(?)の物語である。この女の子ちょっとした天才で、創意工夫によって無理難題を解決していくわけであるが、これを見ていたら昔のことを思い出したわけだ。


私は小学生の段階ですでに仕事としてやっていける程度にはプログラミング能力があったわけであるが、大学卒業するころにはプログラミング自体に少し嫌気が刺しており、これを職業にするとプログラミングのことが嫌いになってしまうと考えて、プログラミングとは全く違う分野(製図設計)の仕事に就いたわけである。正直に言えば当時は自分プログラミングが出来ること自体が、本当に忌々しいと思っていたし、「こんな神がかったプログラミング能力とか要らねえんだよ!俺は、刺身たんぽぽを乗せるような頭の使わない仕事がしたいんだよ!」と考えていた。


ところが、モノづくりの現場で働くうちに、創意工夫して製品を作る(さらに、それをお客様に届け、喜んでもらう)ということの素晴らしさを知ったわけである。『ナッちゃん東京編 1―下町鉄工所奮闘記』を読んでいると、そんな当時の自分を思い出してしまった。そうだ、何でも工夫すれば作れるんだ。俺には、神がかったプログラミング能力があるんだしな!と思ったわけだ。


※ このブログの愛読者ならば、「神がかった」とか書いてあっても「また今日やねうらお節、全開だな」ぐらいに理解してもらえるはずなのであるが、そうでない人に言っておくと、「神がかった」というのは、ある種の冗談であり誇張表現の一種である。本気で自分プログラムを「神がかった」などと思っている人がいたら、それは相当な大馬鹿野郎である


そして、そのとき音楽コンピューター将棋との関係気づき、点と点が一本の線でつながったわけだ。これは、もうボカロを(作るところから)やるしかないなと。


ちなみに、私の作曲経験だが、自分の作った曲が商用ゲームに使われたことがある。まあ、自分プロデューサーだったんだから自分の曲使おうが何を使おうが自由なんだけども。商用ゲームに使われたらプロだという定義だとしたら、私はプロ作曲家である。おお、これはなんか凄くずるい感じがするな!


プロ作曲家になりたい人は、自分で商用ゲームでもプロデュースすればいいんだよ!」などとテキトーなことを言ってこの記事を終りにしたい。

羊 2014/04/20 05:47 びっくるねっとの頃からやねさんの音に関する記事を読んでました。私もボカロエンジンを作ってみたいと思っていましたので、とても楽しみにしています。

yaneuraoyaneurao 2014/04/20 05:57 ↑ボカロエンジンを作ってみたい?むしろ、私と一緒に作ればいいんじゃまいか?

yaneuraoyaneurao 2014/04/20 09:21 ちょっとコメントを整理(削除)した上で書いてあった内容に返信。

> 「何を点に結び付けるか」がぼやける作曲・編曲

例えば、並達8度・並達5度を減点だとか、声部が跳躍したあとはそれと反対側に進まないと減点するだとか、メジャー和音に対しての3rdのdoublingを減点するだとかそういう局所的な話です。どれくらい減点するかは、他の楽譜をもとにパラメーターを調整することもボナメソで十分可能です。

また、自動作曲により完成された曲の点数を自動的につけるという話ではありません。そこは人間が判断すべきところです。ですので曲が量産されることもないです。

あと、自動作曲のためのルールセットは、プロの作曲家が無意識にやっているようなことをルール化しなくてはならないわけで、そのためにはプロの作曲家と同等以上の音楽的センスおよび言語化能力が必要になりますね。

> 声優や歌手、作曲家・編曲家の方々が、だれも路頭に迷わないような配慮も極力した方が良いでしょう。

菅野よう子や上松範康レベルの天才作曲家が出てきたからと言って他の作曲家が廃業になるわけでもなく、初音ミクのような機械の歌い手(?)が出てきたからと言って他の人間の歌手が不要になったわけでもなく、まあ、音楽業界に関してはそのへんは柔軟に受け入れる土壌があると思いますけどね。

パオパオ 2014/04/20 09:25 ああ、ついに無敵のミクさんが駆逐される時が来るのか・・w
いや非常に楽しみです。やねさんの別次元のアプローチで
どんなボカロ(エンジン)が出来るのか。数年後ですか。長いのう・・

yaneuraoyaneurao 2014/04/20 09:31 ↑ 人工的な合成なので、どうやったところで肉声サンプリングには敵いません。VA音源(物理モデル音源)が生音に勝てないのと同じ理屈で。しかし、そこはそうでも、どれほど下手に人工的に合成された声であれ、一つの楽器と思えばいいのかなと。一時期、小室哲哉がその楽曲でデジタルフィルタでわざとロボットの声のように加工するのを多用していたと思いますが、あれも声ではなく声を一つの楽器かのように扱っていたのかなと、私は思うのです。

り 2014/04/20 11:55 めっちゃ期待。

ときメモ2のEVSでヒロインがプレイヤーの入力した主人公の名前をコンピュータの作成した合成音声で呼びかけてくれるやつがあってめっちゃドキドキしたんですけど、そういう方向にも進んでいきますかね?

作曲か・・・作曲か・・・ 2014/04/20 14:43 >>例えば、モーツァルトの曲を分析し、そのルール集合が得られれば、そのルール集合からはモーツァルトの曲っぽい曲が自動生成できるということだ。

モーツァルトの曲を1フレーズ取り出せば認識できるぐらいの分類器が必要なんでしょうか?なんか、色々な曲を同様の技法で解析すると、作曲家のパクリが疑惑が出て来そうで怖いですね(「?のブーメラン」と「DANZEN!ふたりはプリキュア」、ルールの一致率が80%を超えたからパクリ認定とか)

taratara 2014/04/20 16:38 やねうらさん、はじめまして。
いつも興味深く拝読させていただいております。

今回の記事、音楽の自動作成と将棋が同じスキームだという話、非常に興味深かったです。
素人質問なのですが、将棋の場合、膨大な量のプロの対局棋譜を入力し、それをもとに評価関数の精度を高めるということをされるかと思いますが、作曲においても、同様に大量の楽譜を入力することにより、どのような旋律、リズム、ハーモニーが心地よい組み合わせか、といった評価関数を作り上げるということも考えておられるのでしょうか。

名無し名無し 2014/04/20 17:08 今回のエントリは全く難しく、理解できなかったので質問させてください。
1. 「声を一から作る」とは、初音ミクのように、本職の声優や歌手からのサンプリングではなく、モデル無しでコンピュータに発声させてしまうのでしょうか?
2. 「つながりが不自然なところは〜」は、辞書ファイルやアドホックな調声無しに全てソフトウェアで行うのでしょうか?

yaneuraoyaneurao 2014/04/20 17:47 ↑*4 私がやろうとしている音声合成だとロボット風のボイスになると思うので聞いていてもドキドキはしないと思うんですが(笑)
↑*2 ですです。
↑*3 ↑*2が参考になるかと思います。ルール自体は将棋の3駒関係みたいに汎用的な特徴でもいいんです。例えばkey = Cのときに「ソ」の音のあとどこの音に遷移するかをマルコフモデルのようなもので調べて、自動作曲に活かすというアプローチが何十年も前からありますが、「ある音符からある音符への遷移」というのを一つの特徴因子としたり、あるいは「隣り合う声部に対してどのインターバルであるか」などを特徴因子として用いることが出来ます。それらに対して、モーツァルトの曲を食わせてボナメソでそれぞれの特徴因子の点数を算出することによって将棋ソフトで言うところの評価関数のようなものが得られます。
↑*1
> モデル無しでコンピュータに発声
ですです。
> 「つながりが不自然なところは〜」は、辞書ファイル
人工的に合成しているので(つまり、「あ」から「い」のように次の音へも滑らかに遷移できます)、つながり自体が不自然になる問題はあまりないですね。発声そのものが人間の肉声からかけ離れている可能性はあっても。また、本格的にやるのならば辞書的なものは必要だと思いますが、辞書を個人で用意するのは大変なので、そのへんは他のオープンソースのプロジェクトに依存してもいいかなと思ってます。

亜亜亜亜亜亜 2014/04/20 18:25 さすが、天才やねうらお!(歴史レベルの偉人なので敬称をあえて略す)
常人とは、発想が違いますね。
自動作曲が、将棋と同じく探索で実現するとは、目から竜王の鱗です。

私は音楽に関しては、全然詳しくないのですが、以前フリーゲームソフトを作った際には、自動作曲ソフトには随分とお世話になりました。
ただ、作れる曲の範囲に限界がありましたので、神がかった凄いソフトを期待しています。
もっとも、私は音楽に対して理解のある人ではないので、使いこなせないかもしれません。

近い将来、やねうら王を市販化し、解説自動生成したセリフをボカロが喋って、局面に応じた自動作曲BGMが流れることを期待しておりますw

みぞみぞ 2014/04/20 19:40 大変面白いです。ただ、楽曲の場合、将棋と違って、近傍のみを入力とする関数にはならないので、そこがかなり異なるアプローチになるとは思います。
つまり、しばらく前のフレーズを繰り返すようで少し変えたものをおくことが、独特の感興を催させるので、それを一般化したアルゴリズムからどう生み出すかは、難題ではないでしょうか。単にn次マルコフでなんとかなるとは思いがたいです。
私は自動ストーリーテリングに趣味的に関心がありますが、自動作曲にも共通する課題があります。「かみまみた」みたいな反復ネタを、それ専用の機能を組み込むことなく実現するには、という観点で。
現時点での私の見解は、巨視的な構成情報を生成し、そこから再帰的にディテールの作り込みをすることです。ストーリーの場合、最終的に描写、叙述等はそれぞれ特殊なジェネレータが必要ですが、楽曲の場合も、葉ノードでは幾つかのパターンを持たざるを得ないといけないと思います。さもなくば自動作曲にありがちなメリハリのなさに陥る気がします。

みぞみぞ 2014/04/20 19:53 補足です。巨視的な構成情報と言うと、なんかAA'BAみたいなナイーブなものを想起させますが、そういうものばかりではありません。もう少し細かい、小説で言えば詳細プロット、楽曲なら、いわゆる構造分析の成果物のようなものを想定しています。

yaneuraoyaneurao 2014/04/21 00:25
> 前のフレーズを繰り返すようで少し変えたものをおくことが、独特の感興を催させる

よく音楽をわかってはりますね。なら、少し専門的なことを書きます。

まず、前フレーズの模倣〜逸脱はある程度機械的に認識が可能です。例えば、5度上で模倣、もしくは、フレーズの最後の部分をわずかに付け足してあるかだとか、前の音符に対する音の高さの上昇・下降の列が一つ前のフレーズと一致するかなどは機械的に判定できます。(例:「ドレミミレ」と「ミファララソ」は一つ前の音符と比べていくとどちらも「↑・↑・→(変化なし)・↓」の順番になっているので一致します。)

機械的に構造を判定できる以上、それを特徴因子として用いることが出来るので、これらに対して点数付けが可能です。

> 巨視的な構成情報と言うと、なんかAA'BAみたいなナイーブなものを想起させますが

例えば、コード進行においてIV M7→V7→IIIm→VImのような王道進行があるとして、サビのところだけV7のあとに#V dim7とか挿入してpassing diminishっぽい感じにすることを考えてみます。

ところが、この#V dim7が曲の冒頭に出現したっきりで、そのあとただの王道進行になっていたら興ざめですね。すなわち、こういう盛り上がるような要素(借用和音のIII7とか、サブドミナントマイナーのIVm7とか)を出して、そのあとに盛り上がる要素が出てきていないことに対してマイナスの点数がついていればこういう曲の構成上の失敗は防ぐことが出来ます。

これは、実際にボナメソでターゲットとする楽譜を食わせてみればすぐに適切な点数がつきます。

このように適切な特徴因子を考えるのが人間の仕事(あるいは、この自動作曲フレームワークを作る人の仕事)であり、そのあと、ターゲットとする楽譜を食わせてそれらの特徴因子の点数を適切なところに持っていくとターゲットの曲のエッセンスの似た曲が生成できます。

あるいは、ボナメソを使わなくとも、人間の判断で、禁則に関しては点数として手で−∞(マイナス∞)にしておきます。そうするとその禁則パターンは自動作曲される曲には決して含まれることはないです。

UTHENAUTHENA 2014/04/21 02:06 ナッちゃんとか懐かしいですねー
連載当時はソレを目的に読んでた事もありましたw

音楽系はノイズの周波数テーブル作ってMMLで音階が出せるようにしたことくらいしかないチープDIYプログラマですが、それでもこの展開はワクワクしますね!

これ、完成したら販売とかされるのでしょうか?
ちょっと触ってみたいかも・・・

おおかみおおかみ 2014/04/21 08:26 ニコ動にはボカロ関連のおかげで、学会のチャンネルが有ったりしますんで、「SIGMUS」音楽情報処理学会で検索すると、過去の講演や発表が、ボカロや名大のとか出てきます

タカハシタカハシ 2014/04/21 09:12 アルゴリズミックに作曲者別・ジャンル別の特徴量を取り出すことができれば、例えばバッハの楽典では禁則になってしまう複雑な和声や和声進行であふれている曲も容易に再現して作ることができそうですね。(バッハ自身も禁則を犯してる例もありますが)

近現代の音楽、ラヴェルやドビュッシー、あるいはアニメではらき☆すた「もってけ!セーラーふく」やあずまんが大王「空耳ケーキ」など(古い)、そういう雰囲気の曲を同じフレーズを使わず人間が0から分析して作るのは大変そうですし。
これができれば、ネット将棋でソフト打ちがダメなように、将来作曲コンクールでアルゴリズム作曲は応募禁止になるかも知れませんね。

古典的な規則と近現代の規則をどう混在化させて点数化するのか、メロディーに加えてドラムやベースラインをどう評価するかといったことにも興味があります。いずれにせよとても楽しみです。

yaneuraoyaneurao 2014/04/21 09:30 ↑*3 完成して、こなれてきたら商品化できるといいかと思ってますが、まだ先の話です…。
↑*2 おお、情報ありがとうございます。
↑*1 > 古典的な規則と近現代の規則をどう混在化させて点数化するのか
点数化は、ボナメソでやるので、要するに、ルールセットのなかからユーザーは自分が使いたいルールを選択して、自分の好みの曲のMIDIファイルをソフトに食わせると、その自分が選択したルールそれぞれに対して点数をつけてくれるので、その点数が最大化されるような曲が自動生成されます。要するに、食わせたMIDIファイルと雰囲気の似た曲が自動的に作られます。

仮に古典的な規則をルールとしてユーザーが選んでも、食わせたMIDIが近代の曲であれば、それらのルールを守っていないものが多いわけで、そのルールを守らないことによるペナルティはゼロに近い値になります。つまりは、そのルールは無いも等しいと。

やなやな 2014/04/21 12:39 面白いお話ですね。

ちなみにボカロがいまだ人間っぽく聞こえないのは、同音意義語のイントネーション違い(強弱、周波数、音の切り方)とかの認識が不十分で、単に五十音をなぞっているからだと思うんですが、そういうのもアナウンサーなどの音声ファイルと対照する言語データを十分量用意すれば、これも教化学習で改善できるのでは、などと思ったんですけどどんなもんでしょ。

MtCedarMtCedar 2014/04/21 13:35 アナウンサーっぽいイントネーションで歌うボカロを想像して吹いてしまいました。
ボカロにするなら、やはり学習データとして歌を使うべきではないでしょうか。

TT 2014/04/21 13:50 ボカロというよりCeVIOっぽいですね。

数学の天才数学の天才 2014/04/21 20:07 自動作曲と言うとwolfram alfaを思い出します。
http://tones.wolfram.com/

ChiharuChiharu 2014/04/21 22:06 なんだかおもしろそうなことが始まっていますね。よそで記事にもなっているようで。応援しています!
http://nlab.itmedia.co.jp/nl/articles/1404/21/news141.html

kanokekanoke 2014/04/21 23:30 また面白そうなことをはじめましたねー。いろいろなものの自動化は本当にわくわくします。
創作活動が自動化できたら、これほど面白いことはないでしょうね。楽しみにしてます!

名無し名無し 2014/04/22 03:02 将棋から音楽に飛ぶとは想像を超えていましたが、経歴からすると自然でしたか。

ところで「ボカロ」/「ボーカロイド」はヤマハさんの商標のはずなのでここは「ヤネウロイド」とか立ち上げるのはどうでしょうか。

yaneuraoyaneurao 2014/04/22 04:31 ↑*3 おおお!! ねとらぼの記事に!!!
↑*2 CeVIO、初めて知りました。面白そうなソフトですね。
↑*1 そ、、そうか。いい名前考えておかないと…。

【お知らせ】本記事と関係の無いコメントは削除します。将棋関係の話題は該当する記事にコメントお願いします。

一ファン一ファン 2014/04/22 11:59 ボカロPデビューと思いきや、発声を含めて0からのスタートと知り「さすがやねうらおさん」と思いました。
音声はロボット的になるのではないかとありましたが、クラフトワークや、最近ならPafumeのように、オートチューンっぽいものを使ってロボ声風を使う楽曲はたくさんありますし、あとはヤマハのボカロ作成で苦労する「発声」のつながりが自然に再現できれば、化け物ソフトの完成ではないかなと期待しています。
将棋もそうですけど、こちらも期待できるものができたら、どこぞかで販売してほしいですね。
今からワクワクしています。がんばってください!

アルゴリズミックコンポーザアルゴリズミックコンポーザ 2014/04/23 14:36 このエントリー、大変興味深く、そして感動して読ませていただきましたが、お尋ねしたいことが溢れて止まりませんのでもしご回答いただければとても嬉しく思います。


まず、なぜボカロなのでしょうか?

歌が作りたいのか、音楽が作りたいのか、どちらでしょう?
声のフォルマントに魅せられて、声を楽器として使い音楽を作りたいのでしょうか?
それとも歌詞のある曲(=歌)を作りたいのでしょうか?

もし歌が作りたいということならば、歌詞はどう自動生成されるおつもりですか?
叙情的な歌詞を生成するのは難しそうですよね。
バロウズよろしくインターネットの海からカット・アップ手法を使ったりするのでしょうか?

また、「楽譜」に関してはエントリーの方法が素晴らしく面白そうで、なおかつ良いものができそうな予感がしますが、「音色」はどうされるのでしょう?
DSPも自作すると決められているのなら、ある程度は考えていらっしゃると思うのですが。
例えば「かっこいいフィルターの開閉方法」だとか「金属的だが温かみも持つスネア」だとかの音色はどう生成しようとお考えですか?

もしくは「とにかくボカロを作る、自動生成されたメロディーで歌を歌わせる」ということが目的で、DSPはボカロ専用として設計し、伴奏・編曲・ミックス等に関しては今回のプロジェクトには含まれていないのでしょうか?


矢継ぎ早に申し訳ありません。興味が尽きないのです。

.Lag.Lag 2014/04/24 03:15 先生と呼ばせて頂きます。二匹の黒猫の逸話で抱腹絶倒して以来の、先生のファンです。

本記事中の、禁則に関する説明にハッとさせられました。ちょうど先日、録画していた題名のない音楽会を見た後だったからです。大友良英氏をお招きしてのノイズ・ミュージックについての特集でした。その番組中で、司会の佐渡氏と大友氏は次のようなことを仰っていました。

大友氏「自分たちが音楽と思ってきいていたものと違う体験が出てくると人ってノイズっていうクセが・・・」
佐渡氏「僕がオーケストラでやってるのとはある種、違う、時代的には。どこかで、何かやっぱり共通項、それはもう人と人がこの自然の中で生きてて、何かがやっぱり失われずあるような気がしてしかたがないですよ・・・」
大友氏「だれかにとっては、尊いものかもしれない、というものの考え方だと思うんですけどね」
佐渡氏「音楽って自分探しみたいなところがあるじゃないですか・・・」
大友氏「こういう音楽に関わりだした時に何が音楽で何が音楽じゃないのか、何をノイズって思うんだろうっていっつも考えてたんですけど、本当に身もふたもないこと言っちゃえば、人それぞれなんですけど、その人の生き方とか、社会性とかと凄く関係があると思っていて、音楽ってもしかしたら、自分がこの社会に所属しているっていうアイデンティティの一つとしてこの音楽がすきだって、いってるようなきがするんです」

本記事で導入されたルールセットという概念は、一種のプロトコルなのかなと思いました。同じアイデンティティを持っている者同士だということを確認するための。

民族音楽という言葉には、Wikiの説明によると、ヨーロッパ側から見た周縁の者たちの音楽という意味が元々あったそうです。逆に言えば、その民族固有の音楽がある、ということではないでしょうか。この考え方は、民族音楽のWikiページによれば、音楽人類学者のジョン・ブラッキングやアラン・メリアムらによって、すでに広められたものであるそうです。一方、ろう者の方々は一般的な音楽を排除する傾向があった、とする研究結果もあるそうで、これをうけて、「あらゆる民族が音楽を持っている」という信念に反対する者もいる、という主張もWikiページにはあります。しかし、これは、大友氏の言葉を借りれば、未体験をノイズとみなした、ということであって、必ずしもあらゆる民族が音楽をもっているという信念が否定されるものではないのではと私は思います。音楽というものを、音抜きで定義しなければいけなくなるかもしれませんが。

民族音楽については、教授もスコラの中で興味深いことを仰っていました。
http://www.commmons.com/schola/schola11.html

私個人的な妄想では、先生のフレームワークは商業の域を軽く飛び出し、「統計やるならR、音楽やるなら●●だよ」と言われる日がくるような気がしております。先生がフレームワークを完成される日を心待ちにしつつ、応援しております。

申し訳ありません、あと1つだけ書かせて下さい。私は藤原伊織の文章が好きです。でも、もう藤原伊織の書く新しい文に触れる機会は失われてしまいました。そこで思ったのですが、先生のフレームワークを用いれば、私が書いた平々凡々たる文章をあの独特のリズムをもった散文に変換してしまうことが可能にはならないでしょうか?そうなれば、たとえば、日記を書く事がとても楽しみになりそうです。そんな未来の日記帳のようなものを、キングジ●あたりが製品化してくれないかなと、思いました。

散文失礼致しました。本当に応援しております。\(^o^)/

yaneuraoyaneurao 2014/04/24 07:29
> 一種のプロトコルなのかなと思いました。同じアイデンティティを持っている者同士だということを確認するための。

そうですね、プロトコルですね。grooveなんかも伝達できますね。この種の伝達によって体験や感覚を共有できるんですね。そのプロトコルをサポートしていない人にとってはその音楽はコミュニケーションエラーになり、ノイズに聴こえるわけですね。

> 私が書いた平々凡々たる文章をあの独特のリズムをもった散文に変換してしまうことが可能にはならないでしょうか?

文章の変換や物語の自動生成なんかも音楽の自動生成と手法は同じでいけると私は考えてます。しかし、綺麗な文を生成しようと思いますと、大規模なシソーラスのような意味データベースが必要になるので個人でやるのはなかなか現実的ではないような気も…。

フ〜フ〜 2014/04/24 19:41 やねうらおさん、お疲れ様です。
ブログも大変面白くてずっと拝見してました。
そう言えば、ツツカナの一丸さんも趣味の一つがDTMと書かれてましたよ。
お二人のDTM対談とかあれば面白い〜。

でも、将棋にも興味を失って欲しくない。
やねうらおファンからのお願いでした。

むずでょむずでょ 2014/05/01 20:15 洋楽と邦楽の良いところを混ぜ合わせてしまって
単語が崩壊するのを妄想するぜ☆ おはhelloタークとか☆

男性ボーカルが なめらかに女声になったり 若者になったり
年寄りになったりして 同一人物性とかもなくなったりして
あのCMの すばらしい歌は誰が歌ってるのかと話題になったあとで
ヤネウロイドであることが ニュースでばらされるところまで
妄想した☆ww

かにかに 2014/05/10 19:57 こんにちは。いつも楽しく拝見させて頂いてます。
やねうら王の今後も楽しみにしてますが、ボカロも面白そうですね。

色々ネットを徘徊していたところ、ニコニコ動画で似たジャンルで興味深いPがいらっしゃるのをみつけました http://www.nicovideo.jp/watch/sm22489726 
ライブ音源ってのはハード的にはこんなイメージなんでしょうか。

ぴーぴー 2014/05/19 21:58 >プロの作曲家になりたい人は、自分で商用ゲームでもプロデュースすればいいんだよ!
こんな単純なことに今まで気がつかなかったなんて!
ちょっとunityでゲーム作ってきます!というか入れてなかったんでまずDLから!
でも落としてる間暇なんで漫画でも読みながら待ちますけどたぶん漫画に夢中になってDLしてることなんて忘れて漫画読み終わったらとっとと寝ます!

名無し名無し 2014/05/26 10:06 エントリ違いかもですが、総務省がやねさんを募集してるそうです。

お役所始まったな! 総務省が通称「変な人」事業をスタート
来たれ、野望ある変人たち!
http://nlab.itmedia.co.jp/nl/articles/1405/23/news058.html

ボカロの研究費を総務省からいただく、てのも悪くないかと。
最大 300万円までらしいですけど。

yaneuraoyaneurao 2014/05/26 10:52 ↑私がやろうとしているボカロとか自動作曲はアイデア自体が新しいのではなく、実装手段が新しいだけなので…どうなんでしょうかね…(´ω`)

grgsiberiagrgsiberia 2014/08/15 03:20 歌詞も似たように解決できるのではないかと思いました.
与えられたメロディから,単語を接続し,良い評価のものを残す.
最初は呂律や響き具合などを考慮して出鱈目な歌詞を作詞するのですが,
自然言語処理が発達すれば,意味の通じる歌詞を生成できるようになるかもしれません.

そうすると,悲しい曲を聞きたい時に,音楽プレイヤーにテーマだけ入力すれば,
なんとなくそんな気分で,なんとなくそんな歌詞の曲が聞ける,
という未来が,この記事を読んでそのうちやって来るような気がしました.

実現を楽しみにしています.

 | 

1900 | 01 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 06 | 08 | 10 | 11 | 12 |
2015 | 01 | 02 |


Microsoft MVP
Microsoft MVP Visual C# 2006.07-2011.06