TALQuモデル生成手順が来たので、敢えて生声でやってみる

TALQuモデル生成手順が来たので、敢えて生声でやってみる

おふとんP

最近の機械学習系はアツいですね。

動画の中では、ustを一つ一つ書き出したものを学習させることで生成していました。373ファイルを全部書き出すのは心が折れそうです。
そして、「生声と置き換えすることは可能である」ことも言及されていました。

全て自己責任、というやつなので、それならば。
やってみようじゃあ、ないか。

1.声優統計コーパスを録音する。

詳細はこちら https://voice-statistics.github.io/
ここにある100文を録音します。
普通に難読ですので、ある程度練習が必要かと思います。
発声に自信のある方は何文か読んで、行けそうなら体当たりでいけると思います。
私はリテイク込みの30分程度で録音完了しました。(事前練習別)
そのままだと読みづらいので、ルビつきを利用させていただきました。https://hiroshiba.github.io/voiceactress100_ruby/
注意する点として、句点はしっかり区切ってください。また、句点のない場所に句点を作らないようにしてください。理由は後述します。
1つの長いwavとして録音して、書き出し、音量調整とノイズカットを行います。
この辺りの手順はやる方にお任せします。

2.ust名の一覧から差し込み用ラベルを作る

100文の声優統計コーパスを句点ごとに分割した学習用ustファイルが合わせて配布されています。逆に、このustで吐き出される仕様以外の文章は受け付けてくれません。なので、先ほど一纏めに録音した文章を句点ごとに分割、ラベリングします。
その前準備として、ラベルの一覧を生成します。
DLしたustのフォルダからcmdでdir /b /a-d | clipしてcsvで保存してexcelで並び替えして出来上がったものがこちらです。
https://www.dropbox.com/s/cqpqzpbnrma0kl5/ust_name.txt?dl=0

3.wavDividerでファイルを分割する

UTAUやってる人なら知ってる人もいるかもしれない。
http://nwp8861.web.fc2.com/soft/wavdivider/index.html
wavをこれに投げ入れて、自動推定をかけます。
音量調整やノイズカットができていないと、この自動推定に余計なものが引っかかって、補正に苦労します。

スクリーンショット 2021-05-04 15.38.30

自分の録ったものではこんな感じの設定でした。
ここの最短無音時間の設定が重要です。
録音時に句点をハッキリしておかないと、ここで無音としてみなされずスムーズにラベリングできません。また、変なところで区切っていると無音時間としてみなされ、ラベリングがずれます。
一応最短無音時間を短く設定することで、フォローすることはできますが、短すぎると今度は破裂音前の無音が引っかかってしまい、結局詰まってしまいます。ここが一番根気のいる作業です。
ひとまず連番でファイルを書き出し、まず373ファイルあるかどうか、次に正しい位置で切られているかどうかを確認します。
確認できたら、先ほどのust名一覧を「ラベルを挿入」を使って頭から流し込みます。

4.SoundEngineでファイルを整える

学習にあたり必要な条件は公開ノート内の「学習データの準備」に記載されており、原音設定の左ブランクを無音を含まないように移動する、そして最初に休符を入れない、最後のdummyノートをいじらないこと、となっています。逆に、これを生声でも再現した形であれば学習できるということです。

SoundEngineはスクリプト処理があり、複数ファイルに同じ処理を繰り返す際に最適です。
今回は両端の無音をカット、そして末尾に0.5秒の無音を付与します。
0.5秒の理由は、ustのdummyノートをみるとわかります。
全てBPM120の4分音符となっています。
BPMとは、「1分間に4分音符が何回入るか」というものですから、「60秒に120回4分音符が入る場合の4分音符の長さ」ということです。
というわけで使ったスクリプトを貼っておきます。

[Folder Open]
FolderPath=切り出したwavのある場所のパス
[Both Ends Silence Cut]
Selection=0,-0,-1
Parameter1=-48
Parameter2=0
Parameter3=-48
Parameter4=0
[Both Ends Insert Silence]
Parameter1=0
Parameter2=0.5
[Folder Save]
FolderPath=wavを保存したい場所のパス

音量を調整していない場合、または子音が小さい場合は、無音削除のParameter1を上げて調整しないと子音が消える可能性があります。
バックアップの観点からも、保存先は別フォルダを指定すると良いでしょう。

これで、学習データの準備が完了です。
これより先については、配布元の動画と公開されているノートブックを参照してください。

れっつ、えんじょーい。

※5/10追記最後の工程忘れてた

5.切り上がったファイルのサンプルレートを変換する

ファイルを16bit22050Hzに変換します。ステレオだと学習失敗しますのでモノラルにしましょう
複数ファイルの一括変換ができればどんなソフトでもいいです。
私はXmediaRecordeを愛用しています。
変換完了したら学習に突っ込める状態になります。

※5/19追記
もう一つの方法

3-1 差込み用ラベルをOREMOに読み込ませる

DLしたテキストファイルをそのまま読み込ませると、1音ずつ収録ができる形になります。保存すればファイル名がそのまま反映するので、ラベリングが不要となります。 また、句読点ごとに取り直しができるので、リカバリーが簡単になります。

ノイズ除去にあたっては、一度wavTarを利用して結合し、一括で除去した後に再分割し、4の工程に戻るのが良いかと思います。

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
おふとんP