NNSVS/ENUNU 用 ベースモデル配布
少量データ(数十分)でも実用品質の歌声モデルを作れるようにするための、fine-tune 前提のベースモデルです。 音響モデルとボコーダーの2種類を配布します。
学習には5つの歌声データベース(波音リツ / 雨星サイファ / 花撫シア / 黒昴宿 / おふとんP、 女声3・男声2で音域をカバー)を使用しています。権利者から許諾を得ています。
収録物
1. nnsvs_premium_acoustic_base_v1/ — NNSVS 音響ベース(102 MB)
ENUNU Training Kit (ETK 2.0.0) レシピで学習した、timelag / duration / acoustic の3モデル。 新しい歌手のデータで fine-tune する際の初期値として使います。
timelag/ model.pth (1.7MB) + model.yaml, config.yaml
duration/ model.pth (6.7MB) + model.yaml, config.yaml
acoustic/ model.pth (93.9MB) + model.yaml, config.yaml
scalers/ *.joblib (7個) ← ベース学習時の正規化パラメータ
model.pthはoptimizer_state/lr_scheduler_stateを除去済み(state_dictのみ)- acoustic は
nnsvs_world_multi_ar_f0_diff_mgcbap(world特徴 + 拡散)
2. wavehax_5db_base_65ch_v1/ — Wavehax ボコーダーベース(177 MB / 11 MB)
base_finetune_gen_disc.pkl (177 MB) fine-tune 用(generator + discriminator)
base_inference_gen.pkl (11 MB) 推論のみ用(generator)
scaler.joblib 特徴の正規化パラメータ
generator_wavehax_world65.yaml モデル定義
仕様
sample_rate 48000 / hop_length 240 / n_fft 960
in_channels 65 = mgc(60) + bap(5) ※有声/無声は F0 で表現(vuvチャンネル無し)
prior_type pcph_closed_form
_target_ wavehax.generators.WavehaxGenerator
この仕様は taroushirani/nnsvs の wavehax-support ブランチの world 既定仕様に準拠しており、
同ブランチ(および N-Editor の Wavehax 対応)でコード改変なしにそのまま読めます。
使い方
音響モデルを fine-tune する
新しい歌手のデータを ETK で前処理し、上記 model.pth を初期値として学習を再開します。
ゼロから学習するより大幅に少ないデータ・時間で実用品質に到達します。
重要: 本ベースは
state_dictのみを収録しています(配布サイズ削減のため、optimizer_state/lr_scheduler_stateを除去済み)。 このため fine-tune 時はtrain.resume.load_optimizer: falseを指定してください (trueにするとoptimizer_stateが無いためエラーになります)。 新しい歌手向けに optimizer を作り直すのは fine-tune の標準的な設定でもあります。nnsvs の
_resume()はcheckpoint["state_dict"]を常に読み、optimizer_state/lr_scheduler_stateはload_optimizerが真のときのみ読みます。 3モデルともstrict=Trueで完全一致ロードできることを確認済みです (timelag 0.41M / duration 1.67M / acoustic 23.42M パラメータ)。
Wavehax を fine-tune する
base_finetune_gen_disc.pkl を初期値に、対象歌手のデータで学習します。
未知の歌手でも 2,000 step 程度で実用品質に到達することを確認しています
(ゼロから 10,000 step 学習したものを上回る)。
Wavehax をボイスバンクに同梱する
学習済み Wavehax を NNSVS のパック済みボイスバンクに組み込むには、
pack_wavehax_voicebank.py を使ってください。以下の4点が追加され、
vocoder_type="wavehax"(または "auto")でそのまま合成できるようになります。
vocoder_model.pth / vocoder_model.yaml / in_vocoder_scaler_{mean,var,scale}.npy
注意
- Wavehax の出力は決定的ではありません。 harmonic prior が初期位相のランダム化と 微小ノイズを含むため、同じ入力でも毎回わずかに異なる波形になります。 品質評価や回帰テストは波形一致ではなく、mel-L1 等の統計量で行ってください。
- Wavehax の推論には
wavehaxパッケージ(+einops)が必要です。
ライセンス・クレジット
詳細は THIRD_PARTY_LICENSES.md を参照してください。
ベースモデルの利用条件
学習データを提供いただいた5名の権利者から許諾を得ており、以下が可能です。
- 公開配布:可
- 商用利用:可(fine-tune した成果物の商用利用を含む)
- 再配布:可(ベース本体・派生モデルとも)
- クレジット表記:任意(義務ではありませんが、記載していただけると嬉しいです)
波音リツ (カノン) / 雨星サイファ (ちかの) / 花撫シア (いつり) /
黒昴宿 (ATSUYA) / おふとんP (おふとんP)
上記はこのベースモデル(重み)に対する条件です。 各歌声データベース自体を利用する場合は、それぞれの配布元の規約に従ってください。
ソフトウェア
Wavehax は MIT License (Copyright 2024 Reo Yoneyama, Nagoya University) です。