この記事は eeic advent calendar 2018 の6日目の記事です。
概要
アオリちゃんをすこれ。
もう少し詳しい概要
好きなキャラを自由に喋らせたい!
でも綺麗なデータがない!
綺麗なデータを作りたい!
ということで楽曲のボーカル抽出を試みたら意外に難しかったという話。
純粋にボーカル抽出に興味がある方はDeep U-net を用いた歌声分離の方が大いに参考になると思います。
君はアオリちゃんを知っているか
スプラトゥーンというゲームをご存知だろうか。
去年の夏に続編となるスプラトゥーン2が発売され、現在もなお多くの人にプレイされているゲームソフトの第 1 作である。
今までにないカジュアルなシューティングゲームであるとか、インクを塗り合うという斬新なシステムであるとかで人気を博したと思うのだが、魅力的なキャラクターも大きな要因であると考えられる。
そのキャラクターの中でも異彩を放っていたのが、プレイヤーのナビゲータとして登場するアオリとホタルからなるアイドルユニット、シオカラーズである。
彼女たちはイカ界のトップアイドルユニット「シオカラーズ」。
— Splatoon(スプラトゥーン) (@SplatoonJP) 2015年5月11日
天真爛漫な「アオリ」とクールな「ホタル」の二人組で、バトルに関する情報番組「ハイカラニュース」の司会を務めているらしい。
トークはユルいが、歌唱力はバツグンだそうだ。 pic.twitter.com/vfXYQufHbK
私はこの 10 本足の歌姫たちに心を奪われてしまった。
僕はシオカラーズのラブリー元気担当 「アオリ」 推しであるので、アオリちゃんに関して何かしたいと考えていた。それで、声に関して何かできないだろうかという気持ちになった。
アオリちゃんの声
キャラクターの声というのはそもそもいくつかのパターンを用意して喋らせるものが多く、その限られたパターンの声もおよそ人間の声とは似つかぬもの出ることがままあるものだが、シオカラーズはアイドルとして作られたキャラクターなので、歌声が存在し、声優も公開されている。アオリちゃんの声は声優さんが喋った音源を加工したものとなっている。
イカ界のトップアイドル「シオカラーズ」、アオリとホタルのボイスはこちらの方々にご担当いただいた。
— Splatoon(スプラトゥーン) (@SplatoonJP) 2015年9月14日
楽曲の歌声はもちろん、ハイカラニュースなどのゲーム内のセリフまで、シオカラーズの音声はすべて彼女たちが吹き込んでいる。 pic.twitter.com/SZYHjHjDoE
アオリちゃんの声優は keity.pop という名前で活動している[twitter]。ご本人もシングル曲を出している.ツイッタープロフィールにリンクがあるので是非聴いていただきたい。なお、楽曲を聴く限りでは、元の声にアオリちゃんの面影はあまり感じられない1。
彼女たちの歌は CD として発売されているため、合法的に入手可能である。
この中に、一部ではあるが、アオリちゃんの生声が収録されているので、これを見てみたい。(収録されているのはアオリ、ホタルそれぞれ 4 種類。実際には 20 種類以上パターンがありそう。)(ライブ2のMCで喋っていたのは追加で収録したのか、編集力の成せる技なのか、もともとたくさん録っていたのか謎である)(任天堂様におきましては是非収録音声を全部販売してほしいものであります)(オタク特有の括弧表現)
今回はその CD 音源をデータとして使用することにする。
CD 音源をそのまま載せるのは良くないのでスペクトログラムを載せる。
でも何いっているかわからないと思うので、筆者がシャドーイングした音声をのせます。(キモいので注意)
気になった方はCDを購入してください。
結論から言うと人間による発話は困難。(書き起こしができなさそう)(歌には歌詞がある)
みなさんがどのように書き起こすのかは知りたい。
ボーカル抽出
歌付き楽曲から歌声だけを取り出したいというのはリミックスなどの場面で必要とされるようで、ググると情報が出てくる。しかし、そのほとんどが必要な音源としてオリジナル音源+カラオケ音源を前提としているものであった。筆者は詳しくないが、楽曲CDにはおまけとしてオフボーカル版が入っていることが割とあるようである。しかし、シオカライブCDにはオフボーカル版は同梱されていない。
オブボーカルデータを生成してから差分を取る手法
ボーカル除去はボーカル抽出は似ているようで割と違うようである。
筆者は Audition を使っているが、この中にボーカルを削除する機能がある。これを使うと全体の音は歪んでしまうものの、結構しっかりボーカルを消すことができる。
他にも簡単な手法としては、ステレオ音源の片方を位相反転させてもう片方と混ぜることで、位相反転の影響を受けない音(マイクの正面の音、すなわちボーカル)のみを除去することができる。雑だけれど。
このように何らかのやり方でオフボーカルデータを作ることができれば、ボーカル抽出ができるのではないかと考えたが、今回はやっていないです。オフボーカルデータがそこまで綺麗にできないので難しいのではという気もしている。
今回やる方法
ちゃんと書きたかったのだが時間がない。
音源分離タスクで使用される非負値行列因子分解を使用して、アオリちゃんの声のスペクトル基底を学習し、分離に用います。
教師ありNMFというやつです。
使用するデータ
-
前節で説明したアオリボイス
-
「トキメキ☆ボムラッシュ」3
シオカラーズファン待望の追加楽曲としてシオカラーズ2ndライブで初公開されたソロ曲。ホタルちゃんは「スミソアエの夜」。
amiiboを読み込ませることでゲーム中でも聞くことができる。
ライブで初公開されたのだが、その様子は Youtube に上がっているので、興味がある方は参照されたし。リンク4
今回は、アオリボイスを使って学習を行い、トキメキ☆ボムラッシュの歌い出しの部分のみのボーカル抽出を行う。
結果
駄目です。
なんか歌声の一部が取れている感じの結果になりました。伴奏っぽい音も入っていますね。
音声の調波構造を学習できていないのか子音っぽい部分しか分離できていない気がします。
ただ、学習用の音声データを増やすことで改善ができそうという感じがしますので、とりあえずやって見たにしてはうまくいったのかなと。
Deep U-net で試してみた。
概要でちらっと書きましたが、純粋にボーカル抽出に興味がある方はDeep U-net を用いた歌声分離では、たくさんの楽曲データを使って学習した歌声分離器を作っています。素晴らしいことに、webアプリが公開されておりますので、試しに突っ込んで見ました。(大きなファイルは突っ込まないように注意してください!)
もう、これでいいのでは。
所感
カラオケ音源無しのボーカル抽出はしんどい。
任天堂はオフボーカル版を売ってください!
スマブラ楽しみ。
記事書くの大変。(時間があったら加筆します(しない))