見出し画像

人力ボーカロイドの解説をする、東郷さんと友奈ちゃん

去年投稿した「カラオケにいく、東郷さんと友奈ちゃん」を例に人力ボーカロイドについて、僕の知識の範囲で説明します。

注意

  • この記事で説明する人力ボーカロイドは、キャラソンなどのボーカル音源を使用する方法ですが、セリフ音源を使用する方法にも使えると思います。UTAUは使いません。

  • VocalShifterで原曲のピッチ・ダイナミクスをコピーする方法を使います。だいたい偉いのはこの機能です。「あー、あれね」という方は読み進めてください。「なにそれ」という方はまず↓こちらの記事を参照してください。
    【VocalShifter】VocalShifter式調声(音程合わせ)のやり方

  • この記事では「できるだけ人間らしい自然な歌い方」を目指して人力ボーカロイドを作成します。

  • 人力ボーカロイド中級者~上級者向けの内容だと思います(偉そう)。よく使われるソフトの機能や使い方は省略しています。初心者の方はまずこの記事の最後に挙げる「関連記事」を読むことをおすすめします。

  • 他の記事で書かれていることと重複する部分があると思いますが、それだけ大事だということだと思います。



友奈「カラオケ楽しかったね、東郷さん!」

東郷「そうね、友奈ちゃん。また一緒に行き









すいません、文才がないのでダイアログ形式やめます。


1. ボーカル抽出

「カラオケにいく、東郷さんと友奈ちゃん」を作る時点ではSpleeterを使用しましたが、2022年はより精度の高いUVR(Ultimate Vocal Remover)が登場したので、それを使うといいと思います。使い方は以下を参照。

「カラオケにいく、東郷さんと友奈ちゃん」では東郷さん(CV:三森すずこ)のキャラソンから8曲、友奈ちゃん(CV:照井春佳)のキャラソンから5曲用意しました。
同じキャラクターの曲が少なくても、三森さんのように声が特徴的な人ならば、別のキャラクターの曲でも誤魔化せるでしょう。

ハモリについて

ハモリが含まれる部分は違和感の原因になるので僕は使用しませんでした。しかし、ハモリ部分を使わないとなると使用できる音の選択肢が限られてしまいます。音源が豊富なら問題ないですが、そうでない場合は以下の方法などでハモリを除去するといいと思います。

  • ボーカル抽出後、おときりすを使ってハモリ部分を削除

  • UVRのハモリ除去に強い Karaoke モデルを使ってボーカル抽出する


2. 音選び

音素の管理にはなめうぇーぶが一番いいですよ。使いやすいですよ…………………………

ラベル付け後に「け」の音を検索した結果
右上にピッチが表示されるのもうれしい

一度ラベル付けしたら、同じ音を簡単に聴き比べできるので、とても作業効率が上がります。

なめうぇーぶ単体でも人力ボーカロイドの作成はできますが、僕はVocalShifterで調声を行いたいので、なめうぇーぶは音素管理にのみ使用しました。

使いたい音素をトラックに並べて、wavファイルに書き出す

ここで音選びのポイントを挙げます

同じ発声の仕方で統一する

同じ人物でも、曲によって「かわいい感じ」「かっこいい感じ」など歌い方や声色が異なります。できるだけ同じ歌い方の曲の中から音を探すようにします(なめうぇーぶの音検索では、検索対象の曲を選択できます。2つ前の画像の左上のチェックボックス)。どの感じの曲に統一するかは、作りたい曲の雰囲気に合わせましょう。「カラオケにいく、東郷さんと友奈ちゃん」では東郷さんの曲を8つ用意しましたが、実際にメインで使用した曲は3曲程度で、その3曲にない音だけは残りの曲から探しました。

また、同じ曲内でも歌い方が異なる部分があります。分類すると「落ち着いた感じ」「伸びやかな感じ」「裏声」「クセ」の4つでしょうか。

  • 「落ち着いた感じ」:主にAメロ・Bメロ。ちょっと息が混じったような音

  • 「伸びやかな感じ」:主にサビ。音MAD的には「シンセ感のある音」ですね。

  • 「裏声」:サビの中で裏声になってる部分

  • 「クセ」:サビの中でも抑揚やしゃくりが効いてる音。この音を要所要所で使いこなせるとグッと良くなると思います。

同じ「あ」でも1つ選んでそれを使い回すのではなく、この4つの分類それぞれの「あ」を探して、作りたい曲のパートに合わせて音を使います。

目的のピッチに近い音を選ぶ

フォルマントを維持するピッチ変更アルゴリズムでも限界があって、音のピッチが目的のピッチと離れすぎていると、変な音になってしまいます。シンセ感のある音は比較的ピッチ変更に強く、息混じりの音などは弱いです。だいたい±3以内で選びたい。

キャラの特徴が残っている音を選ぶ

音を再生してみて、その1音だけでそのキャラクターだ!とわかる音をできるだけ選びます。これを意識せずに音を選ぶと、誰?という感じの仕上がりになります。また、特徴が統一されていれば発声の仕方が多少異なっていても調声したらわりと自然になります。

要するに

要するに、目的の歌詞とできるだけ条件が近い音を選べばいい!


3. リズム合わせ

音選びが終わったら、REAPERで並べていきます。原曲のボーカル抽出の波形に合うように並べていきますが、ボーカル抽出は無声子音(後述)が消えがちなので、それを考慮して配置していきます。

原曲ボーカルの波形とBPMグリッドを見比べると、無声子音が消えていることを考慮しても譜面上のリズムと微妙にずれてたりします。でもこのズレが人間らしいところなので、あえてそれに従います。
原曲ボーカルかBPMグリッドかのどちらかに統一してリズム合わせを行わないと、不自然なリズムになります。

グリッドに合わせる

音(子音 + 母音)をグリッドに合わせる場合は、子音の先頭ではなく、子音と母音の間をグリッドに合わせるのが原則です。

「さ」の音を置いた例

グリッドより前に出る部分は、UTAUでいうところの「先行発声」です。
子音と母音の境界は、無声子音か有声子音かで少し違います。

無声子音:発音するとき、喉が震えない子音(あ行、か行、さ行、た行、は行)。子音と母音の境界がはっきりしている。
有声子音:発音するとき、喉が震える子音(な行、ま行、や行、ら行、わ行
)子音と母音はなめらかに変化する。

有声子音をグリッドに合わせるときは、「子音と母音が混ざっている区間の終わり際」あたりがいいです。別の言い方をすると「グリッドから再生したとき、ギリギリその音に聞こえる位置」くらいがいいです。
参考↓

子音を長さを調整する

さ行、は行、な行、ま行の子音は比較的長いです。基本的にグリッドから大きく前に突き出てしまって問題ないですが、聴いてみて前の音を飲み込みすぎな場合は短くします。

母音の長さを調整する

母音が短いときはタイムストレッチで伸ばすか、長さが足りている別の母音をクロスフェードさせてくっつけます。
伸ばす場合、↑のUTAU原音設定のページにある通り、「固定範囲」の部分を伸ばしてしまうと間延びした音になるので、固定範囲より後の母音部分を伸ばします。

Q. 音を伸ばしたとき、境界部分でプツっと音が出るんですが
A. ↓

プツプツ音が出たときは、伸ばす前後のアイテムをクロスフェードさせてやりましょう。
(ストレッチマーカーを使うとどうしてもプツプツ音が出てしまう場合があるので、マーカー部分でアイテムを分割してクロスフェードさせます)

前後の音をクロスフェードさせる量

次の子音の3分の1くらいまででいいじゃないですかね。ここはあんまり理屈で把握してないです。
ただし、か行の前についてはすこーしだけ無音部を作るようにしましょう。

二重母音(「まえ(mae)」「らん(ran)」など、母音が連続する音)の場合は、前の母音を後ろの母音に伸ばして大きくクロスフェードさせます。何回か聞きながら自然な聞こえ方になるように調整します。大抵の場合、後ろの母音の長さは前の母音より短くなります。
二重母音は2つの音をくっつけるよりも、初めから二重母音になっている音を素材から探した方が自然になります。


トラックを分ける

ここまででリズム合わせをした音声が以下になります

音選びのルールをあんまり守れていませんが、なかなか理想的な音って無いのでこんなもんです。素材が足りず「伸びやかな感じ」の音だけで統一できなかったので、「思いつく限り眩しい明日を」「僕の手をつかんでほら」の部分は「落ち着いた感じ」の音をメインにしました。

で、1音ごとにトラックを別々にしている理由ですが、1トラックで並べるとクロスフェードした部分に2つの高さの音が混じってしまい、このあとVocalShifterで調声するときにきれいにピッチ補正できないためです。重なる範囲は十数ミリ秒程度だけですが、自然な人力を目指しているので少しでも良くなるように徹底します。

Q. REAPERでピッチ補正して全ての音をCに統一しておけばいいのでは?
A. 「目的のピッチに近い音を選ぶ」で説明した通り、ピッチを変えすぎると良くないのでやりません。また、しゃくりやフォールの効いた音だと、結局クロスフェード部分のピッチは水平にぴったり重なりません。

Q. REAPERで大まかに目的のピッチに補正しないの?
A. REAPERのSoloistもVocalShifterのピッチ補正アルゴリズムも違いがほとんど感じられなかったのでしてません。


4. 調声

原曲ボーカルとリズム合わせした2トラックをVocalShifterに読み込みます

原曲ボーカルのピッチを修正

原曲ボーカルのピッチを全選択、「編集可能(ピッチあり)にする」を実行し、明らかに検出に失敗している部分を手修正します。

ノート編集ツールとフリーハンドで修正する

「平滑化」をぶれ補正モード、強さ1でかけて、音間のつなぎをすこーしだけ滑らかにします。

強くかけすぎるとくねくねしたメリハリの無い歌声になるのでこれで十分だと思います。

ピッチとダイナミクスのコピー

原曲ボーカルのピッチとダイナミクスを、リズム合わせした2トラックそれぞれにコピーします(こちらも「編集可能(ピッチあり)にする」にしておく)。

こんな感じ

ピッチ調整

まず、無声子音の部分はピッチを元に戻します。無声子音は音楽的?にはただのノイズなので、ピッチがありません。むしろ複数の高さの音が混ざったノイズを1つのピッチに合わせようとすると変な音になります。
有声子音はピッチを持つ音なので、コピーしたピッチラインに従います。

「さ」の音

あとはもう特に調整は必要ありません。

ダイナミクス調整

抽出した原曲ボーカルには、よほど高精度なものでなければ少しカラオケやノイズ、リバーブが残っているので、それを考慮して-18dBくらいより小さい部分はカットします。

これをしないと歯切れの悪いダラダラとした歌い方になります。

明らかに前後の音と音量差があって違和感がある場合は、フリーハンドで調整します。

トラックを統合する

この後のフォルマント調整は連続する2つの音間を滑らかに変化させるので、ここまでで一旦音声を出力し、REAPER上で1つにまとめます。

無音部をカットし、1つにまとめる
(飛び飛びでぶつ切りだった音声がここで1つになって再生してみるとちょっと感動)

フォルマント調整

フォルマントの調整はこちらの動画がとても参考になります。

要約すると

  • カラオケと一緒に流しながら調整する

  • しゃくりなどでピッチが上下するところは、フォルマントも合わせて上下させる

  • ピッチが平坦な部分でもなだらかに変化させると単調さが軽減される

フォルマントはだいたい±2までにとどめています。声色を前後の音に合わせるために変える場合でも±3程度が限界です。

全て調声し終わった音声が以下になります。

ブレスを置く

ボーカル抽出した素材にブレスも見つかると思うので、要所要所に配置して人間っぽくします。

VSTをかける

普段のセリフ合わせや音合わせと同じです。ただし、調整したダイナミクスを潰してしまわないように、コンプレッサーはかけてません。「カラオケにいく、東郷さんと友奈ちゃん」ではカラオケという状況だったのでリバーブを強めにしています。

納得するまで調整

これで完成です。あとは何度も聴いてみて違和感のある音の音選び、リズム、調声を納得するクオリティになるまで繰り返します。「カラオケにいく、東郷さんと友奈ちゃん」の場合、
「さわがしいひびに らえないきみに」
「おもいつくかぎりまぶしいすを」
けないよるに ちてゆくまえに」
くのてをつかんでほら」
は改善の余地があると思います。友奈ちゃんパートはほぼ完璧じゃない?
「こわくないよ」とか本人すぎ(満足げ)。


発展

トライフォン

「カラオケにいく、東郷さんと友奈ちゃん」は「sa」「wa」「ga」とひらがな1文字に対応する音(ダイフォン)を並べて作りましたが、「-sa」「awa」「aga」と前の母音をセットにしたトライフォンで作成すると、さらに完成度が高くなる可能性があります。これは、ダイフォンを発声するときの口の動きはそれぞれ独立ではなく、前の母音からの口の形状によって微妙に異なると考えられるためです。トライフォンの音の組み合わせはダイフォンよりずっと多いので、全ての音をトライフォンで作成するには膨大な素材量が必要になります。

「ん」の発音が前後の音で微妙に変わる例

セリフのローマ字表記則

なめうぇーぶ等を使わずに、素材の音声ファイルをローマ字表記にして管理する場合の、僕の命名則です。

  • 歌い出しにはアスタリスク*をつける

  • 歌い出しまたは長音ではないあいうえお  → la li lu le lo(xa xi … でも可。僕は小文字打つときL派なので)

  • 長音のあいうえお:ハイフン-(aiueo派の人もいるはず。どっちでも特に困ってない)

  • 促音はアスタリスク*(=歌い出し扱い)
    例:きっと → ki*to
    ×kito ←トライフォンとして探したいときに繋がってなくて困る

  • 拗音は子音を大文字に
    例:しゃ → SHa
    haと区別し、母音だけ調べたいときは小文字で統一したいので

  • を → o。日本語のルール的には「お(o)」と同じ発音であるべきらしいが、「うぉ」と聞こえる場合はwoとする

  • ん → N
    な行の子音と区別する

  • つ → tu

  • とぅ → TWu

  • ち → ti

  • てぃ → THi

  • じ・ぢ → ji(またはzi)

  • ず・づ → zu(またはdu)

子音と母音の合成則

素材の音が不足しているとき、別々の子音と母音を合体させて目的の音を作成することはよくやる方法ですが、そのとき使うべき子音にはルールがあります。

五十音図の原理と外来音
https://www.jiu.ac.jp/japan/book/pdf/01_05.pdf

↑要約すると

  • 直音を合成するときは、ウ段の音の子音を使う
    例:「こ(ko)」の音を作りたいとき、「か(ka)」「き(ki)」「け(ke)」の子音kを使うより、「く(ku)」の子音kと任意の母音oをくっつける。

  • 拗音を合成するときは、イ段の音の子音を使う

実際に自分でゆっくり発音してみると、しっくりくると思います。

AI音声合成技術

(訝しむ小糸集、非公開になってた……)

キャラクターの音声データを学習させて、任意のセリフを話させるAIがじわじわ広がってきています。そのうちUVRみたいに誰でも簡単に使えるGUIが公開されるかもしれませんね。そうなると、この記事の「音選び」の手順がすっ飛ばせるので、かなり人力ボーカロイドの敷居が下がると思います(AIの精度やラベルデータの要不要にもよりますが)。
去年はNovel AIなど画像分野で大きな動きがあったので、今年は音声AIの波が来ると予想してます。

すごい動画

クセの強いangelaの歌声を完璧にコピーしている。この人力はトライフォンモデルで作成されています。ゲーム本編のルシフェルの膨大な音声データがあるからこそ為せる業。

歌わせてる感じではなく、本人が歌っているような完璧さ。
投稿者が解説しています。

他に作った人力例

セリフ人力の例。

ぼっち版。1話の弾き語り音声を使って作成。「いぃ~」はちょっとクセが過剰かも。

ダメよ~国民的アニメなんて【自転車泥棒合作2021】 残酷な天使のテーゼパートの人力(神谷奈緒)。


関連記事

↓の記事は日本語の音の分類が詳細に説明されていて、無い音を合成したり別の音で代用したりするための理論がわかります。

この記事が気に入ったらサポートをしてみませんか?