🎮

Google ColabでSeed-VCによる声色変換を試す

2024/12/22に公開

はじめに

最近流行りのSeed-VCを使ってみたいと思います。(論文
(年末なので、さっくり使ってみて、その忘備録を残すくらいの記事にしておきます)

そもそも、音声変換(Voice Conversion, VC)とは、入力された音声の話者の特徴を変換し、別の話者の声に似せる技術です。
具体的には、ある人物が話す音声を、別の人物が話しているかのように聞こえるように変換します。

この技術により、男性が女性の声で配信したり、その逆が可能になり、プライバシー保護やコミュニケーション支援において非常に有用な技術です。

今回は、その技術の中でも、非常に高性能なモデルを試してみようと思います。
(今回の記事ではリアルタイム音声変換と歌声変換は扱いませんが、どちらもSeed-VCで達成可能です。試しているのでそのうち記事にします)

非常に驚くべき精度で声色変換が達成されるので、注意事項は必ず守っていただくようにお願いいたします。

成果物

今回記事内で利用するすべてのコードを記載したipynbを公開します。
下記リポジトリをご覧ください。

https://github.com/personabb/colab_AI_sample

上記リポジトリをクローンしてください。

このリポジトリは、さまざまな生成AIモデルをGoogle Colabで利用するためのサンプルコードが格納されています。使い方は、私の過去の記事をご覧ください。

この記事では、本リポジトリの中のcolab_SeedVC_sampleフォルダのみを利用します。
https://github.com/personabb/colab_AI_sample/tree/main/colab_SeedVC_sample

使い方

クローンしたリポジトリをGoogle Driveにアップロードする

クローンした後、フォルダをGoogle DriveのMyDrive直下においてください。

下記のようなフォルダ構成を想定します。

MyDrive/
  └ colab_SeedVC_sample/
          ├ inputs/
          ├ outputs/
          └ colab_SeedVC_sample.ipynb

ターゲット音声とソース音声を用意する

下記の二つの音声を用意しましょう。
それぞれの特徴は下記です。

  • ターゲット音声
    • どんな声色の音声を生成したいかを制御する音声
  • ソース音声
    • どんなセリフの音声を生成したいかを制御する音声

今回の実験では、(毎度毎度使わせていただいておりますが)「あみたろの声素材工房」様の音声を利用させていただきます。

ターゲット音声としては、下記のページの「よふかしスタイル」のemo11の音声を使わせていただきます。
https://amitaro.net/voice/corpus-list/ita/
(上記ページのサンプル音声の部分からダウンロード可能です)
つまり、今回は「あみたろ」さんの音声に変換することを目的にします。

target.wavに名前を変更してください

ソース音声には、なんでも良いですが、今回は下記のサイトの「G-23」の男性の音声を利用させていただきました。(視聴の部分からダウンロードが可能です)
https://pro-video.jp/voice/announce/

source.mp3に名前を変更してください。(拡張子がソース音声と異なります)

二つの音声をGoogle Driveの「inputs」フォルダに格納する

ソース音声とターゲット音声をGoogle Driveのinputsフォルダにアップロードしてください。

下記のようなフォルダ構成を想定します。

MyDrive/
  └ colab_SeedVC_sample/
          ├ inputs/
          |    ├ source.wav
          |    └ target.mp3
          ├ outputs/
          └ colab_SeedVC_sample.ipynb

ipynbを修正する

colab_SeedVC_sample.ipynbをGoogle colabで開いてください。

4セル目にソース音声とターゲット音声のパスを指定する部分があります。
今回は、記事に合わせてコードのパスは設定しているので問題ないですが、別の音声を利用したい場合はなどは、こちらのコードのパスを変更してください。

#targetの声色に変換される
target_audio = f"{drive_path}/inputs/target.wav"

#sourceのセリフを話す。
source_audio = f"{drive_path}/inputs/source.mp3"

ipynbを実行する

colab_SeedVC_sample.ipynbを実行します。

ランタイムのタイプをT4 GPUに設定したのち、一番上のセルから実行してください。

1セル目実行時に、認証が入ると思います。その認証は承認が必要なため承認してください

2セル目実行時に、警告(Warning)が表示されると思います。
そちらは、無視して「キャンセル」をクリックしてもらって問題ないです。

全てのセルを実行後、Google Driveのoutputsフォルダに音声変換後の音声が生成されているはずです。

実験結果

実際に実験した結果を下記に示します。

まずは、男性のナレーションのセリフをそのままに、声色だけを「あみたろ」様の音声に変換した音声が下記です。

https://youtu.be/qe5_GIul8fo

続いて、ソースとターゲットを反対にして、「あみたろ」様のコーパス音声のセリフはそのままに、男性ナレーションの声色に変換した音声が下記です。

https://youtu.be/6jQ91jcSIK0

どちらの変換も非常に高品質で達成できていると思います

まとめ

元々AI coverをやりたくて、音声合成の勉強を始めようと思い立ったのですが、別のこと(仕事や家庭)が忙しくなかなかできていませんでした。

今回Seed-VCが新しく出たということで、真っ先に歌声変換を試しました。
その記事は別途書きたいと思います。(今年最後の記事になる予定です)
本記事はその前段階の記事ということで、いつもより短いですが、お許しください。

最後に

ここまで読んでくださってありがとうございました!

Discussion