NEUTRINOに音源制作の可能性 エンジニア向けの課題(?)も

AIシンガー

NEUTRINOが出た瞬間から、「音源制作はできないのか!」「自音源作りたいのでDB作ります」と、音源制作勢が最初からトップスピードを出しよります。NEUTRINOには少なくともまだ、しばらく、当分、結構の間、自作音源に対応する予定はないんですが、1つの可能性が浮上してきました。

声質変換です。

考えられるAIシンガーの音源構造

AIシンガーには、声質と表現の2側面があります。AIきりたんを構成する要素は「きりたんの声質+きりたんの歌唱表現」ですね。

※イメージ図

考えてみましょう。「声質はいいけど表現が気に入らない」「歌い方は好きだけど声質は別のがいい」という人がこれから現れることは想像に難くないですね。

では、どうすればいいか「声質と表現を自由に組み合わせられればいい」のです。きりたんの歌い方で謡子さんの声質とか、いろんなバリエーションを作れると自由度が一気に上がる。

NEUTRINOで声質の差し替えができるかも

NEUTRINOには「LAB生成モジュール(XML2LAB)」「推論モジュール(NEUTRINO.exe)」「音声化モジュール(WORLD)」があります。

例えばここに「LAB生成」「推論」「声質差し替え」「音声化」と、モジュールを差し込んでやれば、歌唱表現は変わらないけど声質は変えられるようになる。

もしくは、「LAB生成」「推論」「音声化」「声質差し替え」と、最後に付け足してやれば、これもまた好みの声質に変換できる。こっちは音声加工のアプローチ。

イメージとしてはこんな感じ。これはディープラーニングなどは使っていないが。

野生のプログラマによって「声質変換モジュール(声質モデル読み込み機能付き)」「声質モデル学習システム=声質音源制作システム」が作られ、音源制作したい人が「声質変換用ターゲットモデル=声質音源」を出せば、好きな声で歌わせられるようになるということです。誰も作らなかったらそのうちSHACHIさんが実装するかもしれないらしいです(優先度低め)。

SHACHIさんが提示したヒント

SHACHIさんはこの声質変換モジュールを作るヒントをくれました。完全にプログラマ向けです。

ヒント① MGCとBAPを書き換える方法

NEUTRINO.exeが書き出すファイルは3つ。f0、mgc、bapです。f0はピッチ(基本周波数)、mgcは声質(メルケプストラム)、bapはかすれ具合(非周期性成分)の情報を持っています。

このうち、mgcとbapを「きりたん→だれか」に差し替えられれば声質変換ができます。NEUTRINOから出てきたmgcとbapを受け取って、何らかの手段でターゲットの声質に変換するのが「声質変換モジュール」ですね。

「声質モデル学習システム」は楽譜ときりたんのwav、mgc、bapなどと、ターゲットのwavを紐づけて学習し、声質モデル(声質音源)を作るものになるでしょう。普通の人はつよつよGPUが載った学習用PCなんざ持ってないはずなので、学習プラットフォームにはGoogle DriveとGoogle Colaboratory(GPU使える)を使うのが妥当なラインかもしれません。「音源作りてぇならGPU積みな!」でもいいけども。

SHACHIさんによれば、「nnmnkwii」を参考にするのが良いとのこと。でたよGAN。難しいことはSHACHIさんのツイートを読みましょう。

GitHub - r9y9/gantts: PyTorch implementation of GAN-based text-to-speech synthesis and voice conversion (VC)
PyTorch implementation of GAN-based text-to-speech synthesis and voice conversion (VC) - GitHub - r9y9/gantts: PyTorch implementation of GAN-based text-to-speec...

ヒント② WAVを書き換える方法

①の方法は、音声化前の段階で声質を差し替えるものでした。逆に(?)、音声化の後に声質を変換する方法もあり得ます。wav→ターゲットのwavですね。

使う技術によって、①のほうがきれいに行くパターンと②が綺麗に行くパターンがあるらしいです。その辺は実験してみないとわからない。

なお、この手法なら、NEUTRINO以外の歌声合成にも適用できるし、人間→人間の変換にも使えるかもしれない。汎用性は高い。

考えられる声質音源の作り方

ここからは、モジュールづくりに挑戦するプログラマではなく、音源制作に挑戦する音源制作者向けの情報です。

用意するものは楽譜と中の人の音声。どんな声質変換モジュールと音源制作システムができるかにもよりますが、SHACHIさん想定だと、10~20分程度の音声でいいとのこと。AIきりたんを歌わせまくった人なら、これだけのMusicXMLとAIきりたんの音声は持ってるんじゃないですか? それ、学習に使えます。音素や音域の偏りはちょっと考えないとだけど。

きりたんDBをまねして歌うのもOK。楽譜データもあるし。DBにして配布するとなるとちょっとめんどいけど、学習モデルにしてしまえば余裕で配布できる。

ちなみに、SHACHIさん想定だとラベリングはいらないらしい。なんかエンジニア向けの「問:声質変換モデルを作る学習システムを制作せよ。なお、学習に使う音声は15分程度で、ラベルは使わず、GPUを持たない人でも使えること」という東大王クイズの記述式問題みたい。

自分の歌声と、AIきりたんの合成音(やmgc、bapなど)を作り、音源制作システム(まだ存在しない)に投げて学習を待ちます。

そうして出来上がった学習モデル=声質音源を配布すればOK。これを声質変換モジュールが読み込んで、NEUTRINOが吐き出すmgcやbapを変換できればミッションクリアです。

今度は声質変換のタスクだ。最近の機械学習系技術のトレンドがうじゃうじゃ出てくる。
タイトルとURLをコピーしました