今までイベント検出やセマンティックセグメンテーションについての記事を書いてきましたので、今さらですがシンプルにCNNでクラス分類をやってみようと思います。
とは言っても、さすがに犬猫や数字の認識をやってもしょうがないので、
今回は、CD音源を聴いて、どれがミスチルの曲かを予測できるか?ということをやってみようと思います。
タスク
Mr.Children, Bank band, ウカスカジーのアルバム1枚ずつを使って学習し、
新曲が出たという想定のもと、未学習の新アルバムを聴いて、それがどのバンド名義の曲なのかを予測してみます。
ご存知ない方のために各バンドの説明をしますが、この3バンドは楽器メンバーは違いますが、ボーカルはすべて桜井さんが歌っています。(違う人のパートがある曲もありますが。)
つまり、同一人物の歌声かつ様々な曲の中から、バンド特有の雰囲気を認識できるかという難しさがあると思われます。
楽器や曲の雰囲気の特徴をちゃんと学習する必要があります。
とはいっても、アルバムなので、曲調も楽曲によって様々です。
モチベーション
そもそもなんでこんなタスクをやってみようと思ったか。
あれは高校生の頃、ちょうど桜井さんがミスチル以外の活動としてBank bandでCDを出した頃です。当時付き合っていた同じミスチル好きの彼女から、「ミスチル新曲出したの?」と、流れていたBank bandの曲を聴いてそう言ったのです。
僕は愕然としました。
「全然曲の雰囲気や歌詞が違うじゃないか!そもそもニュースチェックしとらんのかい!」
と。あれから15年が経ち、深層学習を勉強している身としては、
「もしかしたら俺は事前に知っていたからそう感じるだけなのか、今のAIなら認識できるのだろうか。できるとしたら、やはり物理的にそういう特徴量差が存在しているということになるのか」
そんなことを思い、今回実験してみました。
タスク詳細
CNNを用いて、各バンドからアルバム1枚ずつを使って学習し、その後にリリースされたアルバムをテストデータとして、
学習データ
Bank band: 沿志奏逢2
Mr.Children: REFLECTION
ウカスカジー: AMIGO
テストデータ
Bank band: 沿志奏逢3
Mr.Children: 重力と呼吸
ウカスカジー: Tシャツと私たち
前処理(特徴量抽出)
とは言っても、通常画像に用いるCNNは大きくても512×512ピクセル程度の2次元の行列を扱いますが、音楽の場合、1曲5分とすると、300秒×サンプリングレート16000Hzそもそも1次元の波形なので、2DのCNNには使えません。
1次元のCNNを使うという手もありますが、8秒程度の長さに分割した上で短時間フーリエ変換を使ってちょうどいいサイズの2次元行列に変換します。
(音界隈の王道としては音声認識等に適した特徴量であるMFCCなどが使われたりするのですが、知らない人も多いかと思うので今回は割愛します)
イメージは下の図のような感じです。
短時間フーリエ変換(STFT)とは
まずフーリエ変換とは、ざっくりいうと下の図のような時系列波形を様々な周波数の正弦波に分解する手法のことです。
ただし、フーリエ変換では、その波形の時間変化を表すことができないので、音楽のように時間変化する波形を適切に変換することができません。1曲分全部フーリエ変換すると、ただの1曲の平均
そこで、じゃあ短い時間に区切ってフーリエ変換してやれば、どの時間にどの周波数の正弦波が大きくなったかということがわかるので、音楽やスピーチなど、現実の音データを解析することが可能になります。
ただし、短く区切れば区切るほど、より俊敏な時間変化が解析できるようになるかというとそうではなくて、音は波なので、ある程度の時間が立たないと、振幅なんてわかりゃしません。したがって、適切な長さで区切ってやる必要があります。
(教科書では「不確定性原理」と書かれていたりします)
一般的には、音声認識をする場合は、数10msの窓に区切ってやることが多いそうです。
学習詳細
学習データ(8秒に分割したSTFT画像1805枚)
Bank band: 沿志奏逢2
Mr.Children: REFLECTION
ウカスカジー: AMIGO
テストデータ(8秒に分割したSTFT画像1133枚)
Bank band: 沿志奏逢3
Mr.Children: 重力と呼吸
ウカスカジー: Tシャツと私たち
ネットワーク:5層CNN
epoch: 50
結果
結果は以下のようになりました。全体としては74%の認識率。confusion matrixも載せておきます。デタラメに予測して33%ということを考えると、多少なりともミスチルらしさは認識できているようです。Bank bandだと思ったらウカスカジーだったっていうパターンが結構多いですね。
Accuracy: 74%
Bank band | Mr.Children | ウカスカジー | |
Bank band | 271 | 58 | 65 |
Mr.Children | 14 | 292 | 39 |
ウカスカジー | 102 | 13 | 273 |
考察
もう少し細かく見て考察してみましょう。以下に曲ごとの認識率を示します。
1位のSINGLESは100%認識できていますね。これはドラマ「ハゲタカ」の主題歌です。blank, special talkは特典でついてきたボーナストラックです。ウカスカジーのアルバムには毎回トークが入っているので、単純に音量が小さいから認識できているだけでしょう。
認識率の悪いところで行くと、ミスチルのaddictionがあまり認識できていませんでした。ファンからすると、ミスチルの中では電子音っぽい多いので、楽器的にミスチルらしくなかったのでしょうか。
逆にBank bandのハートビートは、ほとんどミスチルだと認識してしまっていたようです。Bank bandは比較的ゆっくり目の穏やかな曲が多いので、テンポの早い音量も大きめの曲はミスチルと勘違いしたのでしょう。同様の理由で有神論も認識率は低めでした。
ということで、たった1枚のアルバムから学習しただけですが、74%の認識率であったので、ある程度の「らしさ」は実際に学習できているということが推察されます。
過去の楽曲を用いて考察その2
さらに、全部ではないですが、過去の楽曲も予測してみました。
全体としては55%程度まで認識率は落ちてしまいました。アルバム1枚で25年分の曲の感じを全部学習できるはずはないので仕方ありません。
が、そんな中でも、認識率の高い曲と低い曲を以下の図にいくつかピックアップしてみました。
認識率の高い曲にはシングル曲が多かったのに対し、ほとんど認識できなかった曲にはアルバムのマイナーな曲が多かったです。
これはもしかすると、アルバムの中では色々な曲調にチャレンジしているが、シングルとしてCD発売する必要のあるようなプレッシャーのかかる曲作りに関しては、やはり「ミスチルらしさ」が無意識のうちに出てきているのではないかということが推察されます。
まとめ
大好きなミスチルの曲の「らしさ」をAIで学習できるか検討しました。
・アルバム1枚分の学習を行ったところ、最新のアルバム内の楽曲にて74%の認識率であった。
・認識率の高い曲、低い曲を比較することで、穏やかな曲調の多いバンド、アップテンポの曲が多いバンドなど、大まかな特徴を捉えて予測を行っているところが伺えた。
・過去の曲を予測すると、シングル曲の認識率は高い傾向が見られた。これは、無意識にCD発売する(=売上に対する)プレッシャーから、無意識にミスチル「らしい」曲になりやすいことが推察される。
発想の飛躍を含むが、歩き方で個人特定ができたり、名人が直感で指していた将棋のセオリーをAIが変えつつあるように、あらゆる分野で、人の無意識な部分を深層学習により可視化、認識することができるのではないかという可能性を感じた。