ボイスロイドは音声入力できるようにならないだろうか

ボイスロイドを調整する際に困るのは、アクセント調整だったり、音の高さの調整だ。

普段何気なく喋っている日本語に対して、モーラとか普通は知らない。

 

違和感は感じるが、どこが間違えていて、どう修正しなければならないのかも示してくれない。

 

文字の入力まではキーボードでいいのだが、ピッチ遷移やら高さやらの入力だったり、文字と音素とのズレは音声で入力できないものだろうか。

 

UIとしては、入力した音声波形と、対応する音素を時間軸で編集できるようにし、ピッチの相対的な高さを入力するといったのはどうだろうか。

 

もちろん自分の声を聞くのが嫌だからボイスロイドを使っているという人はいるだろう。

VegasPro18でのボイロ動画手順メモ

本記事における注意事項

VegasPro18を購入したものの、ネットを検索しても出てきません。

ましてボイロ動画を作っている方は皆無といってもいいです。

自分のように購入してしまったがために使いこなしたいがわからない、という人向けに、自分の作業内容をメモとして残しておきます。

 

ただ、現状では数分の動画を作るのに数時間かかってしまい、編集の途中で疲れ果ててしまっているので、あまり効率的ではないと感じています。

VegasPro自体が海外での動画制作を考慮しており、ボイロ動画とは相性が悪いのではないでしょうか。

自分が知らないだけ、という可能性も大いにあります。その点にご注意して読んでください。

 

 

ボイロ動画制作フロー

  1. 録画データや画像などを読み込ませる。
  2. 録画データや画像タイムラインに並べてみて、全体の構成を考える。
  3. 録画データの不要な箇所をカット
    この段階ではセリフを考えるための荒編集
  4. VegasProで再生しながら、ボイスロイド側でセリフを入力する。
    VegasPro側でマーカーやセクションなどで後でセリフ調整位置をマーク。
    全部のセリフの調整が終わったら、音声WAVファイルを吐き出す。
    ボイロでWAVファイル出力時、終了ポーズを決めておく。
  5. 字幕用にセリフを1つのテキストファイルに保存。
    改行を削除、UTF-8で保存
  6. VegasProで音声ファイルを読み込み。
  7. VegasProで字幕ファイルを読み込み。
  8. 音声の長さに、字幕の長さを揃えていく。
    長い文章の場合は画面から溢れているので改行をつけていく

複数のキャラでやり取りする場合は、voiceroid-scriptを使う方法もあります。

 

作業ウィンドウ説明

f:id:qpci32siekqd:20201102190815j:plain

上のトラックになるほど手前に表示される。

トラック全体で入れ替えができるので神経質になる必要はないが、1つのトラックに入れるのは同じ種類の素材に限定した方がいい。結果、トラック数が増える傾向にある。

 

字幕とボイロの音声は2トラック並べて置いた方がいい。
音声の長さに合わせて、字幕の長さをマニュアルで揃えないといけない。

1つずつボイロの音声と字幕を追加していく、という編集スタイルは難しいので、一度に全部吐き出す方がいい。というのも、一括で字幕のフォントを変えることができない。字幕のテンプレートは保存できるが、トラック上の複数のイベントを選んで一括でフォントを指定する、というのができず、1個ずつ開いてテンプレートを選んでは数が多すぎてやってられない。

 

 

 

 

画像の拡大・縮小

f:id:qpci32siekqd:20201102194543j:plain

イベントのパン/クロップをクリック

 

f:id:qpci32siekqd:20201102194658j:plain

UIが直感的でないので注意。枠の範囲が表示範囲に対応してるので、基本枠の右側に配置すれば、プレビュー画面でも右側に置かれる。

 

f:id:qpci32siekqd:20201102195313j:plain

だが、このようにプレビュー画面の右側が空いているにもかかわらず、寄せれないという動作になりやすい。

 

f:id:qpci32siekqd:20201102195356j:plain

この問題は右クリックから出力アスペクトに一致を選ぶといい。

 

f:id:qpci32siekqd:20201102200108j:plain

また枠が拡大はできるが、横か縦しか動かせないという場合がある。

その時は移動方向がXかYに限定されている。

上の図の箇所を何回かクリックして、自由に移動できるように切り替えれば動かすことができる。

 

f:id:qpci32siekqd:20201102205502j:plain

複数の画像で位置を揃えたい時は、コピー元のイベントをクリックして選択後、ペースト先のイベント上で右クリックし、「イベント属性を選択的に貼り付け」を選ぶ。

 

f:id:qpci32siekqd:20201102205640j:plain

上記のようなウィンドウが出るので、「ビデオ イベント パン/クロップ設定」をペーストすると同じ位置にペーストできる。

 

複数の画像に対しても同様の操作でペーストできる。

 

f:id:qpci32siekqd:20201102210113j:plain

複数選択するときは、カーソルの後ろのすべてのイベントを選択することもできるので、1つずつShiftキーを押しながらクリックしなくてもよい。

 

WAVファイルの読み込み

f:id:qpci32siekqd:20201102210533j:plain

ボイロのWAVファイルはドラッグアンドドロップで置くことができるが、上の図のように隙間が空いてしまう。

 

f:id:qpci32siekqd:20201102210712j:plain

その時はトラック上の何もない所を右クリックし、「ギャップを閉じる」を選ぶと間が詰められる。

音声だけではギャップを閉じなくても、無音が少し挟まるだけなので気づかないが、字幕と長さを揃えることを考えるとギャップを埋めておかないと、位置を合わせるスナップ機能を使ってもズレやすくなるので、合わせておいたほうがいい。

 

ボイロ2人で掛け合いをするような場合は、相手が話してる箇所は逆にギャップを閉じられると困る場合がある。

その時はギャップを埋めたいイベントを複数選んでから、ギャップを閉じるれば、範囲を指定することができる。

 

f:id:qpci32siekqd:20201102212110j:plain

音声間の待ち時間はボイロ2で出力するときに、終了ポーズで決定しておくほうがいい。1つずつ音声間の間を調子絵するのは難しい。

 

f:id:qpci32siekqd:20201102211950j:plain

上の図の右下にスナップのオン/オフ切り替えボタンがある。

スナップをオンにすると、他のイベントとぴったり合う箇所で青色の縦線が出る。

 

複数のイベントが近くにあると狙った所にスナップできなかったりする。

その時はタイムラインを拡大する。

 

 

 

 

実写映像を使う時の音処理について

 f:id:qpci32siekqd:20201102215025j:plain

f:id:qpci32siekqd:20201102215323j:plain

ボイスロイドによって声の大きさが異なるので、複数のボイロを使う場合は音の大きさを揃えたい。

各トラックの音をメーターで見比べることができる。

各トラックに対してVSTプラグインを設定することもでき、全てのトラックを合わせたマスタートラックにVSTプラグインを設定することもできる。

 

 

f:id:qpci32siekqd:20201103074039j:plain

 トラック全体にVSTプラグインを入れたい場合はトラックに入れることができる。

 

f:id:qpci32siekqd:20201103074257j:plain

 ボイロの音声ではノイズがないので、あまり出番がないが、実写映像を使うときにはノイズの処理が必要となる。

デフォルトで、ノイズゲート、EQ、コンプレッサが入ってる。

 

f:id:qpci32siekqd:20201103075335j:plain

他のVSTプラグインを使いたい場合はユーザー設定でVSTプラグインを先に読み込んでおく必要がある。

VSTプラグインが置かれているフォルダを指定してスキャンするが、それなりに時間がかかる。

 

 

字幕の設定

f:id:qpci32siekqd:20201103133740j:plain

テキストファイルから字幕を作ることができる。

txtファイルだと一行が1つの字幕になる。

ボイロの音声と同じ個数になっているようにしていると、音声ファイルと並べるときに楽。

ボイロで"\"を分割記号として利用している場合などは、VegasProで読み込む前に置換などで取り除いておく。

 

f:id:qpci32siekqd:20201103134048j:plain

フォルダはtxtファイルを指定する。テキストファイルはUTF-8でなければならないので、変換しておく必要がある。

 

プリセットはフォントの装飾だが、こちらもあらかじめ作っておく。

 

f:id:qpci32siekqd:20201103134441j:plain

OKを押すと、1行ごとにイベントが作成される。上が字幕、下が音声ファイルでいb根との個数は同じだが、イベントの長さなどは適当に作られるので、後で音声と合わせる作業が必要だ。

また文字数が多い場合、後で改行の修正が必要となる。

 

 

字幕と音声の位置合わせ

f:id:qpci32siekqd:20201103133613j:plain

1つずつタイムライン上で合わせてもいいが、どうせなら一括で調整したい。

ウィンドウから「編集の詳細」を選択すると、各イベントの開始位置や終了位置がわかる。

 

f:id:qpci32siekqd:20201103135034j:plain

このような形で表として表示される。

表のコピーしたい範囲をマウスで範囲選択するか、開始をクリック後に終了範囲でShiftキーを押しながらクリックする。そして右クリックからコピーを選択する。

 

f:id:qpci32siekqd:20201103135424j:plain

これがペースト後のもの。

動作が安定していないのか、バグなのかわからないが、ペーストしても秒以下が一致しない時がある。

 

f:id:qpci32siekqd:20201103140031j:plain

開始と長さをペーストした状態だが、終了位置がなぜか異なる。

動画的には一瞬なので問題ないので放置してもいいが気になる場合は、終了位置までコピー&ペーストした方がいい。

 

(おそらく)VegasProでの制限

自分が機能を知らない可能性もありますが、やりたくても出来なかったことです。

 

  1. 注目ポイントに矢印をつけたい場合がありますが、矢印は別のソフトで作って画像として読み込み。

  2. PSDファイルの読み込みには対応しているが、PSDtoolkitのような立ち絵を切り替える用途では使えない。

 

 

 

想定される疑問

Q:目パチ、口パクをさせたい場合どうすればいいですか?

A:AviUtlのPSDtoolkitのような便利なソフトがないです。

 

Q:VegasPoroが頻繁に応答不能でフリーズする

A:VegasPro Build 373でも固まります。

 

Q:画像が思うように縮小できない

A:トラックモーションで縮小しないと難しい。大きさを変えたいと思うたびにトラック数が増えるイメージ。動画素材だけの場合、縮小して余白ができる方が事故なので恐らくそういう想定。

 

Q:Webで情報がないのだけど?

A:古いバージョンしか日本語ではない。英語では多少増える。Twitterで検索かけてもほとんど出てこない。幸いマニュアルは詳細に書かれている。書籍も実際編集していると情報が足りていないと思う。

 

Q:VegasProで向いてるボイロ動画は?

A:実写映像素材のみの動画。立ち絵を目パチ、口パクをしたいと思った時点でVegasProだと機能が足りていない。立ち絵をジャンプさせるといったのも難しい。静止画に対して何かしたいと思った時点で他のソフトを使った方がいいです。

 

Q:字幕と音声の長さを揃えるのが大変なので、何かツールが欲しい。

A:探したがなさそう。一括で音声の長さを字幕に適用するというのがあれば楽になるはず。もしくは音声の長さを.strファイルに書き込むといった方法は考えられる。そもそもVegasProでタイトル以外に字幕を付けるのを想定してなさそう。

 

Q:AviUtl、RecotteStudio、VegasPro、Davinci Resolve、Premiere Pro、PowerDirector 、どれを使うのがいいのか

A:AviUtl。次はPowerDirectorかPremiere Pro。ついてくる3Dモデル使いたい場合はRecotteStudio。VegasProとDavinci Resolveはカラーグレーディングをしたい人向けで、立ち絵との色が合わないので難しい。

Synthesizer Vの、旧とAIの違い


Synthesizer V voice - Regular vs AI

 

Synthesizer Vのバージョンアップがあり、AIという名前が付き、より自然な歌声を出すことができるようになったそうです。

 

旧バージョンでもDNNを使っていたとか出ていたように記憶しているのですが、AIをコマーシャル的に全面に出していこうということなのだと理解しました。

 

聞き比べると確かに自然になっているのはわかるのですが、どうして自然に聞こえるのかが気になるところです。

なので波形を見比べてみました。

 

旧バージョン

f:id:qpci32siekqd:20201031103632j:plain

AIバージョン

f:id:qpci32siekqd:20201031103727j:plain

 

まず旧バージョンですが、音量の波形を見ると上下対称です。

狙った周波数を人工的に作りに行こうとすると、サイン波を使うと思うので、上下の振幅は同じになるはずです。

AIバージョンを見てみると、上下対称ではない箇所がいくつか確認できます。
発音が短い部分は気づきにくいと思いますので、伸ばす音を見ると確かに変わっています。デジタル的には単なる時系列データなので処理できるのはわかるのですが、あまりこういった処理をするプラグインはなかったのではないでしょうか。

 

伸ばす音については、旧バージョンでは、一定の長さ以上はビブラートが全てかかっていました。
全く同じ高さの音を伸ばすとケロケロボイスになりやすく、手で修正するときの常とう手段として、まっすぐに伸びた音に対してはビブラートをかけるのが普通ではなかったでしょうか。

AIバージョンは、上の画像のスケールで見えるようなビブラートを全ての長音にかけていません。縦軸がdbなので大きく変化しないと見えないからではあるのですが、自然と伸ばすところと、大きくビブラートをかけるところを区別しているように見えます。

(プログラムで単純に音の長さだけでビブラートをかける/かけないの判断をしていない)

全くビブラートがかかっていないわけではなく、上のdbでは見えないくらいの小さい数Hzの揺らぎの中に納まっています。

 

 

次に気になった点は、画像中央付近の長音部分です。

旧バージョンは同じ大きさの音でビブラートがかかって急峻に音が切れるような感じです。人によってはここをフェードで音を小さくするというのはやっていたかと思います。AIバージョンもフェードがかかっているように、音量の波形からは見えます。

ただ単純なフェードではなく、スペクトルを見るとフェードで音が小さくなっていくにしたがって、高音から徐々に倍音が消えていって、低音の基本周波数が最後まで残るといったフェード+イコライザを組み合わせたような処理に見えます。

静的なイコライザだと時間軸に関係なく狙った周波数を落としますし、ダイナミックイコライザでも倍音の変化に追随して落とす周波数を変えるか、基準より大きな音が出たときにだけ落とすといった処理なので、あまり見ないタイプのEQではないでしょうか。

(そもそも人の声に対してEQをかけるかけるのが主流なので、機械音声用のEQをわざわざ作らないとも言えますが)

 

f:id:qpci32siekqd:20201031111041j:plain

ちなみにNEUTORINOのAIきりたん(上図)は、長音はそのまま伸ばしますし、基準周波数の揺らぎがないです。倍音の周波数は揺らがないです。(倍音以外の成分が揺らぐ)

ボーカロイドに対して倍音の数が多くなり(従来だと3倍音とか)、より人間らしいクリアな音に聞こえるようにはなったのですが、楽器で同じ音を伸ばしてるように感じました。

上の波形だと長音部分は音の大きさがそのままで、スペクトルもずっと伸びています。

(NEUTORINOではMusicXMLで音階を正解として読み込ませていて、音の高さと長さに合わしに行こうとし過ぎているのかもしれません)

 

 

旧バージョン

f:id:qpci32siekqd:20201031123624j:plain

 

AIバージョン

f:id:qpci32siekqd:20201031123709j:plain

 

先ほどと同じ波形ですが、書き込みを変えました。

旧バージョンだと、指定した音階通りの高さにとどまっている時間が長いですが、AIバージョンでは、指定間の音階の遷移に対して補間されているように見えます。デジタルの量子ビットが増えて中間諧調まで表現できるようになった、そんな感じでしょうか。

 

「けー」と伸ばしている箇所ですが、伸ばしている途中で音階が変化するわけですが、e/e/の2つの音素ごとに音階を指定すると、指定通り2回音が鳴るのが旧バージョンに対して、音量を一瞬大きくして強調する以外に、高音の倍音を一瞬出していて一瞬発音がよりクリアに聞こえます。

このあたりはピッチをいくら調整しようが無い倍音が出るわけではないですし、イコライザは基本削る方向だけなのでMelodyneをいくら弄っても出来なかった箇所ではないでしょうか。

 

他には、AI版は下から上に音が上がる部分は、一旦より高くオーバーシュートしています。ピッチをわざわざ書いていたのが自動でやってくれるので楽になりそうです。

 

伸ばす音の途中で、旧バージョンは音量は一定で音階だけ変化させていたのが、AI版だと音量も音階も変化させているといった違いも見えました。

 

高い子音が音量が一瞬大きく目立っていたのが、De-essをかけたように目立たないようになっていて、このあたりは機械学習に使っている学習データ時点は生の録音ではなく、前処理としてDe-essをかけたりしたものを使用しているように感じました。

(単純に録音した人間の音ではなく、商業流通しているポストプロダクションされたデータを学習データとして利用しているのでは?)

 

 

2曲目

旧バージョン

f:id:qpci32siekqd:20201031135449j:plain

 

AIバージョン

f:id:qpci32siekqd:20201031135527j:plain

 

一番の違いは、歌の入りでしょう。

綺麗な倍音が出る前の歪んだ波形がAIバージョンでは表現されています。

旧バージョンだといきなり綺麗な音が出てくるので、綺麗すぎるというか、いかにも機械音声っぽい印象を受けます。

人の発音を見てピッチの波形だけ合わそうとしても自分は似せることができませんでした。急峻なカーブのため、チャープ音になりがちだったのが表現できています。

 

次は息継ぎのブレスが入っていることです。

無音が続くと目立つので、そこをブレスで埋めた感じでしょうか。

人の声をマイクで撮るとブレスが気になったりするので、後処理することがありますが、気にならないレベルになっているように感じます。

ブレスの速度も1回目のブレスと2回目のブレスで違うようですね。

 

細かいところだと、伸ばしている部分ですが、AIバージョンは倍音ごとの大きさを微妙に揺らしているようです。

(旧バージョンはずっと同じ大きさ)

倍音の周波数もAIバージョンの方が旧バージョンよりも大きく揺れています。

(といっても±2Hz→±5Hz~7Hzくらいですが)

 

あとは同じ音階のa/eの繋ぎでしょうか。

旧バージョンだと大きさが異なっているためなのか2回発音してるように聞こえるのですが、AIバージョンだと繋がっていて滑らかに聞こえます。口をaからeの形に変えたような感じです。

iZotopeでの処理の順番

f:id:qpci32siekqd:20201002213316j:plain

 

iZotopeは音のノイズなどを処理するソフトだが、初見ではどの機能を使ったらいいのかがわからない。

 

ヘルプを見るとビデオチュートリアルで、個別の機能については解説があるが、処理の順番があるはずだと、調べたところ見つけることができた。

 

 

f:id:qpci32siekqd:20201002213620j:plain

8 Common Audio Restoration Mistakes

 

まずクリップされているかだが、音が大きすぎる場合に起こる。

f:id:qpci32siekqd:20201002213923j:plain

クリップされているかどうかだが、再生していると、ここでバーが一番右まで振り切れているときに起こる。

 

0dBを超えていないかが1つの判断材料だが、どういう再生環境かわからない時を考慮して、マージンを取りたい場合は、De-clipを選ぶ。

 

f:id:qpci32siekqd:20201002214523j:plain

閾値を示す横線が表示されるので、それを青の波形が超えていないかで判断する。

 

f:id:qpci32siekqd:20201002215237j:plain

いくつかパラメータを振って比較したいときはCompareを押す。

波形がどうかわったのか、適用前後で比較できるので、意図しない箇所に効いていないかが確認できる。

 

 

Synthesizer Vのファイル出力でエラーが出るとき

f:id:qpci32siekqd:20201001235503j:plain

ファイルに出力

 

出力に失敗しました。

出力先とファイル名を確認してください。

 

Synthesizer Vでファイルに出力をしようとすると、エラーが出て失敗することがあります。

 

フォルダ名に日本語が入っているからダメなのかなど、色々試したのですが、

ウイルス対策ソフトのアバストが悪さをしていました。

一時的に切れば出力できます。

Synthesizer Vのインストールが失敗する時

f:id:qpci32siekqd:20201001235124j:plain

Synthesizer Vをインストール時に上記のように複数のファイルが発生して、インストールに失敗することがあります。

 

コピー先フォルダのファイル名を変更中にエラーが発生しました

MoveFileエラー:コード5

アクセスが拒否されました。

 

ja-jp.txtがエラーを吐いているので、日本語を選んでも日本語になりません。

 

 ウィルス対策ソフトのアバストが悪さをしているので、Avastを一時的にオフにしてインストールすればできます。

 

VEGASでの立ち絵の切り替え

VEGASを使ってボイロ動画作成時の立ち絵の切り替え方ですが、どれが正解かわからないものの、1つの方法をメモとして残しておきます。

 

VEGASのテイクという機能を使います。

 

f:id:qpci32siekqd:20200923233313j:plain

 

先に立ち絵のPSDファイルから、画像を吐き出しておきます。
差分ではなく全部入りです。ファイル名はトラック上で何を選んでいるのか文字で表示されるので、わかりやすい名前にしておいた方がいいかと思います。

 

グループにしたい立ち絵を一式選択して、右クリックを押しながらトラックへドラッグアンドドロップをします。

 

 

f:id:qpci32siekqd:20200923233655j:plain

そうするとメニューが出てくるので、テイクとして追加を選びます。

 

 

f:id:qpci32siekqd:20200923233727j:plain

そうすると、1つのまとまりとなってトラックに表示されます。

9枚まとめたので「9/9」といった表示になっています。「腕上げ」というのはファイル名です。

 

右クリックからテイクを選ぶと、上のようにファイル名がずらずらと出てきます。二重丸「◎」が付いているのが選ばれているものです。

 

実際の編集のときは、ショートカットキーを使って、Tキーか、Shift+Tキーで次々と変わっていきますので、プレビュー画面を見ながら切り替えていきます。

 

立ち絵を切り替えたくなったら、このテイク一式をコピーして新しく作ります。