v.1.5.2.5用チュートリアルの更新(日本語のみ)

This commit is contained in:
nadare 2023-04-26 14:34:12 +00:00
parent e4086e4fd2
commit 91a35fc688
5 changed files with 353 additions and 2 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 257 KiB

View File

@ -0,0 +1,170 @@
Realtime Voice Changer Client for RVC Tutorial (v.1.5.2.4)
================================================================
# Introduction
This application is client software for real-time voice conversion that supports various voice conversion models. This document provides a description for voice conversion limited to [RVC(Retrieval-based-Voice-Conversion)](https://github.com/liujing04/Retrieval-based-Voice-Conversion-WebUI).
## Notes
- Model training must be done separately.
- If you want to learn by yourself, please go to [RVC(Retrieval-based-Voice-Conversion)](https://github.com/liujing04/Retrieval-based-Voice-Conversion-WebUI).
- [Recording app on Github Pages](https://w-okada.github.io/voice-changer/) is convenient for preparing voice for learning on the browser.
- [Commentary video] (https://youtu.be/s_GirFEGvaA)
- [TIPS for training](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/training_tips_en.md) has been published, so please refer to it.
# 起動まで
## HuBERTのインストール
RVCの実行にはHuBERTが必要です。
[このリポジトリ](https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main)から`hubert_base.pt`をダウンロードして、バッチファイルがあるフォルダに格納してください。
# Steps up to startup
## Installing HuBERT
HuBERT is required to run RVC.
Download `hubert_base.pt` from [this repository](https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main) and store it in the folder containing the batch file.
## Start GUI
### Windows version,
Unzip the downloaded zip file and run `start_http.bat`.
### Mac version
After extracting the download file, execute `startHttp.command`. If it shows that the developer cannot be verified, press the control key again and click to execute (or right-click to execute).
### Precautions when connecting remotely
When connecting remotely, please use `.bat` file (win) and `.command` file (mac) where http is replaced with https.
## client selection
It is successful if the Launcher screen like the one below appears. Select RVC from this screen.
<img src="/tutorials/images/launcher.png" alt="launcher" width="800" loading="lazy">
## Screen for RVC
It is successful if the following screen appears.
<img src="/tutorials/images/RVC_GUI.png" alt="launcher" width="800" loading="lazy">
## GUI item details
## server control
### start
`start` starts the server, `stop` stops the server
### monitor
Indicates the status of real-time conversion.
The lag from voicing to conversion is `buf + res seconds`. Adjust so that the buf time is longer than res.
#### vol
This is the volume after voice conversion.
#### buf
It is the length (ms) of one section to cut the audio. Shortening the Input Chunk reduces this number.
#### res
This is the time it takes to convert data that is the sum of Input Chunk and Extra Data Length. Shortening both Input Chunk and Extra Data Length will reduce the number.
### Model Info
Get information held by the server. If information synchronization between server and client seems not to be successful, please press the Reload button.
### Switch Model
You can switch between uploaded models.
## Model Setting
### Model Uploader
If enable PyTorch is turned on, you can select the PyTorch model (extension is pth). If you turn this on when using a model converted from RVC, the PyTorch item will appear. From the next version, you can only choose either PyTorch or ONNX for each slot.
#### Model Slot
You can choose which frame to set the model in. The set model can be switched with Switch Model in Server Control.
#### Onnx(.onnx)
Specify the model in .onnx format here. This or PyTorch (.pth) is required.
#### PyTorch(.pth)
Specify the model in .pth format here. This or Onnx (.onnx) is required.
If you trained with RVC-WebUI, it's in `/logs/weights`.
#### feature(.npy)
This is an additional function that brings the features extracted by HuBERT closer to the training data. Used in pairs with index(.index).
If you trained with RVC-WebUI, it is saved as `/logs/your-experiment-name/total_fea.npy`.
#### index(.index)
This is an additional function that brings the features extracted by HuBERT closer to the training data. Used in pairs with feature(.npy).
If you trained with RVC-WebUI, it is saved as `/logs/your-experiment-name/add_XXX.index`.
#### half-precision
You can choose to infer precision as float32 or float16.
This selection can be speeded up at the expense of accuracy.
Turn it off if it doesn't work.
#### Default Tune
Enter the default value for how much the pitch of the voice should be converted. You can also convert during inference. Below is a guideline for the settings.
- +12 for male voice to female voice conversion
- -12 for female voice to male voice conversion
#### upload
After setting the above items, press to make the model ready for use.
#### Framework
Choose which of the uploaded model files to use (PyTorch or ONNX). It will be gone in the next version.
## Device Setting
### Audio Input
Choose an input device
### Audio Output
Choose an output terminal
#### output record
Audio is recorded from when you press start until you press stop.
Pressing this button does not start real-time conversion.
Press Server Control for real-time conversion
## Quality Control
### Noise Supression
On/Off of the browser's built-in noise removal function.
### Gain Control
- input: Increase or decrease the volume of the input audio to the model. 1 is the default value
- output: Increase or decrease the volume of the output audio from the model. 1 is the default value
### F0Detector
Choose an algorithm for extracting the pitch. You can choose from the following two types.
- Lightweight `pm`
- Highly accurate `harvest`
### Analyzer(Experimental)
Record input and output on the server side.
As for the input, the sound of the microphone is sent to the server and recorded as it is. It can be used to check the communication path from the microphone to the server.
For output, the data output from the model is recorded in the server. You can see how the model behaves (once you've verified that your input is correct).
## Speaker Setting
### Destination Speaker Id
It seems to be a setting when supporting multiple speakers, but it is not used at present because the RVC head office does not support it (it is unlikely).
### Tuning
Adjust the pitch of your voice. Below is a guideline for the settings.
- +12 for male voice to female voice conversion
- -12 for female voice to male voice conversion
### index ratio
Specify the ratio to shift to the features used in training. Effective when both feature and index are set in Model Setting.
0 uses the output of HuBERT as it is, 1 brings it all back to the original features.
If the index ratio is greater than 0, the search may take a long time.
### Silent Threshold
The volume threshold for audio conversion. If the rms is smaller than this value, no voice conversion is performed and silence is returned.
(In this case, the conversion process is skipped, so the load is less.)
## Converter Setting
### InputChunk Num(128sample / chunk)
Decide how much length to cut and convert in one conversion. The higher the value, the more efficient the conversion, but the larger the buf value, the longer the maximum time before the conversion starts. The approximate time is displayed in buff:.
### Extra Data Length
Determines how much past audio to include in the input when converting audio. The longer the past voice is, the better the accuracy of the conversion, but the longer the res is, the longer the calculation takes.
(Probably because Transformer is a bottleneck, the calculation time will increase by the square of this length)
### GPU
If you have 2 or more GPUs, you can choose your GPU here.

View File

@ -80,11 +80,11 @@ RVC-WebUIで学習させた場合、`/logs/weights`に入っています。
#### feature(.npy) #### feature(.npy)
HuBERTで抽出した特徴を訓練データに近づける追加機能です。index(.index)とペアで使用します。 HuBERTで抽出した特徴を訓練データに近づける追加機能です。index(.index)とペアで使用します。
RVC-WebUIで学習させた場合、`/logs/weights/total_fea.npy`という名前で保存されています。 RVC-WebUIで学習させた場合、`/logs/実験名/total_fea.npy`という名前で保存されています。
#### index(.index) #### index(.index)
HuBERTで抽出した特徴を訓練データに近づける追加機能です。feature(.npy)とペアで使用します。 HuBERTで抽出した特徴を訓練データに近づける追加機能です。feature(.npy)とペアで使用します。
RVC-WebUIで学習させた場合、`/logs/weights/add_XXX.index`という名前で保存されています。 RVC-WebUIで学習させた場合、`/logs/実験名/add_XXX.index`という名前で保存されています。
#### half-precision #### half-precision
精度をfloat32かfloat16のどちらで推論するか選べます。 精度をfloat32かfloat16のどちらで推論するか選べます。

View File

@ -0,0 +1,181 @@
Realtime Voice Changer Client for RVC チュートリアル(v.1.5.2.5)
================================================================
# はじめに
本アプリケーションは、各種音声変換 AI(VC, Voice Conversion)を用いてリアルタイム音声変換を行うためのクライアントソフトウェアです。本ドキュメントでは[RVC(Retrieval-based-Voice-Conversion)](https://github.com/liujing04/Retrieval-based-Voice-Conversion-WebUI)に限定した音声変換のためのチュートリアルを行います。
以下、本家の[Retrieval-based-Voice-Conversion-WebUI](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI)を本家RVCと表記し、ddPn08氏の作成した[RVC-WebUI](https://github.com/ddPn08/rvc-webui)をだだぱんRVCと記載します。
## 注意事項
- 学習については別途行う必要があります。
- 自身で学習を行う場合は[RVC(Retrieval-based-Voice-Conversion)](https://github.com/liujing04/Retrieval-based-Voice-Conversion-WebUI)で行ってください。
- ブラウザ上で学習用の音声を用意するには[録音アプリ on Github Pages](https://w-okada.github.io/voice-changer/)が便利です。
- [解説動画](https://youtu.be/s_GirFEGvaA)
- [trainingのTIPS](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/training_tips_ja.md)が公開されているので参照してください。
# 起動まで
## HuBERTのインストール
RVCの実行にはHuBERTが必要です。
[このリポジトリ](https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main)から`hubert_base.pt`をダウンロードして、バッチファイルがあるフォルダに格納してください。
## GUIの起動
### Windows 版、
ダウンロードした zip ファイルを解凍して、`start_http.bat`を実行してください。
### Mac 版
ダウンロードファイルを解凍したのちに、`startHttp.command`を実行してください。開発元を検証できない旨が示される場合は、再度コントロールキーを押してクリックして実行してください(or 右クリックから実行してください)。
### リモート接続時の注意
リモートから接続する場合は、`.bat`ファイル(win)、`.command`ファイル(mac)の http が https に置き換わっているものを使用してください。
## クライアントの選択
下記のようなLauncher画面が出れば成功です。この画面からRVCを選択してください。
<img src="/tutorials/images/launcher.png" alt="launcher" width="800" loading="lazy">
## RVC用の画面
下記のような画面が出れば成功です。右上の?ボタンから[マニュアル](https://zenn.dev/wok/books/0004_vc-client-v_1_5_1_x)に移動できます。
<img src="/tutorials/images/RVC_GUI.png" alt="launcher" width="800" loading="lazy">
# クイックスタート
日本語版では[マニュアル](https://zenn.dev/wok/books/0004_vc-client-v_1_5_1_x/viewer/003-1_quick-start)が用意されているのでこちらを参照してください。
## GUIの項目の詳細
## server control
### start
startでサーバーを起動、stopでサーバーを停止します
### monitor
リアルタイム変換の状況を示します。
声を出してから変換までのラグは`buf + res秒`です。調整の際はbufの時間がresよりも長くなるように調整してください。
#### vol
音声変換後の音量です。
#### buf
音声を切り取る一回の区間の長さ(ms)です。Input Chunkを短くするとこの数値が減ります。
#### res
Input ChunkとExtra Data Lengthを足したデータを変換にかかる時間です。Input ChunkとExtra Data Lengthのいずれでも短くすると数値が減ります。
### Model Info
サーバが保持している情報を取得します。サーバ・クライアント間で情報同期がうまくいってなさそうなときReloadボタンを押してみてください。
### Switch Model
アップロードしたモデルについて切り替えることができます。
モデルについては名前の下に[]で情報が示されます
1. f0(=pitch)を考慮するモデルか
- f0: 考慮する
- nof0: 考慮しない
2. モデルの学習に用いられたサンプリングレート
3. モデルが用いる特徴量のチャンネル数(大きいほど情報を持っていて重い)
4. 学習に用いられたクライアント
- org: [本家RVC](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI)で学習したモデルです。
- webui:[だだぱんRVC](https://github.com/ddPn08/rvc-webui)で学習したモデルです。
### EXPORT ONNX
ONNXモデルを出力します。PyTorchのモデルをONNXモデルに変換すると、推論が高速化される場合があります。
## Model Setting
### Model Uploader
enable PyTorchをオンにするとPyTorchのモデル(拡張子がpth)を選ぶことができます。RVCから変換したモデルを使うときはこちらをオンにすると、PyTorchの項目がでてきます。次のバージョンからSlot毎にPyTorchかONNXのどちらかしか選べなくなります。
#### Model Slot
モデルをどの枠にセットするか選べます。セットしたモデルはServer ControlのSwitch Modelで切り替えられます。
#### Model(.onnx or .pth)
学習済みモデルをここで指定します。必須項目です。
ONNX形式(.onnx)かPyTorch形式(.pth)のいずれかを選択可能です。
本家RVCで学習させた場合、`/logs/weights`に入っています。
だだぱんRVCで学習させた場合、`/models/checkpoints`に入っています。
#### feature(.npy)
HuBERTで抽出した特徴を訓練データに近づける追加機能です。index(.index)とペアで使用します。
本家RVCで学習させた場合、`/logs/実験名/total_fea.npy`という名前で保存されています。(2023/04/26にtotal_fea.npyを省略するアップデートが入ったので今後不要になる可能性があります)
だだぱんRVCで学習させた場合、`/models/checkpoints/モデル名_index/モデル名.0.big.npy`という名前で保存されています。
#### index(.index)
HuBERTで抽出した特徴を訓練データに近づける追加機能です。feature(.npy)とペアで使用します。
本家RVCで学習させた場合、`/logs/実験名/add_XXX.index`という名前で保存されています。
だだぱんRVCで学習させた場合、`/models/checkpoints/モデル名_index/モデル名.0.index`という名前で保存されています。
#### half-precision
精度をfloat32かfloat16のどちらで推論するか選べます。
これを選択すると精度を犠牲に高速化できます。
上手く動かない場合はオフにしてください。
#### Default Tune
声のピッチをどれくらい変換するかデフォルトの値を入れます。推論中に変換もできます。以下は設定の目安です。
- 男声→女声 の変換では+12
- 女声→男声 の変換では-12
#### upload
上記の項目を設定した後、押すとmodelを使用できる状態にします。
## Device Setting
### AudioInput
入力端末を選びます
### AudioOutput
出力端末を選びます
#### output record
startをおしてからstopを押すまでの音声が記録されます。
このボタンを押してもリアルタイム変換は始まりません。
リアルタイム変換はServer Controlを押してください
## Quality Control
### Noise Supression
ブラウザ組み込みのイズ除去機能のOn/Offです。
### Gain Control
- input:モデルへの入力音声の音量を増減します。1がデフォルト
- output:モデルからの出力音声の音量を増減します。1がデフォルト
### F0Detector
ピッチを抽出するためのアルゴリズムを選びます。以下の二種類を選べます。
- 軽量な`pm`
- 高精度な`harvest`
### Analyzer(Experimental)
サーバ側で入力と出力を録音します。
入力はマイクの音声がサーバに送られて、それがそのまま録音されます。マイク⇒サーバの通信路の確認に使えます。
出力はモデルから出力されるデータがサーバ内で録音されます。(入力が正しいことが確認できたうえで)モデルの動作を確認できます。
## Speaker Setting
### Destination Speaker Id
複数話者に対応した時の設定かと思われますが、RVC本家が対応していない(見込みもない)ので現状は使わない項目です。
### Tuning
声のピッチを調整します。以下は設定の目安です。
- 男声→女声 の変換では+12
- 女声→男声 の変換では-12
### index ratio
学習で使用した特徴量に寄せる比率を指定します。Model Settingでfeatureとindexを両方設定した時に有効です。
0でHuBERTの出力をそのまま使う、1で元の特徴量にすべて寄せます。
index ratioが0より大きいと検索に時間がかかる場合があります。
### Silent Threshold
音声変換を行う音量の閾地です。この値より小さいrmsの時は音声変換をせず無音を返します。
(この場合、変換処理がスキップされるので、あまり負荷がかかりません。)
## Converter Setting
### InputChunk Num(128sample / chunk)
一度の変換でどれくらいの長さを切り取って変換するかを決めます。これが大きいほど効率的に変換できますが、bufの値が大きくなり変換が開始されるまでの最大の時間が伸びます。 buff: におよその時間が表示されます。
### Extra Data Length
音声を変換する際、入力にどれくらいの長さの過去の音声を入れるかを決めます。過去の音声が長く入っているほど変換の精度はよくなりますが、その分計算に時間がかかるためresが長くなります。
(おそらくTransformerがネックなので、これの長さの2乗で計算時間は増えます)
### GPU
GPUを2枚以上持っている場合、ここでGPUを選べます。