【音声生成AI】Style-Bert-VITS2の導入から学習、AivisSpeechでの使用までを書く【Bert-VITS2】

今回は音声生成AIの「Style-Bert-VITS2」の導入から使用、学習したモデルを外部ツールのAivisSpeechで動かすまでを書いていきます。

リポジトリは以下です。

GitHub - litagin02/Style-Bert-VITS2: Style-Bert-VITS2: Bert-VITS2 with more controllable voice styles.
Style-Bert-VITS2: Bert-VITS2 with more controllable voice styles. - litagin02/Style-Bert-VITS2

バージョンは2.7.0を導入します。また、リポジトリに書いてある通りに導入しようとしてもエラーになり導入出来なかったり学習途中でエラーになるので、その対処法も書いていきます。

また、私の環境ではRTX5090 (Blackwell)を使用しているため、導入するCUDAのバージョンは12.8を使用します。RTX40xxシリーズでも問題なく動作すると思いますが、もし動作しなければ別なバージョンのCUDAを使用してみてください。

Style-Bert-VITS2の導入

それでは導入していきます。まずはStyle-Bert-VITS2のリポジトリへアクセスします。

zipフォルダのダウンロード

下へスクロールするとインストールと書かれた項目に.zipフォルダをダウンロードするリンクがあるので、そちらをクリックします。

ダウンロードした.zipフォルダをパスに日本語や空白が含まれていない任意の場所で展開します。

エディター起動に必要な修正箇所

展開したら中に入っているsbv2フォルダの中にある「Install-Style-Bert-VITS2.bat」右クリックし編集からメモ帳などで開き中身を編集していきます。

メモ帳を開いたら、以下の部分を編集していきます。

114行目の「uv pip install “torch<2.4” “torchaudio<2.4” –index-url https://download.pytorch.org/whl/cu118」という部分です。

この行を「uv pip install “torch==2.7.1” “torchaudio==2.7.1” –index-url https://download.pytorch.org/whl/cu128」へ変更します。

その上の行の「echo Executing: …」と書かれている部分は、画面に文字を表示するためのコマンドなので変更しなくて大丈夫です。

ここまで出来たらメモ帳は閉じて「Install-Style-Bert-VITS2.bat」を起動します。

起動するとコマンドプロンプトが開き必要なものが自動でダウンロードされ始めます。
ですが、途中でエラーが発生し終了してしまうので、修正していきます。

この画面から続行することは出来ないので、書いてある通りに適当なキーを押すか右上のバツからコマンドプロンプトを終了させてください。

次にsbv2フォルダに戻ります。
Style-Bert-VITS2」というフォルダが追加されているので、こちらを開きます。

中に入っている「requirements.txt」を編集していきます
デフォルトでは以下のようになっているとい思います。

accelerate
cmudict
cn2an
faster-whisper==0.10.1
g2p_en
GPUtil
gradio>=4.32
jieba
librosa==0.9.2
loguru
nltk<=3.8.1
num2words
numpy<2
onnx
onnxconverter-common
onnxruntime
onnxruntime-directml; sys_platform == 'win32'
onnxruntime-gpu; sys_platform != 'darwin'
onnxsim-prebuilt
protobuf==4.25
psutil
punctuators
pyannote.audio>=3.1.0
pyloudnorm
pyopenjtalk-dict
pypinyin
pyworld-prebuilt
stable_ts
tensorboard
torch<2.4
torchaudio<2.4
transformers
umap-learn

こちらをすべて消して、以下をコピーして貼り付けてください。

accelerate
faster-whisper
g2p_en
GPUtil
gradio==5.34.0
jieba
librosa==0.9.2
loguru
nltk<=3.8.1
num2words
numpy<2
onnx
onnxconverter-common
onnxruntime
onnxruntime-directml; sys_platform == 'win32'
onnxruntime-gpu; sys_platform != 'darwin'
onnxsim-prebuilt
protobuf==4.25
psutil
punctuators
pyannote.audio>=3.1.0
pyloudnorm
pyopenjtalk-dict
pypinyin
pyworld-prebuilt
stable_ts
tensorboard
transformers
umap-learn
soxr

貼り付けたらもう一度「Install-Style-Bert-VITS2.bat」を右クリックし編集を押してメモ帳を開きます

35~79行目の赤で囲った部分を削除します。

削除したら「Install-Style-Bert-VITS2.bat」を起動します。
しばらくすると以下のようなエディター画面が起動します。

これで喋らすことが出来るようになります。

エディターのみの使用であればこれで終わりですが、学習も行う場合は他にも修正箇所があります。
次からはそちらを解説していきます。

スポンサーリンク

学習に必要な修正箇所

まず「Style-Bert-VITS2」フォルダを開き、中に入っている「style_gen.py」をメモ帳などで開きます

開いたら以下の赤枠で囲った箇所をコメントアウトします。

コメントアウトするには、行の先頭に「#」を付けます

8行目
#from pyannote.audio import Inference, Model

19~22行目
#model = Model.from_pretrained("pyannote/wespeaker-voxceleb-resnet34-LM") 
#inference = Inference(model, window="whole")
#device = torch.device(config.style_gen_config.device)
#inference.to(device)

30~31行目
#def get_style_vector(wav_path: str) -> NDArray[Any]
#return inference(wav_path)  # type: ignore

該当箇所をコメントアウトしたら33行目あたりに以下のコードを追加します。

def get_style_vector(wav_path: str) -> NDArray[Any]:
    style_vec = torch.zeros(256, dtype=torch.float32)
    return style_vec.numpy()

これで学習時に必要な変更箇所の修正は完了です。

スポンサーリンク

Style-Bert-VITS2での音声学習

それでは、ここからはStyle-Bert-VITS2で声の学習を行っていきます。
学習データは各自で用意してください。

音声データはセリフごとに分かれているファイルでも、長時間の1つのファイルでも問題ありません。

それでは、手順を解説していきます。

まず、「Style-Bert-VITS2」フォルダにある「input」フォルダを開きます

開いたら、このフォルダの中に音声ファイルを入れていきます

私は1時間強の音声ファイルを1つ入れました。

音声ファイルを入れたら、「Style-Bert-VITS2」フォルダへ戻り、「App.bat」ファイルを起動します。

しばらく待てばWebUIが起動します。

ちなみに、喋らすのは最初に起動したエディターだけでなく、今回起動した画面の「音声合成」タブからも行えます。
ですが、エディターの方が使いやすいかもと書かれているので、この記事ではエディター画面で喋らせます。

それでは、実際に学習を行っていきましょう。
まずは「データセット作成」タブを開きます

次にモデル名を入力します。キャラ名などが決まっている場合は、その名前を入力すると良いでしょう。

モデル名を決めたら「スライスを実行」をクリックし「音声のスライスが完了しました」と表示されるまで待ちます

スライスの設定はデフォルトでも問題ないと思いますが、場合によっては変更すると良いでしょう。

スライスが完了したら下へスクロールし文字起こしを行います

設定はデフォルトでも問題ありません。VRAMの使用率は多くなりますが、HuggingFaceのWhisperを使うにチェックを入れると速度が上がるようです。

設定が済んだら「音声の文字起こし」をクリックし、先ほどと同じように完了と出るまで待ちます

処理されたデータは「Style-Bert-VITS2」フォルダの「Data」フォルダに入っています。

スライスされた音声の文字起こしの結果が入っています。もし文字起こしの結果が間違っていても学習は可能なので今回は修正せずに行います。

それでは、「学習」タブを開きます

モデル名には先ほどの「データセット作成」タブで入力したものを入れてください。

こちらの設定もデフォルトで問題ありまので、そのまま「自動前処理を実行」をクリックして完了メッセージが表示されるまで待ちます

そのまま下へスクロールして「学習を開始する」をクリックして完了まで待ちます。

学習したモデルデータは「Style-Bert-VITS2」フォルダの「model_assets」フォルダに入っています。

これで学習は完了です。次に学習したモデルで音声合成を行っていきます。

スポンサーリンク

学習した声を喋らせる

「Editor.bat」を起動してエディターを起動します。

エディターが起動したら、右側にある設定から学習したモデルファイルを選択し、あとはテキストを入力して生成するだけです。

これで音声合成の説明は終わりです。

次はAivisSpeechで動かす手順を解説していきます。

AivisSpeechで学習した音声を使用する

それでは、学習したモデルをAivisSpeechで使えるようにしていきます。

学習時にも使用した「App.bat」を起動してください。

起動したら「ONNX変換」タブを開きます

モデル一覧から変換したいモデル名を選択し、モデルファイルから変化したいモデルデータを選択します。

モデルの選択が終わったら「ONNX形式に変換」をクリックし、完了メッセージが出るまで待ちます

変換が完了したらAIVM Generatorを開きます。

下の方へスクロールすると「各ファイルから新規生成」タブがあります。
この箇所を設定していきます。

学習済みモデルに学習したモデルファイルを選択します。
ハイパーパラメータに「config.json」ファイルを選択。
スタイルベクトルに「style_vectors.npy」ファイルを選択。
ONNXモデルに先ほど変換した.ONNX ファイルを選択。

メタデータ編集ではモデルの名前と製作者の名前やモデルの説明などを記入できます。
ここで入力するモデル名にはキャラ名などを入力すると良いでしょう。

下にスクロールすると話者の設定が出来ます。

ここではアイコンなどを設定できます。キャラ画像などを設定すると良いでしょう。

最後に「上記メタデータで AIVM / AIVMX ファイル (.aivm / .aivmx) を生成」をクリックします。

これで.aivmファイルと.aivmxファイルを2つをダウンロード出来ます。
※ブラウザの設定によっては複数ファイルのダウンロードがブロックされる場合があるので、その時は複数ファイルのダウンロードを許可してください。

あとはAivisSpeechでダウンロードしたモデルを読み込むだけです。それでは「AivisSpeech」を起動しましょう。

起動したら、上部メニューバーの「音声合成モデル」から「音声合成モデルのインストール・管理」をクリックします。

次に「ファイルからインストール」を選択し、ダウンロードした.aivmxファイルを選択します。

選択し終えたら、右下にある「インストール / 更新」をクリックします。

インストール完了まで待ちます。

この画面が出れば成功です。

あとは、モデルを切り替えてテキストを入力して喋らせるだけです。

これで学習したモデルをAivisSpeechで使用する方法の解説は完了です。

最後に

少し手間な部分もありましたが、これで好きな声でテキストの読み上げを行えるようになりました。

ゲームのセリフやナレーションなど、いろいろな事に使用して活動の幅を広げることが出来ますね!

それでは!

コメント