2024年5月15日水曜日

tts-generator-webui で bark 用の音声モデルを使ってテキストの読み上げをやってみる

tts-generator-webui で bark 用の音声モデルを使ってテキストの読み上げをやってみる

概要

前回 Bark 用のモデルを生成してみました
今回はそれを使ってテキストの読み上げを行います

環境

  • macOS 14.4.1 (M2Pro Mac mini)
  • tts-generator-webui 6.0

方法

tts-generator-webui を起動します
最初に「Generation (Bark)」タブに移動します

次に「Audio Voice」で学習させた Bark 用の音声モデルファイルを指定します (npz)
次に「Prompt」に読み上げさせる文章を指定します
あとは画面下部にある「Generate」をクリックするだけです

初回生成時は Bark 関連のモデルがダウンロードされるので時間がかかります
5GB ほどあるのでディスクの容量に注意しましょう

ちょっとポイント

読み上げる文章が短い場合には Max length パラメータを調整しましょう
最大で18秒かけて文章を読み上げてくれますが文字が少ないのに length が長いとうまく読み上げてくれないことがあるので文字数に応じて length を調整するようにしてください

自然に読み上げてみてそれにかかった秒数を指定するのが良いかなと思います

動作確認

Generate 後に音声が完了するとそのまま再生することができるので再生して確認しましょう

最後に

Bark 用の音声モデルを使ってテキストの読み上げを行ってみました
最大で18秒分しか生成できないので長文を読ませる場合には何度か生成する必要があります
日本語にも対応していました (音声モデルも日本語の音源から生成しています)

Bark で使用したモデルファイル (npz) は RVC で生成したモデルファイル (pth) では使えないので注意しましょう

どちらも音声モデルから新しい音声を生成する手法ですが

  • Bark はテキストから音声を生成するのに対して
  • RVC は音声から声の部分だけを挿げ替えて音声を生成する

ので使用するモデルも変わってきます

また StableDiffusion のように生成ごとに結果が変わるのでうまく読み上げてくれるまでガチャする必要があります

2024年5月14日火曜日

tts-generator-webui で bark 用の音声モデルを作成する

tts-generator-webui で bark 用の音声モデルを作成する

概要

Bark 用の音声モデルを生成するのに有名なサンプルで https://github.com/serp-ai/bark-with-voice-clone がありますがこれだといろいろとハマるところがあります
tts-generator-webui には bark の Generate と Voice Clone が WebUI として実装されているので簡単に生成することができます
今回は Bark 用の音声モデル npz ファイルを生成する方法を紹介します

環境

  • macOS 14.4.1 (M2Pro Mac mini)
  • tts-generator-webui 6.0

準備

事前に1分程度の音声ファイルを準備しましょう
ファイルは BGM などのないシンプルな音声ファイルが望ましいです

モデル生成

tts-generator-webui を起動します
次に「Bark Voice Clone」タブを選択します
「Input Audio」に準備した音声ファイルを指定します

M2 mac の場合 GPU は使えないので「Use GPU」のチェックは外しましょう

そして「Generate Voice」をクリックします
しばらくすると npz ファイルが作成されます

またモデルの生成が完了したら「Use as histroy」をクリックしておきましょう
そのまま Generate の画面に移動しますが念の為モデルが保存されているか確認するためです

Tips

音源ファイルが長すぎるとうまくいかないことがあるので可能な限り短い音源を準備しましょう
自分は 2 分程度であればうまくモデルを生成することができました

最後に

tts-generator-webui で Bark 用の音声モデルを生成してみました
次回はこの音声モデルを使ってテキストを読み上げてみたいと思います

2024年5月13日月曜日

tts-generator-webui を M2 mac mini 上で動かす方法

tts-generator-webui を M2 mac mini 上で動かす方法

概要

tts-generator-webui を M2 mac mini 上で動かしてみました
voice-generator-webui よりもこちらのほうが良いかなと思います

環境

  • macOS 14.4.1 (M2Pro Mac mini)
  • tts-generator-webui 6.0

ダウンロード

https://github.com/rsxdalv/one-click-installers-tts/archive/refs/tags/v6.0.zip これをダウンロードします

ダウンロードしたら解答しましょう

  • unzip one-click-installers-tts-6.0.zip

インストール/起動

必要なものをすべてインストールしてくれるスクリプトがあるのでそれを実行します

  • cd one-click-installers-tts-6.0
  • chmod +x start_macos.sh
  • ./start_macos.sh

途中 GPU を選択する部分があるので Apple M Series を選択しましょう

A) NVIDIA
B) AMD
C) Apple M Series
D) None (I want to run in CPU mode)

Input> C

conda や Python などを自動で installer_files 配下にダウンロード、インストールしてくれます
Python のバージョンは 3.10.14 でした (installer_files/env/bin/python

必要なライブラリがインストールされ localhost:3000 で起動すれば OK です

動作確認

以下のような感じで起動すれば OK です
各音声モデルジェネレータごとにタブで分かれているのでわかりやすいです

React 版は localhost:7860/ で動作しているようです

最後に

tts-generator-webui を M2 mac 上で動作させてみました
次回はこれを使って音声モデルから適当な文章を喋らせてみようと思います

参考サイト

2024年5月12日日曜日

RVC WebUI を使って音楽の BGM と声を分離する方法

RVC WebUI を使って音楽の BGM と声を分離する方法

概要

前回 RVC WebUI で音声を他の音声で推論する処理をやってみました
今回は音源に歌を準備し歌の BGM とボーカルパートを分割する方法を紹介します

環境

  • macOS 14.4.1 (M2Pro Mac mini)
  • Python 3.9.18
  • RVC WebUI (updated1006v2)

準備

BGM と声を分割したい音源を準備しましょう
適当な歌で OK です
できれば一人で歌っている歌がいいかなと思います

方法

RVC WebUI を立ち上げ「Vocals/Accompaniment Separation & Reverberation Removal」を選択します

まず「Enter the path of the audio folder to be processed」に音源を配置したディレクトリを指定します
ファイルへのフルパスではなくディレクトリなので注意してください
このディレクトリ配下にファイルはすべて分割されます

次に「Model」を選択します
いろいろありますが今回は「HP3_all_vocals」を選択しました
分割の精度が悪い場合は HP2 など他のモデルで試してみてください

最後に「Convert」で分割を開始します

Success になれば完了です
分割したファイルは Retrieval-based-Voice-Conversion-WebUI-updated1006v2/opt 配下に flac 形式で保存されます
instrument_ で始まるファイルが 声のみで vocal_ から始まるファイルが BGM のみになります

最後に

RVC WebUI で音楽の BGM と声を分割してみました
おそろしく簡単にできすぎてびっくりします

参考サイト

2024年5月11日土曜日

RVC WebUI を使って音声の変換をする

RVC WebUI を使って音声の変換をする

概要

前回 安定バージョンの RVC WebUI を動かし音声データからモデルを生成するところまでやりました
今回は作成した音声モデルを使って音声の変換をしてみたいと思います

環境

  • macOS 14.4.1 (M2Pro Mac mini)
  • Python 3.9.18
  • RVC WebUI (updated1006v2)

準備

音声を変換する音源を準備しましょう
何でも OK ですができれば単純な文章読み上げがいいかもしれません
自分は適当な歌を mp3 ファイルとして用意しました

声の変換

RVC WebUI を起動してアクセスします

「Model Inference」タブを選択します
そして「Inferencing voice」に前回作成した音声モデルファイル (pth) を設定します
更に音声を変換したいファイルを「Enter the path of the audio file to be processed (default is the correct format example)」にフルパスで指定します

動作確認

成功すると以下のようなログが流れて RVC WebUI 上で音声を再生できるようになります
ダウンロードも可能で audio.wav というファイル名で保存されます

2024-05-10 09:06:14 | INFO | infer.modules.vc.pipeline | Loading rmvpe model,assets/rmvpe/rmvpe.pt
2024-05-10 09:06:52 | INFO | httpx | HTTP Request: POST http://localhost:7865/api/predict "HTTP/1.1 200 OK"
2024-05-10 09:06:52 | INFO | httpx | HTTP Request: POST http://localhost:7865/reset "HTTP/1.1 200 OK"

聞いてみると学習させた音声モデルで変換されていることが確認できると思います

トラブルシューティング

ValueError: mode must be 'r', 'w', or None, got: rb 

音声を変換するファイルを指定した際にエラーになりました
av ライブラリのバージョンを下げるとうまく動作するようです

  • . ./.venv/bin/activate
  • pip install --force-reinstall -v "av==11.0.0"
  • deactivate
  • ./run.sh

参考

最後に

RVC WebUI で音声変換できるところまでやってみました
基本の流れは今回紹介した方法なのであとはモデルを生成するときのチューニングや学習させる音声データのクリーニング、分割をしてモデルの精度をあげましょう
できれば学習させる際の音声データは歌などではなく会話が良いかなと思います
そして変換/推論する際にもパラメータがいくつかあるのでこれもチューニングしましょう
推論する際は歌などでも全然 OK ですができれば推論もアカペラなど BGM がない音源を準備できると良いかなと思います

参考サイト

https://toranoana-lab.hatenablog.com/entry/2023/12/22/120000

2024年5月10日金曜日

RVC を使って自分の音声を使ってモデルを生成する方法 (リベンジ編)

RVC を使って自分の音声を使ってモデルを生成する方法 (リベンジ編)

概要

前回 最新のコミットから起動してみましたが今回はリリースの安定版を動かしてみました

環境

  • macOS 14.4.1 (M2Pro Mac mini)
  • Python 3.9.18
  • RVC WebUI (updated1006v2)

事前準備

  • brew install aria2 ffmpeg

プロジェクトのダウンロード

https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/releases/tag/updated1006v2 から Retrieval-based-Voice-Conversion-WebUI-updated1006v2.tar.gz をダウンロードします

プロジェクトのセットアップ

  • tar zvxf Retrieval-based-Voice-Conversion-WebUI-updated1006v2.tar.gz
  • cd Retrieval-based-Voice-Conversion-WebUI-updated1006v2
  • pyenv local 3.9.18
  • python -m venv .venv
  • . ./.venv/bin/activate
  • pip install -r requirements.txt
  • deactivate

RVC WebUI 起動

  • ./run.sh

初回はモデルのダウンロードがあります
起動すると http://localhost:7865/ で起動します

音声の学習

前回同様です
ディレクトリがないエラーが出た場合は手動で作成します

動作確認

前回はモデル生成時にセグメンテーションエラーになり RVC WebUI が落ちる挙動があったのですがそれがなく正常に終了します

モデルは ./assets/weights/mi-test.pth に作成されます

最後に

最新のコミットではなくリリースにある安定版を使うほうが今のところは良さそうです
次回は作成できた pth モデルを使って別の音声情報と音声を交換してみたいと思います

参考サイト

2024年5月9日木曜日

RVC を使って自分の音声を使ってモデルを生成する方法

RVC を使って自分の音声を使ってモデルを生成する方法

概要

Retrieval-based-Voice-Conversion-WebUI というツールを見つけたので使ってみました
自分の音声から音声モデルを使って喋らせることができるようです

環境

  • macOS 14.4.1 (M2Pro Mac mini)
  • Python 3.8
  • RVC WebUI (fb16ba3)

起動

自動で Python3.8 がインストールされます
試しに Python 3.10 以上で試したのですがライブラリのインストールでエラーになったので3.8を使います http://localhost:7865/ で起動します

モデルのダウンロード

なぜか hubert_base.pt やらいろいろ足りていないのでモデルをダウンロードします

https://github.com/RVC-Project/RVC-Models-Downloader/releases から rvcmd_darwin_arm64.tar.gz をダウンロードします
展開し Retrieval-based-Voice-Conversion-WebUI のルートに配置します

  • tar zvxf rvcmd_darwin_arm64.tar.gz
  • mv rvcmd Retrieval-based-Voice-Conversion-WebUI
  • cd Retrieval-based-Voice-Conversion-WebUI
  • ./rvcmd assets/all

警告が出る場合は一度 Finder からクリックで起動して Open を選択することでターミナルからも実行できるようになります
実行すると必要なモデルを必要なパスに自動でダウンロードしてくれます

<

assets/hubert/hubert_base.pt がない場合は https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/hubert_base.pt こちらからダウンロードして配置してください

フォルダの作成

なぜか足りなかったので作成します

  • cd Retrieval-based-Voice-Conversion-WebUI
  • mkdir logs/mi-test/2a_f
  • mkdir logs/mi-test/2b-f0nsf

音声の準備

何でも OK です

音声の学習

パラメータはいろいろとチューニングできますが今回はデフォルトのままでいきます
まずは Train タブを選択します

UI 上にステップが記載されているのでそのステップ通りに進めます
ステップ1では名前とパラメータを設定します (基本はそのままで OK)
準備した音声ファイルを「Enter the path of the training folder」に入力し「Process data」を実行します

ステップ2の部分はそのままで OK です
あとはステップ3の「One-click training」を実行すれば OK です

これでモデルが生成できます

Segmentation fault 対策

  • cd Retrieval-based-Voice-Conversion-WebUI
  • . ./.venv/bin/active
  • pip install faiss-cpu==1.7.3

最後に

とりあえずモデルは生成できたので次回はこのモデルを使って話をさせてみます

参考サイト