Open10

RVCボイスチェンジ計画

mossan_hoshimossan_hoshi

背景

https://eyatu-vrc.hatenablog.com/entry/2023/04/06/193512

  • ↑の記事で紹介されてたボイスチェンジがかなり精度良さそう
  • Youtubeに動画上げる時など、自分の声が聞き取りずらいのがネックだったのでぜひ導入したい

実装概要

  • リアルタイムじゃなくていいのでオフライン部分(RVC)のみ使えば良さそう
  • 【流れ】RVCで発話データを作成してモデルを学習→学習したモデルを使い動画をオフライン音声変換
  • 学習のための発話データはCommonVoiceがよさそう(CC-0)

CommonVoice

データ量が多い発話者

  • Common Voice Corpus 13.0(2023/3/15)
  • 上に行くほどおすすめ
総時間 概要 クライアントID
約9時間 若い女性。やや演技がかってる 02a8841a00d762472a4797b56ee01643e8d9ece5a225f2e91c007ab1f94c49c99e50d19986ff3fefb18190257323f34238828114aa607f84fbe9764ecf5aaeaa
2.7時間 男性。落ち着いた声。一部やや低音質 69caf5c5275d703d6712e628466b1ce9da88363d3a1bba880fcb12f7da32b23487f877ddbc0b82f5d345a9133f9ad8da47e00d4ee619bd90aa912e3030704a3a
0.9時間 男性。やや演技がかってる。やや低音質 d9597f21cb6007fa86455ca024bf65b69f42a5b2400370c55e6089cf27ae0c77be8fe4af6eba558812a1e5b0741bbe9d34c1d2288d0411b4c60a95e0f503ccfc
1.1時間 男性。やや籠ってる。音量が小さい 2adba246654a988ff61d64fc68c8a97643047bbd5c47fadfb5c6d813fadf1497725058d37e1f05d2ea5a5b303c7a5193338b4b8803f8e0ec8cfbd4b7cffcb786
2.3時間 男性。やや籠っている。やや低音質 3c9d94093b88b178118bb3be8de72d64c0423a0b8e32bfd799ce83e1e54249d8552205c1a9407bc11a3a0400d934b0277042caeb24e90b8087a83d884591e5b5
1.2時間 男性。やや籠っている。やや低音質 c26b5026d43709b6b49e3d5ef6a8805d0bf166e3d2f64b47581e24e9ea1a79cb066da370916090a4c758b4723d8d2fbee2be7e5760cf23bf7e5f13e03c6bac4f
約4時間 男性。早口。ボソボソ声。やや低音質 3447120ac93b7c7788687c259b7f55058804e4982c36174a9a0af762495a6c2310915d2b10562a1f75255d5b0a18eefb304ef7b042006d96d83158f22d238de8
3.7時間 男性。低音質 e5689aea6ff38ae184913aa9e34c2c69a05252f2fb746cc6ab9d631177dcb286024e2767aaf042b63f3891f6102ea15237aa2325061d02f49789398eec16abf4
mossan_hoshimossan_hoshi

学習

Google colabの場合

  • 環境構築手順
# ドライブをマウント
from google.colab import drive
drive.mount('/content/drive')

# リポジトリからリリースファイルダウンロード&展開
!wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/RVC-beta.7z
!apt-get install p7zip-full
!7z x RVC-beta.7z

%cd /content/RVC-beta

# 依存関係をインストール
!pip install -r requirements.txt

# 音声ファイルコピー
# https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/README.ja.md#%E5%9F%BA%E5%BA%95models%E3%82%92%E6%BA%96%E5%82%99
!cp -r "/content/drive/MyDrive/Colab Notebooks/rvc/RVC-beta/voice" .
!ls 

# ngrokインストール
!wget -q -c -nc https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
!unzip -qq -n ngrok-stable-linux-amd64.zip

# ★★★要手動★★★
# ngrok authtoken(要アカウント作成)
# アカウント作成後、 https://dashboard.ngrok.com/get-started/your-authtoken でトークン確認可能
!./ngrok authtoken TOKEN

# サーバー起動
!nohup python infer-web.py &

# ポート公開
get_ipython().system_raw('./ngrok http 7865 &')
# 公開URL取得(複数回実行が必要な可能性あり。["tunnnels"][0]["public_url"]が公開URL)
!curl -s http://localhost:4040/api/tunnels

Windowsの場合

  1. リポジトリからリリースファイル( https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/RVC-beta.7z )をダウンロードして展開
  2. 公式の手順に従ってpython環境構築&サーバー起動(go-web.bat)
  3. 公開URLにアクセスしたら前述のブログの解説もしくは以下に記述する設定画面を参照に訓練実行

訓練設定(画面はWindows学習時のもの)


mossan_hoshimossan_hoshi

ボイスチェンジ

  1. 訓練が終わったらモデル推論のタブに移動。「音源リストを更新」をクリックして学習したモデルを選べるようにして、追加でいくつか設定
    • ピッチ変更:今回は男性→女性だったので+6にした(最適な設定はケースバイケース。色々変えて試すのを推奨)
    • 特徴量検索データベース:ログファイルフォルダにあるindexファイルを指定

ボイスチェンジ結果

元動画

https://youtu.be/FeOhXSPZbYw

ボイスチェンジ動画

https://youtu.be/zlBklS0iRHw

  • モデルは前述の 02a8841a00d762472a4797b56ee01643e8d9ece5a225f2e91c007ab1f94c49c99e50d19986ff3fefb18190257323f34238828114aa607f84fbe9764ecf5aaeaa を訓練したもの
  • パートの変わり目に変な音が入ってるのはSEを無理やり変換しているから
mossan_hoshimossan_hoshi

さらなる音源探し

とりあえずうまくいくことが分かったので、もっといい感じの発話データを探す。

参考リンク

発話データ①「tatoeba yomi」

  • このQiita記事でまとめて提供されていたtatoeba(言語学習サイト)のユーザー投稿音声データの内、読み手yomiさんのデータ
  • 長さ:計16分程度
  • ライセンス:CC BY-NC 4.0
  • 学習条件
  • 学習結果(🚧工事中🚧)

発話データ②「松風」

  • 以前「松風」という名前で活動していた現「待ち人」氏が松風時代に公開したITAコーパス

  • ライセンス: CC-BY (使用時には「松風」と表記)

  • 長さ:計66分程度

  • 学習条件

  • 学習結果(🚧工事中🚧)

発話データ③「話速変換コーパス SpeedSpeech-JA-2022」

  • この記事で紹介されている。男性、女性各1名
  • ライセンス:CC BY-NC 4.0
  • 長さ(すべての速度合計):約90分
  • 学習条件(🚧工事中🚧)
  • 学習結果(🚧工事中🚧)

発話データ④「CommonVoiceの深堀り」

  • 1時間未満の発話データの中から良さそうなのを探索
総時間 概要 クライアントID
約40分 女性。ささやき声。やや舌足らず 8da19046583d525bb12621da0aa66f4af933c3ae8769c895e2ed9a0544ca79cae9d07812b1f96ff20fcc14b0e5aeb5f4759a003e8d32ffaa31c9efecafe03369
約21分 女性 38f0b7b275866240495e79402698983e7e581151af99edfe8cee61dce4a557290a2ee19aac5b2717c92ddb96d76847c22207d8fb46e909fb2f26cb212fb76385
約16分 男性 0760e257c60c13fb1bc53ba7b8862ef9a58f0b45272f817456aedf0ee95d1859f61227f187554d5fb042aeade97bd7802aec00849b45b84dcaac7088960bce31
約15分 女性 e4a42336440b2fcf9869efc53d0cfaf928795e1b7a073c5ea4da6f194f3b9599938be2dcbcae73ed57ea92220e63f9f9fa77dd7a423b3a1920e0fc1105b593aa
  • 学習条件(🚧工事中🚧)
  • 学習結果(🚧工事中🚧)