Open10
RVCボイスチェンジ計画
背景
- ↑の記事で紹介されてたボイスチェンジがかなり精度良さそう
- Youtubeに動画上げる時など、自分の声が聞き取りずらいのがネックだったのでぜひ導入したい
実装概要
- リアルタイムじゃなくていいのでオフライン部分(RVC)のみ使えば良さそう
- 【流れ】RVCで発話データを作成してモデルを学習→学習したモデルを使い動画をオフライン音声変換
- 学習のための発話データはCommonVoiceがよさそう(CC-0)
CommonVoice
- RVC公式では10分以上程度の学習データでも結構いい感じとの記述があるが、念のため今回は1時間以上の音声がある発話者に限定(後で別途1時間未満のデータについても検討しました))
データ量が多い発話者
- 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 |
学習
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の場合
- リポジトリからリリースファイル( https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/RVC-beta.7z )をダウンロードして展開
- 公式の手順に従ってpython環境構築&サーバー起動(go-web.bat)
- 公開URLにアクセスしたら前述のブログの解説もしくは以下に記述する設定画面を参照に訓練実行
訓練設定(画面はWindows学習時のもの)
ボイスチェンジ
- 訓練が終わったらモデル推論のタブに移動。「音源リストを更新」をクリックして学習したモデルを選べるようにして、追加でいくつか設定
- ピッチ変更:今回は男性→女性だったので+6にした(最適な設定はケースバイケース。色々変えて試すのを推奨)
- 特徴量検索データベース:ログファイルフォルダにあるindexファイルを指定
ボイスチェンジ結果
元動画
ボイスチェンジ動画
- モデルは前述の 02a8841a00d762472a4797b56ee01643e8d9ece5a225f2e91c007ab1f94c49c99e50d19986ff3fefb18190257323f34238828114aa607f84fbe9764ecf5aaeaa を訓練したもの
- パートの変わり目に変な音が入ってるのはSEを無理やり変換しているから
さらなる音源探し
とりあえずうまくいくことが分かったので、もっといい感じの発話データを探す。
参考リンク
発話データ①「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 |
- 学習条件(🚧工事中🚧)
- 学習結果(🚧工事中🚧)