--- 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) です。