| ---
|
| license: other
|
| license_name: base-model-terms
|
| license_link: https://huggingface.co/Canon/nnsvs-wavehax-base/blob/main/THIRD_PARTY_LICENSES.md
|
| language:
|
| - ja
|
| tags:
|
| - singing-voice-synthesis
|
| - svs
|
| - nnsvs
|
| - enunu
|
| - utau
|
| - vocoder
|
| - wavehax
|
| ---
|
|
|
| # 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](THIRD_PARTY_LICENSES.md) を参照してください。
|
|
|
| ### ベースモデルの利用条件
|
|
|
| 学習データを提供いただいた5名の権利者から許諾を得ており、以下が可能です。
|
|
|
| - **公開配布:可**
|
| - **商用利用:可**(fine-tune した成果物の商用利用を含む)
|
| - **再配布:可**(ベース本体・派生モデルとも)
|
| - **クレジット表記:任意**(義務ではありませんが、記載していただけると嬉しいです)
|
|
|
| ```
|
| 波音リツ (カノン) / 雨星サイファ (ちかの) / 花撫シア (いつり) /
|
| 黒昴宿 (ATSUYA) / おふとんP (おふとんP)
|
| ```
|
|
|
| > 上記はこのベースモデル(重み)に対する条件です。
|
| > **各歌声データベース自体を利用する場合は、それぞれの配布元の規約に従ってください。**
|
|
|
| ### ソフトウェア
|
| Wavehax は MIT License (Copyright 2024 Reo Yoneyama, Nagoya University) です。
|
| |