Skip to content

Latest commit

 

History

History
202 lines (177 loc) · 17.3 KB

README-JP.md

File metadata and controls

202 lines (177 loc) · 17.3 KB

Seed-VC

Hugging Face

English | 簡体中文 | 日本語
現在リリースされているモデルは、ゼロショット音声変換 🔊 と ゼロショット歌声変換 🎙 に対応しています。トレーニングなしで、1〜30秒のリファレンス音声を与えるだけで声をクローンすることができます。

以前の音声変換モデルとの比較やデモのリストを見つけるには、デモページ🌐 をご覧ください。

私たちはモデルの品質を向上させ、さらに多くの機能を追加し続けています。

評価📊

ゼロショット音声変換🎙🔁

Seed-VCの音声変換能力に関する一連の客観的評価を行いました。
再現性を高めるために、ソース音声はLibriTTS-test-cleanからランダムに選ばれた100の発話、リファレンス音声は独自の特徴を持つ12のランダムに選ばれた自然音声です。

ソース音声は ./examples/libritts-test-clean にあります
リファレンス音声は ./examples/reference にあります

変換結果を話者埋め込みコサイン類似度(SECS)、単語誤り率(WER)、文字誤り率(CER)の観点から評価し、
私たちの結果を2つの強力なオープンソースベースラインモデル、OpenVoiceCosyVoice と比較しました。
以下の表の結果は、私たちのSeed-VCモデルが知覚の明瞭さと話者の類似性の両方でベースラインモデルを大幅に上回っていることを示しています。

モデル\指標 SECS↑ WER↓ CER↓ SIG↑ BAK↑ OVRL↑
Ground Truth 1.0000 0.0802 0.0157 ~ ~ ~
OpenVoice 0.7547 0.1546 0.0473 3.56 4.02 3.27
CosyVoice 0.8440 0.1898 0.0729 3.51 4.02 3.21
Seed-VC(Ours) 0.8676 0.1199 0.0292 3.42 3.97 3.11

また、特定の話者に対して非ゼロショット音声変換モデルと比較しました(公開モデルの可用性に基づく):

Characters Models\Metrics SECS↑ WER↓ CER↓ SIG↑ BAK↑ OVRL↑
~ Ground Truth 1.0000 6.43 1.00 ~ ~ ~
トウカイテイオー (ウマ娘) So-VITS-4.0 0.8637 21.46 9.63 3.06 3.66 2.68
Seed-VC(Ours) 0.8899 15.32 4.66 3.12 3.71 2.72
明前奶绿 (Vtuber) So-VITS-4.0 0.6850 48.43 32.50 3.34 3.51 2.82
Seed-VC(Ours) 0.8072 7.26 1.32 3.48 4.07 3.20
マチカネタンホイザ (ウマ娘)   So-VITS-4.0 0.8594 16.25 8.64 3.25 3.71 2.84
Seed-VC(Ours) 0.8768 12.62 5.86 3.18 3.83 2.85

結果は、特定の話者に対して微調整やトレーニングを行っていないにもかかわらず、Seed-VCが非ゼロショットモデルよりもはるかに優れた結果を達成できることを示しています。 ただし、これはSoVITSモデルの品質によって大きく異なる場合があります。この比較が不公平または不正確であると感じた場合は、PRまたはIssueを歓迎します。
(トウカイテイオー モデルは zomehwh/sovits-tannhauser から取得)
(マチカネタンホイザ モデルは zomehwh/sovits-tannhauser から取得)
(明前奶绿 モデルは sparanoid/milky-green-sovits-4 から取得)

ASR結果は facebook/hubert-large-ls960-ft モデルによって計算されました
話者埋め込みは resemblyzer モデルによって計算されました

eval.py スクリプトを実行することで評価を再現できます。

python eval.py 
--source ./examples/libritts-test-clean
--target ./examples/reference
--output ./examples/eval/converted
--diffusion-steps 25
--length-adjust 1.0
--inference-cfg-rate 0.7
--xvector-extractor "resemblyzer"
--baseline ""  # ベースライン結果を計算するには openvoice または cosyvoice を入力
--max-samples 100  # 処理する最大ソース発話数

その前に、ベースライン評価を実行する場合は、../OpenVoice/../CosyVoice/ にopenvoiceとcosyvoiceのリポジトリが正しくインストールされていることを確認してください。

ゼロショット歌声変換🎤🎶

追加の歌声変換評価は、M4Singer データセットを使用し、こちら から入手可能な4人のターゲットスピーカーで行いました。
話者の類似性は、変換結果と各キャラクターデータセット内のすべての利用可能なサンプルとのコサイン類似度を平均して計算しました。
各キャラクターについて、ゼロショット推論のプロンプトとしてランダムな発話を一つ選びました。比較のために、各キャラクターに対してそれぞれの RVCv2-f0-48k モデルをトレーニングし、ベースラインとしました。
各歌手タイプに対して100のランダムな発話をソース音声として使用しました。

Models\Metrics F0CORR↑ F0RMSE↓ SECS↑ CER↓ SIG↑ BAK↑ OVRL↑
RVCv2 0.9404 30.43 0.7264 28.46 3.41 4.05 3.12
Seed-VC(Ours) 0.9375 33.35 0.7405 19.70 3.39 3.96 3.06
詳細な評価結果を表示するにはクリックしてください
Source Singer Type Characters Models\Metrics F0CORR↑ F0RMSE↓ SECS↑ CER↓ SIG↑ BAK↑ OVRL↑
アルト(女性) ~ Ground Truth 1.0000 0.00 ~ 8.16 ~ ~ ~
Azuma (女性) RVCv2 0.9617 33.03 0.7352 24.70 3.36 4.07 3.07
Seed-VC(Ours) 0.9658 31.64 0.7341 15.23 3.37 4.02 3.07
Diana (女性) RVCv2 0.9626 32.56 0.7212 19.67 3.45 4.08 3.17
Seed-VC(Ours) 0.9648 31.94 0.7457 16.81 3.49 3.99 3.15
Ding Zhen(男性) RVCv2 0.9013 26.72 0.7221 18.53 3.37 4.03 3.06
Seed-VC(Ours) 0.9356 21.87 0.7513 15.63 3.44 3.94 3.09
Kobe Bryant(男性) RVCv2 0.9215 23.90 0.7495 37.23 3.49 4.06 3.21
Seed-VC(Ours) 0.9248 23.40 0.7602 26.98 3.43 4.02 3.13
ベース(男性) ~ Ground Truth 1.0000 0.00 ~ 8.62 ~ ~ ~
Azuma RVCv2 0.9288 32.62 0.7148 24.88 3.45 4.10 3.18
Seed-VC(Ours) 0.9383 31.57 0.6960 10.31 3.45 4.03 3.15
Diana RVCv2 0.9403 30.00 0.7010 14.54 3.53 4.15 3.27
Seed-VC(Ours) 0.9428 30.06 0.7299 9.66 3.53 4.11 3.25
Ding Zhen RVCv2 0.9061 19.53 0.6922 25.99 3.36 4.09 3.08
Seed-VC(Ours) 0.9169 18.15 0.7260 14.13 3.38 3.98 3.07
Kobe Bryant RVCv2 0.9302 16.37 0.7717 41.04 3.51 4.13 3.25
Seed-VC(Ours) 0.9176 17.93 0.7798 24.23 3.42 4.08 3.17
ソプラノ(女性) ~ Ground Truth 1.0000 0.00 ~ 27.92 ~ ~ ~
Azuma RVCv2 0.9742 47.80 0.7104 38.70 3.14 3.85 2.83
Seed-VC(Ours) 0.9521 64.00 0.7177 33.10 3.15 3.86 2.81
Diana RVCv2 0.9754 46.59 0.7319 32.36 3.14 3.85 2.83
Seed-VC(Ours) 0.9573 59.70 0.7317 30.57 3.11 3.78 2.74
Ding Zhen RVCv2 0.9543 31.45 0.6792 40.80 3.41 4.08 3.14
Seed-VC(Ours) 0.9486 33.37 0.6979 34.45 3.41 3.97 3.10
Kobe Bryant RVCv2 0.9691 25.50 0.6276 61.59 3.43 4.04 3.15
Seed-VC(Ours) 0.9496 32.76 0.6683 39.82 3.32 3.98 3.04
テナー (男性) ~ Ground Truth 1.0000 0.00 ~ 5.94 ~ ~ ~
Azuma RVCv2 0.9333 42.09 0.7832 16.66 3.46 4.07 3.18
Seed-VC(Ours) 0.9162 48.06 0.7697 8.48 3.38 3.89 3.01
Diana RVCv2 0.9467 36.65 0.7729 15.28 3.53 4.08 3.24
Seed-VC(Ours) 0.9360 41.49 0.7920 8.55 3.49 3.93 3.13
Ding Zhen RVCv2 0.9197 22.82 0.7591 12.92 3.40 4.02 3.09
Seed-VC(Ours) 0.9247 22.77 0.7721 13.95 3.45 3.82 3.05
Kobe Bryant RVCv2 0.9415 19.33 0.7507 30.52 3.48 4.02 3.19
Seed-VC(Ours) 0.9082 24.86 0.7764 13.35 3.39 3.93 3.07

Seed-VCはターゲットスピーカーでトレーニングされておらず、ランダムな発話を一つだけプロンプトとして使用しているにもかかわらず、話者の類似性(SECS)と可読性(CER)の点で特定話者のRVCv2モデルを一貫して上回っています。これは、Seed-VCの優れたボイスクローン能力とロバスト性を示しています。

しかし、Seed-VCの音質(DNSMOS)がRVCv2よりもわずかに低いことが観察されています。この欠点を真剣に受け止め、将来的には音質の改善を最優先します。
この比較が不公平または不正確であると感じた場合、PRやissueを歓迎します。

中国語ASR結果は SenseVoiceSmall によって計算されました
話者埋め込みは resemblyzer モデルによって計算されました
男性から女性への変換には+12セミトーンのピッチシフトを設定し、女性から男性への変換には-12セミトーンのピッチシフトを設定しました。それ以外の場合はピッチシフトは0に設定しました

インストール📥

WindowsまたはLinuxでのPython 3.10を推奨します。

pip install -r requirements.txt

使用方法🛠️

初めて推論を実行する際には、最新のモデルリリースのチェックポイントが自動的にダウンロードされます。

コマンドライン推論:

python inference.py --source <source-wav>
--target <referene-wav>
--output <output-dir>
--diffusion-steps 25 # 歌声変換には50〜100を推奨
--length-adjust 1.0
--inference-cfg-rate 0.7
--f0-condition False # 歌声変換にはTrueを設定
--auto-f0-adjust False # ソースのピッチをターゲットのピッチレベルに自動調整するにはTrueを設定、通常は歌声変換には使用しません
--semi-tone-shift 0 # 歌声変換の半音シフト

ここで:

  • source はリファレンス音声に変換するための音声ファイルのパスです
  • target はリファレンスとして使用する音声ファイルのパスです
  • output は出力ディレクトリのパスです
  • diffusion-steps は使用する拡散ステップ数です。デフォルトは25で、最高品質には50〜100を使用し、最速の推論には4〜10を使用します
  • length-adjust は長さ調整係数です。デフォルトは1.0で、<1.0は音声を加速し、>1.0は音声を遅くします
  • inference-cfg-rate は出力に微妙な違いがあります。デフォルトは0.7です
  • f0-condition は出力のピッチをソース音声のピッチに条件付けるフラグです。デフォルトはFalseで、歌声変換にはTrueを設定します
  • auto-f0-adjust はソースのピッチをターゲットのピッチレベルに自動調整するフラグです。デフォルトはFalseで、通常は歌声変換には使用しません
  • semi-tone-shift は歌声変換の半音シフトです。デフォルトは0です

Gradioウェブインターフェース:

python app.py

その後、ブラウザを開いて http://localhost:7860/ にアクセスしてウェブインターフェースを使用します。

TODO📝

  • コードのリリース
  • v0.1の事前トレーニング済みモデルのリリース: Hugging Face
  • Huggingfaceスペースデモ: Hugging Face
  • HTMLデモページ(他のVCモデルとの比較を含む場合があります): Demo
  • ストリーミング推論(現在の実装では品質低下を防ぐために1〜2秒の遅延が必要で、受け入れがたいほど高いです...😥)
  • 歌声変換
  • ソースおよびリファレンス音声のノイズ耐性
    • ソース音声はノイズ耐性があります
  • 潜在的なアーキテクチャの改善
    • U-ViTスタイルのスキップ接続
    • 入力をOpenAI Whisperに変更
  • カスタムデータでのトレーニング用コード
  • 歌声デコードにNVIDIAのBigVGANを使用
  • 歌声変換用のWhisperバージョンモデル
  • 歌声変換の客観的評価とRVC/SoVITSとの比較
  • オーディオ品質の向上
  • 追加予定の項目

変更履歴🗒️

  • 2024-10-25:
    • 歌声変換に関する徹底的な評価結果とRVCv2との比較を追加
  • 2024-10-24:
    • OpenAI Whisperを音声内容入力として使用した44kHzの歌声変換モデルを更新
  • 2024-10-07:
    • v0.3の事前トレーニング済みモデルを更新し、音声内容エンコーダをOpenAI Whisperに変更
    • v0.3の事前トレーニング済みモデルの客観的評価結果を追加
  • 2024-09-22:
    • 歌声変換モデルをNVIDIAのBigVGANに更新し、高音部分の変換が大幅に改善
    • Web UIで長い音声ファイルのチャンク処理とストリーミング出力をサポート
  • 2024-09-18:
    • 歌声変換用のf0条件付きモデルを更新
  • 2024-09-14:
    • v0.2の事前トレーニング済みモデルを更新し、同じ品質を達成するために拡散ステップが少なく、サイズが小さくなり、韻律保持の制御能力が追加
    • コマンドライン推論スクリプトを追加
    • インストールと使用方法の説明を追加