Beatrice Trainer
čļ äŊé åģļãģäŊč˛ čˇãģäŊ厚éãįšåž´ã¨ããåŽå ¨įĄæãŽåŖ°čŗĒ夿 VST ãBeatrice 2ããŽãĸããĢåĻįŋį¨ããŧãĢãããã§ãã
Beatrice 2 ã¯ãäģĨä¸ãįŽæ¨ãĢéįēãããĻããžãã
- čĒåãŽå¤æãããåŖ°ãč´ããĒãããæãåŋĢéŠãĢæãããããĢãã
- å ĨåãããåŖ°ãŽææã夿éŗåŖ°ãĢæŖįĸēãĢåæ ããįšį´°ãĒ襨įžãå¯čŊãĢãã
- 夿éŗåŖ°ãŽéĢãčĒįļæ§ã¨æįã
- 夿§ãĒ夿å 芹č
- å Ŧåŧ VST ã§ãŽå¤ææãå¤é¨ãŽé˛éŗæŠå¨ãäŊŋãŖãåŽæ¸Ŧã§ 50ms į¨åēĻãŽé åģļ
- éįēč ãŽããŧã PC (Intel Core i7-1165G7) ã§ãˇãŗã°ãĢãšãŦããã§åäŊãããRTF < 0.25 ã¨ãĒãį¨åēĻãŽč˛ čˇ
- æå°æ§æã§ 30MB äģĨä¸ãŽåŽšé
- VST 㨠VC Client ã§ãŽåäŊ
- ããŽäģ (å įˇ)
Prerequisites
Beatrice ã¯ãæĸåãŽåĻįŋæ¸ãŋãĸããĢãį¨ããĻåŖ°čŗĒãŽå¤æãčĄãã ãã§ããã° GPU ãåŋ čĻã¨ããžããã ããããæ°ããĒãĸããĢãŽäŊæãåšįč¯ãčĄããããĢ㯠GPU ãåŋ čĻã§ãã
åĻįŋãšã¯ãĒãããåŽčĄããã¨ããããŠãĢãč¨åŽã§ã¯ 9GB į¨åēĻ㎠VRAM ãæļč˛ģããžãã GeForce RTX 4090 ãäŊŋį¨ããå ´åã 1 æéį¨åēĻã§åĻįŋãåŽäēããžãã
GPU ãæå ãĢ፿ã§ããĒãå ´åã§ããäģĨä¸ãŽãĒãã¸ããĒãäŊŋį¨ããĻ Google Colab ä¸ã§åĻįŋãčĄããã¨ãã§ããžãã
Getting Started
1. Download This Repo
Git ãĒãŠãäŊŋį¨ããĻãããŽãĒãã¸ããĒãããĻãŗããŧãããĻãã ããã
git lfs install
git clone https://huggingface.co/fierce-cats/beatrice-trainer
cd beatrice-trainer
2. Environment Setup
Poetry ãĒãŠãäŊŋį¨ããĻãäžåãŠã¤ããŠãĒãã¤ãŗãšããŧãĢããĻãã ããã
poetry install
poetry shell
# Alternatively, you can use pip to install dependencies directly:
# pip3 install -e .
æŖããã¤ãŗãšããŧãĢã§ããĻããã°ã python3 beatrice_trainer -h ã§äģĨä¸ãŽãããĒããĢãã襨į¤ēãããžãã
usage: beatrice_trainer [-h] [-d DATA_DIR] [-o OUT_DIR] [-r] [-c CONFIG]
options:
-h, --help show this help message and exit
-d DATA_DIR, --data_dir DATA_DIR
directory containing the training data
-o OUT_DIR, --out_dir OUT_DIR
output directory
-r, --resume resume training
-c CONFIG, --config CONFIG
path to the config file
3. Prepare Your Training Data
ä¸åŗãŽãããĢåĻįŋããŧãŋãé įŊŽããĻãã ããã
your_training_data_dir
+---alice
| +---alices_wonderful_speech.wav
| +---alices_excellent_speech.flac // FLAC, MP3, and some other formats are also okay.
| `---...
+---bob
| +---bobs_fantastic_speech.wav
| +---bobs_speeches
| | `---bobs_awesome_speech.wav // Audio files in nested directory will also be used.
| `---...
`---...
åĻįŋããŧãŋį¨ããŖãŦã¯ããĒãŽį´ä¸ãĢå芹č ãŽããŖãŦã¯ããĒãäŊãåŋ čĻããããžãã å芹č ãŽããŖãŦã¯ããĒãŽä¸ãŽæ§é ãéŗåŖ°ããĄã¤ãĢãŽååã¯čĒįąã§ãã
åĻįŋãčĄãããŧãŋã 1 芹č ãŽãŋãŽå ´åãã芹č ãŽããŖãŦã¯ããĒãäŊãåŋ čĻããããã¨ãĢæŗ¨æããĻãã ããã
your_training_data_dir_with_only_one_speaker
+---charlies_brilliant_speech.wav // Wrong.
`---...
your_training_data_dir_with_only_one_speaker
`---charlie
+---charlies_brilliant_speech.wav // Correct!
`---...
4. Train Your Model
åĻįŋããŧãŋãé įŊŽããããŖãŦã¯ããĒã¨åēåããŖãŦã¯ããĒãæåŽããĻåĻįŋãéå§ããžãã
python3 beatrice_trainer -d <your_training_data_dir> -o <output_dir>
åĻįŋãŽįļæŗã¯ã TensorBoard ã§įĸēčĒã§ããžãã
tensorboard --logdir <output_dir>
5. After Training
åĻįŋãæŖå¸¸ãĢåŽäēããã¨ãåēåããŖãŦã¯ããĒå
ãĢ paraphernalia_(data_dir_name)_(step) ã¨ããååãŽããŖãŦã¯ããĒãįæãããĻããžãã
ããŽããŖãŦã¯ããĒãå
Ŧåŧ VST ã VC Client ã§čĒãŋčžŧããã¨ã§ããšããĒãŧã (ãĒãĸãĢãŋã¤ã ) 夿ãčĄããã¨ãã§ããžãã
Detailed Usage
Training
äŊŋį¨ãããã¤ããŧããŠãĄãŧãŋãäēååĻįŋæ¸ãŋãĸããĢããããŠãĢãã¨į°ãĒãããŽãĢããå ´åã¯ããããŠãĢãå¤ãŽæ¸ããããŗãŗããŖã°ããĄã¤ãĢã§ãã assets/default_config.json ãåĨãŽå ´æãĢãŗããŧããĻå¤ãᎍéãã -c ã§ããĄã¤ãĢãæåŽããžãã
assets/default_config.json ãį´æĨᎍéããã¨åŖãããŽã§æŗ¨æããĻãã ããã
ãžãããŗãŗããŖã°ããĄã¤ãĢãĢ data_dir ããŧ㨠out_dir ããŧãčŋŊå ããåĻįŋããŧãŋãé
įŊŽããããŖãŦã¯ããĒã¨åēåããŖãŦã¯ããĒãįĩļ寞ããšãžãã¯ãĒãã¸ããĒãĢãŧããããŽį¸å¯žããšã§č¨čŧãããã¨ã§ããŗããŗããŠã¤ãŗåŧæ°ã§ãŽæåŽãįįĨã§ããžãã
python3 beatrice_trainer -c <your_config.json>
äŊãããŽįįąã§åĻįŋã䏿ãããå ´åãåēåããŖãŦã¯ããĒãĢ checkpoint_latest.pt ãįæãããĻããã°ãããŽåĻįŋãčĄãŖãĻãããŗããŗããĢ -r ãĒããˇã§ãŗãčŋŊå ããĻåŽčĄãããã¨ã§ãæåžãĢäŋåããããã§ãã¯ãã¤ãŗãããåĻįŋãåéã§ããžãã
python3 beatrice_trainer -d <your_training_data_dir> -o <output_dir> -r
Output Files
åĻįŋãšã¯ãĒãããåŽčĄããã¨ãåēåããŖãŦã¯ããĒå ãĢäģĨä¸ãŽããĄã¤ãĢãģããŖãŦã¯ããĒãįæãããžãã
paraphernalia_(data_dir_name)_(step)- ãšããĒãŧã 夿ãĢåŋ čĻãĒããĄã¤ãĢãå ¨ãĻåĢãããŖãŦã¯ããĒã§ãã
- åĻįŋéä¸ãŽããŽãåēåãããå ´åããããåŋ čĻãĒãšãããæ°ãŽããŽäģĨå¤ã¯åé¤ããĻåéĄãããžããã
- ããŽããŖãŦã¯ããĒäģĨå¤ãŽåēåįŠã¯ãšããĒãŧã 夿ãĢäŊŋį¨ãããĒããããä¸čĻã§ããã°åé¤ããĻåéĄãããžããã
checkpoint_(data_dir_name)_(step)- åĻįŋãéä¸ããåéãããããŽãã§ãã¯ãã¤ãŗãã§ãã
- checkpoint_latest.pt ãĢãĒããŧã ãã
-rãĒããˇã§ãŗãäģããĻåĻįŋãšã¯ãĒãããåŽčĄããã¨ãããŽãšãããæ°ããåĻįŋãåéã§ããžãã
checkpoint_latest.pt- æãæ°ãã checkpoint_(data_dir_name)_(step) ãŽãŗããŧã§ãã
config.json- åĻįŋãĢäŊŋį¨ããããŗãŗããŖã°ã§ãã
events.out.tfevents.*- TensorBoard ã§čĄ¨į¤ēãããæ å ąãåĢãããŧãŋã§ãã
Customize Paraphernalia
åĻįŋãšã¯ãĒãããĢããŖãĻįæããã paraphernalia ããŖãŦã¯ããĒå
ãĢãã beatrice_paraphernalia_*.toml ããĄã¤ãĢãᎍéãããã¨ã§ã VST ã VC Client ä¸ã§ãŽčĄ¨į¤ēã夿´ã§ããžãã
model.version ã¯ãįæããããĸããĢãŽããŠãŧãããããŧã¸ã§ãŗã襨ãããã夿´ããĒãã§ãã ããã
å description ã¯ãéˇãããã¨å
¨æã襨į¤ēãããĒãå ´åããããžãã
įžå¨čĄ¨į¤ēã§ããĻããĻããå°æĨįãĒ VST ã VC Client ãŽä쿧夿´ãĢãã襨į¤ēã§ããĒããĒãå¯čŊæ§ããããããäŊčŖãæãŖãæåæ°ãģčĄæ°ãĢåããĻãã ããã
portrait ãĢč¨åŽããįģåã¯ã PNG åŊĸåŧãã¤æŖæšåŊĸã¨ããĻãã ããã
Distribution of Trained Models
ããŽãĒãã¸ããĒãį¨ããĻįæãããĸããĢãŽé å¸ãæčŋããžãã
é
å¸ããããĸããĢã¯ã Project Beatrice ãããŗããŽéĸäŋč
ãŽįŽĄįãã SNS ãĸãĢãĻãŗãããĻã§ããĩã¤ãä¸ã§ãį´šäģãããĻããã ãå ´åããããžãã
ããŽéã portrait ãĢč¨åŽãããįģåãæ˛čŧãããã¨ããããžããŽã§ãäēããæŋįĨãããã ããã
Resource
ããŽãĒãã¸ããĒãĢã¯ãåĻįŋãĒãŠãĢäŊŋį¨ããåį¨ŽããŧãŋãåĢãžããĻããžãã čŠŗãã㯠assets/README.md ããčϧãã ããã
Reference
- wav2vec 2.0 (Official implementation, MIT License)
- EnCodec (Official implementation, MIT License)
- HiFi-GAN (Official implementation, MIT License)
- Vocos (Official implementation, MIT License)
- BigVSAN (Official implementation, MIT License)
- UnivNet (Unofficial implementation, BSD 3-Clause License)
- Soft-VC
- StreamVC
- EVA-GAN
- Subramani et al., 2024
- Agrawal et al., 2024
License
ããŽãĒãã¸ããĒå ãŽãŊãŧãšãŗãŧããããŗåĻįŋæ¸ãŋãĸããĢ㯠MIT License ãŽãã¨ã§å ŦéãããĻããžãã čŠŗãã㯠LICENSE ããčϧãã ããã