Spaces:
Sleeping
Sleeping
buchi-stdesign
commited on
Upload 221 files
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .dockerignore +18 -0
- .gitattributes +35 -35
- .gitignore +33 -0
- Dockerfile +23 -0
- README.md +10 -12
- bert/deberta-v2-large-japanese-char-wwm/.gitattributes +34 -0
- bert/deberta-v2-large-japanese-char-wwm/README.md +89 -0
- bert/deberta-v2-large-japanese-char-wwm/config.json +37 -0
- bert/deberta-v2-large-japanese-char-wwm/pytorch_model.bin +3 -0
- bert/deberta-v2-large-japanese-char-wwm/special_tokens_map.json +7 -0
- bert/deberta-v2-large-japanese-char-wwm/tokenizer_config.json +19 -0
- bert/deberta-v2-large-japanese-char-wwm/vocab.txt +0 -0
- config.py +307 -0
- configs/config.json +73 -0
- configs/config_jp_extra.json +80 -0
- configs/default_paths.yml +8 -0
- configs/paths.yml +8 -0
- default_config.yml +70 -0
- dict_data/default.csv +5 -0
- initialize.py +147 -0
- model_assets/.gitignore +2 -0
- model_assets/amitaro/amitaro.safetensors +3 -0
- model_assets/amitaro/config.json +91 -0
- model_assets/amitaro/style_vectors.npy +3 -0
- model_assets/jvnv-F1-jp/config.json +92 -0
- model_assets/jvnv-F1-jp/jvnv-F1-jp_e160_s14000.safetensors +3 -0
- model_assets/jvnv-F1-jp/style_vectors.npy +3 -0
- model_assets/jvnv-F2-jp/config.json +92 -0
- model_assets/jvnv-F2-jp/jvnv-F2_e166_s20000.safetensors +3 -0
- model_assets/jvnv-F2-jp/style_vectors.npy +3 -0
- model_assets/jvnv-M1-jp/config.json +92 -0
- model_assets/jvnv-M1-jp/jvnv-M1-jp_e158_s14000.safetensors +3 -0
- model_assets/jvnv-M1-jp/style_vectors.npy +3 -0
- model_assets/jvnv-M2-jp/config.json +92 -0
- model_assets/jvnv-M2-jp/jvnv-M2-jp_e159_s17000.safetensors +3 -0
- model_assets/jvnv-M2-jp/style_vectors.npy +3 -0
- model_assets/koharune-ami/config.json +92 -0
- model_assets/koharune-ami/koharune-ami.safetensors +3 -0
- model_assets/koharune-ami/style_vectors.npy +3 -0
- requirements.txt +24 -0
- server_editor.py +450 -0
- static/404.html +1 -0
- static/_next/static/7Ebwtq-c5RXrtRkbNZ_HI/_buildManifest.js +1 -0
- static/_next/static/7Ebwtq-c5RXrtRkbNZ_HI/_ssgManifest.js +1 -0
- static/_next/static/chunks/154-fb54c66a309416b5.js +14 -0
- static/_next/static/chunks/23-c6362522adba14e9.js +0 -0
- static/_next/static/chunks/257-eff74de43c26e044.js +0 -0
- static/_next/static/chunks/450-e98783cfbe10f77f.js +23 -0
- static/_next/static/chunks/app/_not-found/page-88e5ec60d72eb81e.js +1 -0
- static/_next/static/chunks/app/layout-003f3f0c2945f2e7.js +1 -0
.dockerignore
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Dockerfile.deploy用の.dockerignore
|
2 |
+
# 日本語のJP-Extraのエディター稼働のみに必要なファイルを指定する
|
3 |
+
|
4 |
+
*
|
5 |
+
|
6 |
+
!/style_bert_vits2/
|
7 |
+
|
8 |
+
!/bert/deberta-v2-large-japanese-char-wwm/
|
9 |
+
!/configs/
|
10 |
+
!/dict_data/default.csv
|
11 |
+
!/model_assets/
|
12 |
+
!/static/
|
13 |
+
|
14 |
+
!/config.py
|
15 |
+
!/default_config.yml
|
16 |
+
!/initialize.py
|
17 |
+
!/requirements.txt
|
18 |
+
!/server_editor.py
|
.gitattributes
CHANGED
@@ -1,35 +1,35 @@
|
|
1 |
-
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
-
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
-
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
-
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
-
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
-
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
-
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
.gitignore
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.vscode/
|
2 |
+
|
3 |
+
__pycache__/
|
4 |
+
venv/
|
5 |
+
.ipynb_checkpoints/
|
6 |
+
|
7 |
+
/*.yml
|
8 |
+
!/default_config.yml
|
9 |
+
# /bert/*/*.bin
|
10 |
+
/bert/*/*.h5
|
11 |
+
/bert/*/*.model
|
12 |
+
/bert/*/*.safetensors
|
13 |
+
/bert/*/*.msgpack
|
14 |
+
|
15 |
+
/pretrained/*.safetensors
|
16 |
+
/pretrained/*.pth
|
17 |
+
|
18 |
+
/pretrained_jp_extra/*.safetensors
|
19 |
+
/pretrained_jp_extra/*.pth
|
20 |
+
|
21 |
+
/slm/*/*.bin
|
22 |
+
|
23 |
+
/scripts/test/
|
24 |
+
*.zip
|
25 |
+
*.csv
|
26 |
+
*.bak
|
27 |
+
/mos_results/
|
28 |
+
|
29 |
+
safetensors.ipynb
|
30 |
+
*.wav
|
31 |
+
|
32 |
+
# pyopenjtalk's dictionary
|
33 |
+
*.dic
|
Dockerfile
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Hugging face spaces (CPU) でエディタ (server_editor.py) のデプロイ用
|
2 |
+
|
3 |
+
# See https://huggingface.co/docs/hub/spaces-sdks-docker-first-demo
|
4 |
+
|
5 |
+
FROM python:3.10
|
6 |
+
|
7 |
+
RUN useradd -m -u 1000 user
|
8 |
+
|
9 |
+
USER user
|
10 |
+
|
11 |
+
ENV HOME=/home/user \
|
12 |
+
PATH=/home/user/.local/bin:$PATH
|
13 |
+
|
14 |
+
WORKDIR $HOME/app
|
15 |
+
|
16 |
+
RUN pip install --no-cache-dir --upgrade pip
|
17 |
+
|
18 |
+
COPY --chown=user . $HOME/app
|
19 |
+
|
20 |
+
RUN pip install --no-cache-dir -r $HOME/app/requirements.txt
|
21 |
+
|
22 |
+
# 必要に応じて制限を変更してください
|
23 |
+
CMD ["python", "server_editor.py", "--line_length", "50", "--line_count", "3", "--skip_static_files", "--skip_default_models", "--port", "7860"]
|
README.md
CHANGED
@@ -1,12 +1,10 @@
|
|
1 |
-
---
|
2 |
-
title:
|
3 |
-
emoji:
|
4 |
-
colorFrom:
|
5 |
-
colorTo:
|
6 |
-
sdk:
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
1 |
+
---
|
2 |
+
title: Style Bert VITS2 Editor Demo
|
3 |
+
emoji: 😊🎙️📖
|
4 |
+
colorFrom: gray
|
5 |
+
colorTo: yellow
|
6 |
+
sdk: docker
|
7 |
+
pinned: false
|
8 |
+
---
|
9 |
+
|
10 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
|
bert/deberta-v2-large-japanese-char-wwm/.gitattributes
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
32 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
bert/deberta-v2-large-japanese-char-wwm/README.md
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
language: ja
|
3 |
+
license: cc-by-sa-4.0
|
4 |
+
library_name: transformers
|
5 |
+
tags:
|
6 |
+
- deberta
|
7 |
+
- deberta-v2
|
8 |
+
- fill-mask
|
9 |
+
- character
|
10 |
+
- wwm
|
11 |
+
datasets:
|
12 |
+
- wikipedia
|
13 |
+
- cc100
|
14 |
+
- oscar
|
15 |
+
metrics:
|
16 |
+
- accuracy
|
17 |
+
mask_token: "[MASK]"
|
18 |
+
widget:
|
19 |
+
- text: "京都大学で自然言語処理を[MASK][MASK]する。"
|
20 |
+
---
|
21 |
+
|
22 |
+
# Model Card for Japanese character-level DeBERTa V2 large
|
23 |
+
|
24 |
+
## Model description
|
25 |
+
|
26 |
+
This is a Japanese DeBERTa V2 large model pre-trained on Japanese Wikipedia, the Japanese portion of CC-100, and the Japanese portion of OSCAR.
|
27 |
+
This model is trained with character-level tokenization and whole word masking.
|
28 |
+
|
29 |
+
## How to use
|
30 |
+
|
31 |
+
You can use this model for masked language modeling as follows:
|
32 |
+
|
33 |
+
```python
|
34 |
+
from transformers import AutoTokenizer, AutoModelForMaskedLM
|
35 |
+
tokenizer = AutoTokenizer.from_pretrained('ku-nlp/deberta-v2-large-japanese-char-wwm')
|
36 |
+
model = AutoModelForMaskedLM.from_pretrained('ku-nlp/deberta-v2-large-japanese-char-wwm')
|
37 |
+
|
38 |
+
sentence = '京都大学で自然言語処理を[MASK][MASK]する。'
|
39 |
+
encoding = tokenizer(sentence, return_tensors='pt')
|
40 |
+
...
|
41 |
+
```
|
42 |
+
|
43 |
+
You can also fine-tune this model on downstream tasks.
|
44 |
+
|
45 |
+
## Tokenization
|
46 |
+
|
47 |
+
There is no need to tokenize texts in advance, and you can give raw texts to the tokenizer.
|
48 |
+
The texts are tokenized into character-level tokens by [sentencepiece](https://github.com/google/sentencepiece).
|
49 |
+
|
50 |
+
## Training data
|
51 |
+
|
52 |
+
We used the following corpora for pre-training:
|
53 |
+
|
54 |
+
- Japanese Wikipedia (as of 20221020, 3.2GB, 27M sentences, 1.3M documents)
|
55 |
+
- Japanese portion of CC-100 (85GB, 619M sentences, 66M documents)
|
56 |
+
- Japanese portion of OSCAR (54GB, 326M sentences, 25M documents)
|
57 |
+
|
58 |
+
Note that we filtered out documents annotated with "header", "footer", or "noisy" tags in OSCAR.
|
59 |
+
Also note that Japanese Wikipedia was duplicated 10 times to make the total size of the corpus comparable to that of CC-100 and OSCAR. As a result, the total size of the training data is 171GB.
|
60 |
+
|
61 |
+
## Training procedure
|
62 |
+
|
63 |
+
We first segmented texts in the corpora into words using [Juman++ 2.0.0-rc3](https://github.com/ku-nlp/jumanpp/releases/tag/v2.0.0-rc3) for whole word masking.
|
64 |
+
Then, we built a sentencepiece model with 22,012 tokens including all characters that appear in the training corpus.
|
65 |
+
|
66 |
+
We tokenized raw corpora into character-level subwords using the sentencepiece model and trained the Japanese DeBERTa model using [transformers](https://github.com/huggingface/transformers) library.
|
67 |
+
The training took 26 days using 16 NVIDIA A100-SXM4-40GB GPUs.
|
68 |
+
|
69 |
+
The following hyperparameters were used during pre-training:
|
70 |
+
|
71 |
+
- learning_rate: 1e-4
|
72 |
+
- per_device_train_batch_size: 26
|
73 |
+
- distributed_type: multi-GPU
|
74 |
+
- num_devices: 16
|
75 |
+
- gradient_accumulation_steps: 8
|
76 |
+
- total_train_batch_size: 3,328
|
77 |
+
- max_seq_length: 512
|
78 |
+
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-06
|
79 |
+
- lr_scheduler_type: linear schedule with warmup (lr = 0 at 300k steps)
|
80 |
+
- training_steps: 260,000
|
81 |
+
- warmup_steps: 10,000
|
82 |
+
|
83 |
+
The accuracy of the trained model on the masked language modeling task was 0.795.
|
84 |
+
The evaluation set consists of 5,000 randomly sampled documents from each of the training corpora.
|
85 |
+
|
86 |
+
## Acknowledgments
|
87 |
+
|
88 |
+
This work was supported by Joint Usage/Research Center for Interdisciplinary Large-scale Information Infrastructures (JHPCN) through General Collaboration Project no. jh221004, "Developing a Platform for Constructing and Sharing of Large-Scale Japanese Language Models".
|
89 |
+
For training models, we used the mdx: a platform for the data-driven future.
|
bert/deberta-v2-large-japanese-char-wwm/config.json
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"architectures": [
|
3 |
+
"DebertaV2ForMaskedLM"
|
4 |
+
],
|
5 |
+
"attention_head_size": 64,
|
6 |
+
"attention_probs_dropout_prob": 0.1,
|
7 |
+
"conv_act": "gelu",
|
8 |
+
"conv_kernel_size": 3,
|
9 |
+
"hidden_act": "gelu",
|
10 |
+
"hidden_dropout_prob": 0.1,
|
11 |
+
"hidden_size": 1024,
|
12 |
+
"initializer_range": 0.02,
|
13 |
+
"intermediate_size": 4096,
|
14 |
+
"layer_norm_eps": 1e-07,
|
15 |
+
"max_position_embeddings": 512,
|
16 |
+
"max_relative_positions": -1,
|
17 |
+
"model_type": "deberta-v2",
|
18 |
+
"norm_rel_ebd": "layer_norm",
|
19 |
+
"num_attention_heads": 16,
|
20 |
+
"num_hidden_layers": 24,
|
21 |
+
"pad_token_id": 0,
|
22 |
+
"pooler_dropout": 0,
|
23 |
+
"pooler_hidden_act": "gelu",
|
24 |
+
"pooler_hidden_size": 1024,
|
25 |
+
"pos_att_type": [
|
26 |
+
"p2c",
|
27 |
+
"c2p"
|
28 |
+
],
|
29 |
+
"position_biased_input": false,
|
30 |
+
"position_buckets": 256,
|
31 |
+
"relative_attention": true,
|
32 |
+
"share_att_key": true,
|
33 |
+
"torch_dtype": "float16",
|
34 |
+
"transformers_version": "4.25.1",
|
35 |
+
"type_vocab_size": 0,
|
36 |
+
"vocab_size": 22012
|
37 |
+
}
|
bert/deberta-v2-large-japanese-char-wwm/pytorch_model.bin
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:bf0dab8ad87bd7c22e85ec71e04f2240804fda6d33196157d6b5923af6ea1201
|
3 |
+
size 1318456639
|
bert/deberta-v2-large-japanese-char-wwm/special_tokens_map.json
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cls_token": "[CLS]",
|
3 |
+
"mask_token": "[MASK]",
|
4 |
+
"pad_token": "[PAD]",
|
5 |
+
"sep_token": "[SEP]",
|
6 |
+
"unk_token": "[UNK]"
|
7 |
+
}
|
bert/deberta-v2-large-japanese-char-wwm/tokenizer_config.json
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cls_token": "[CLS]",
|
3 |
+
"do_lower_case": false,
|
4 |
+
"do_subword_tokenize": true,
|
5 |
+
"do_word_tokenize": true,
|
6 |
+
"jumanpp_kwargs": null,
|
7 |
+
"mask_token": "[MASK]",
|
8 |
+
"mecab_kwargs": null,
|
9 |
+
"model_max_length": 1000000000000000019884624838656,
|
10 |
+
"never_split": null,
|
11 |
+
"pad_token": "[PAD]",
|
12 |
+
"sep_token": "[SEP]",
|
13 |
+
"special_tokens_map_file": null,
|
14 |
+
"subword_tokenizer_type": "character",
|
15 |
+
"sudachi_kwargs": null,
|
16 |
+
"tokenizer_class": "BertJapaneseTokenizer",
|
17 |
+
"unk_token": "[UNK]",
|
18 |
+
"word_tokenizer_type": "basic"
|
19 |
+
}
|
bert/deberta-v2-large-japanese-char-wwm/vocab.txt
ADDED
The diff for this file is too large to render.
See raw diff
|
|
config.py
ADDED
@@ -0,0 +1,307 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""
|
2 |
+
@Desc: 全局配置文件读取
|
3 |
+
"""
|
4 |
+
|
5 |
+
import shutil
|
6 |
+
from pathlib import Path
|
7 |
+
from typing import Any
|
8 |
+
|
9 |
+
import torch
|
10 |
+
import yaml
|
11 |
+
|
12 |
+
from style_bert_vits2.logging import logger
|
13 |
+
|
14 |
+
|
15 |
+
class PathConfig:
|
16 |
+
def __init__(self, dataset_root: str, assets_root: str):
|
17 |
+
self.dataset_root = Path(dataset_root)
|
18 |
+
self.assets_root = Path(assets_root)
|
19 |
+
|
20 |
+
|
21 |
+
# If not cuda available, set possible devices to cpu
|
22 |
+
cuda_available = torch.cuda.is_available()
|
23 |
+
|
24 |
+
|
25 |
+
class Resample_config:
|
26 |
+
"""重采样配置"""
|
27 |
+
|
28 |
+
def __init__(self, in_dir: str, out_dir: str, sampling_rate: int = 44100):
|
29 |
+
self.sampling_rate = sampling_rate # 目标采样率
|
30 |
+
self.in_dir = Path(in_dir) # 待处理音频目录路径
|
31 |
+
self.out_dir = Path(out_dir) # 重采样输出路径
|
32 |
+
|
33 |
+
@classmethod
|
34 |
+
def from_dict(cls, dataset_path: Path, data: dict[str, Any]):
|
35 |
+
"""从字典中生成实例"""
|
36 |
+
|
37 |
+
# 不检查路径是否有效,此逻辑在resample.py中处理
|
38 |
+
data["in_dir"] = dataset_path / data["in_dir"]
|
39 |
+
data["out_dir"] = dataset_path / data["out_dir"]
|
40 |
+
|
41 |
+
return cls(**data)
|
42 |
+
|
43 |
+
|
44 |
+
class Preprocess_text_config:
|
45 |
+
"""数据预处理配置"""
|
46 |
+
|
47 |
+
def __init__(
|
48 |
+
self,
|
49 |
+
transcription_path: str,
|
50 |
+
cleaned_path: str,
|
51 |
+
train_path: str,
|
52 |
+
val_path: str,
|
53 |
+
config_path: str,
|
54 |
+
val_per_lang: int = 5,
|
55 |
+
max_val_total: int = 10000,
|
56 |
+
clean: bool = True,
|
57 |
+
):
|
58 |
+
self.transcription_path = Path(transcription_path)
|
59 |
+
self.train_path = Path(train_path)
|
60 |
+
if cleaned_path == "" or cleaned_path is None:
|
61 |
+
self.cleaned_path = self.transcription_path.with_name(
|
62 |
+
self.transcription_path.name + ".cleaned"
|
63 |
+
)
|
64 |
+
else:
|
65 |
+
self.cleaned_path = Path(cleaned_path)
|
66 |
+
self.val_path = Path(val_path)
|
67 |
+
self.config_path = Path(config_path)
|
68 |
+
self.val_per_lang = val_per_lang
|
69 |
+
self.max_val_total = max_val_total
|
70 |
+
self.clean = clean
|
71 |
+
|
72 |
+
@classmethod
|
73 |
+
def from_dict(cls, dataset_path: Path, data: dict[str, Any]):
|
74 |
+
"""从字典中生成实例"""
|
75 |
+
|
76 |
+
data["transcription_path"] = dataset_path / data["transcription_path"]
|
77 |
+
if data["cleaned_path"] == "" or data["cleaned_path"] is None:
|
78 |
+
data["cleaned_path"] = ""
|
79 |
+
else:
|
80 |
+
data["cleaned_path"] = dataset_path / data["cleaned_path"]
|
81 |
+
data["train_path"] = dataset_path / data["train_path"]
|
82 |
+
data["val_path"] = dataset_path / data["val_path"]
|
83 |
+
data["config_path"] = dataset_path / data["config_path"]
|
84 |
+
|
85 |
+
return cls(**data)
|
86 |
+
|
87 |
+
|
88 |
+
class Bert_gen_config:
|
89 |
+
"""bert_gen 配置"""
|
90 |
+
|
91 |
+
def __init__(
|
92 |
+
self,
|
93 |
+
config_path: str,
|
94 |
+
num_processes: int = 1,
|
95 |
+
device: str = "cuda",
|
96 |
+
use_multi_device: bool = False,
|
97 |
+
):
|
98 |
+
self.config_path = Path(config_path)
|
99 |
+
self.num_processes = num_processes
|
100 |
+
if not cuda_available:
|
101 |
+
device = "cpu"
|
102 |
+
self.device = device
|
103 |
+
self.use_multi_device = use_multi_device
|
104 |
+
|
105 |
+
@classmethod
|
106 |
+
def from_dict(cls, dataset_path: Path, data: dict[str, Any]):
|
107 |
+
data["config_path"] = dataset_path / data["config_path"]
|
108 |
+
|
109 |
+
return cls(**data)
|
110 |
+
|
111 |
+
|
112 |
+
class Style_gen_config:
|
113 |
+
"""style_gen 配置"""
|
114 |
+
|
115 |
+
def __init__(
|
116 |
+
self,
|
117 |
+
config_path: str,
|
118 |
+
num_processes: int = 4,
|
119 |
+
device: str = "cuda",
|
120 |
+
):
|
121 |
+
self.config_path = Path(config_path)
|
122 |
+
self.num_processes = num_processes
|
123 |
+
if not cuda_available:
|
124 |
+
device = "cpu"
|
125 |
+
self.device = device
|
126 |
+
|
127 |
+
@classmethod
|
128 |
+
def from_dict(cls, dataset_path: Path, data: dict[str, Any]):
|
129 |
+
data["config_path"] = dataset_path / data["config_path"]
|
130 |
+
|
131 |
+
return cls(**data)
|
132 |
+
|
133 |
+
|
134 |
+
class Train_ms_config:
|
135 |
+
"""训练配置"""
|
136 |
+
|
137 |
+
def __init__(
|
138 |
+
self,
|
139 |
+
config_path: str,
|
140 |
+
env: dict[str, Any],
|
141 |
+
# base: Dict[str, any],
|
142 |
+
model_dir: str,
|
143 |
+
num_workers: int,
|
144 |
+
spec_cache: bool,
|
145 |
+
keep_ckpts: int,
|
146 |
+
):
|
147 |
+
self.env = env # 需要加载的环境变量
|
148 |
+
# self.base = base # 底模配置
|
149 |
+
self.model_dir = Path(
|
150 |
+
model_dir
|
151 |
+
) # 训练模型存储目录,该路径为相对于dataset_path的路径,而非项目根目录
|
152 |
+
self.config_path = Path(config_path) # 配置文件路径
|
153 |
+
self.num_workers = num_workers # worker数量
|
154 |
+
self.spec_cache = spec_cache # 是否启用spec缓存
|
155 |
+
self.keep_ckpts = keep_ckpts # ckpt数量
|
156 |
+
|
157 |
+
@classmethod
|
158 |
+
def from_dict(cls, dataset_path: Path, data: dict[str, Any]):
|
159 |
+
# data["model"] = os.path.join(dataset_path, data["model"])
|
160 |
+
data["config_path"] = dataset_path / data["config_path"]
|
161 |
+
|
162 |
+
return cls(**data)
|
163 |
+
|
164 |
+
|
165 |
+
class Webui_config:
|
166 |
+
"""webui 配置 (for webui.py, not supported now)"""
|
167 |
+
|
168 |
+
def __init__(
|
169 |
+
self,
|
170 |
+
device: str,
|
171 |
+
model: str,
|
172 |
+
config_path: str,
|
173 |
+
language_identification_library: str,
|
174 |
+
port: int = 7860,
|
175 |
+
share: bool = False,
|
176 |
+
debug: bool = False,
|
177 |
+
):
|
178 |
+
if not cuda_available:
|
179 |
+
device = "cpu"
|
180 |
+
self.device = device
|
181 |
+
self.model = Path(model)
|
182 |
+
self.config_path = Path(config_path)
|
183 |
+
self.port: int = port
|
184 |
+
self.share: bool = share
|
185 |
+
self.debug: bool = debug
|
186 |
+
self.language_identification_library: str = language_identification_library
|
187 |
+
|
188 |
+
@classmethod
|
189 |
+
def from_dict(cls, dataset_path: Path, data: dict[str, Any]):
|
190 |
+
data["config_path"] = dataset_path / data["config_path"]
|
191 |
+
data["model"] = dataset_path / data["model"]
|
192 |
+
return cls(**data)
|
193 |
+
|
194 |
+
|
195 |
+
class Server_config:
|
196 |
+
def __init__(
|
197 |
+
self,
|
198 |
+
port: int = 5000,
|
199 |
+
device: str = "cuda",
|
200 |
+
limit: int = 100,
|
201 |
+
language: str = "JP",
|
202 |
+
origins: list[str] = ["*"],
|
203 |
+
):
|
204 |
+
self.port: int = port
|
205 |
+
if not cuda_available:
|
206 |
+
device = "cpu"
|
207 |
+
self.device: str = device
|
208 |
+
self.language: str = language
|
209 |
+
self.limit: int = limit
|
210 |
+
self.origins: list[str] = origins
|
211 |
+
|
212 |
+
@classmethod
|
213 |
+
def from_dict(cls, data: dict[str, Any]):
|
214 |
+
return cls(**data)
|
215 |
+
|
216 |
+
|
217 |
+
class Translate_config:
|
218 |
+
"""翻译api配置"""
|
219 |
+
|
220 |
+
def __init__(self, app_key: str, secret_key: str):
|
221 |
+
self.app_key = app_key
|
222 |
+
self.secret_key = secret_key
|
223 |
+
|
224 |
+
@classmethod
|
225 |
+
def from_dict(cls, data: dict[str, Any]):
|
226 |
+
return cls(**data)
|
227 |
+
|
228 |
+
|
229 |
+
class Config:
|
230 |
+
def __init__(self, config_path: str, path_config: PathConfig):
|
231 |
+
if not Path(config_path).exists():
|
232 |
+
shutil.copy(src="default_config.yml", dst=config_path)
|
233 |
+
logger.info(
|
234 |
+
f"A configuration file {config_path} has been generated based on the default configuration file default_config.yml."
|
235 |
+
)
|
236 |
+
logger.info(
|
237 |
+
"Please do not modify default_config.yml. Instead, modify config.yml."
|
238 |
+
)
|
239 |
+
# sys.exit(0)
|
240 |
+
with open(config_path, encoding="utf-8") as file:
|
241 |
+
yaml_config: dict[str, Any] = yaml.safe_load(file.read())
|
242 |
+
model_name: str = yaml_config["model_name"]
|
243 |
+
self.model_name: str = model_name
|
244 |
+
if "dataset_path" in yaml_config:
|
245 |
+
dataset_path = Path(yaml_config["dataset_path"])
|
246 |
+
else:
|
247 |
+
dataset_path = path_config.dataset_root / model_name
|
248 |
+
self.dataset_path = dataset_path
|
249 |
+
self.dataset_root = path_config.dataset_root
|
250 |
+
self.assets_root = path_config.assets_root
|
251 |
+
self.out_dir = self.assets_root / model_name
|
252 |
+
self.resample_config: Resample_config = Resample_config.from_dict(
|
253 |
+
dataset_path, yaml_config["resample"]
|
254 |
+
)
|
255 |
+
self.preprocess_text_config: Preprocess_text_config = (
|
256 |
+
Preprocess_text_config.from_dict(
|
257 |
+
dataset_path, yaml_config["preprocess_text"]
|
258 |
+
)
|
259 |
+
)
|
260 |
+
self.bert_gen_config: Bert_gen_config = Bert_gen_config.from_dict(
|
261 |
+
dataset_path, yaml_config["bert_gen"]
|
262 |
+
)
|
263 |
+
self.style_gen_config: Style_gen_config = Style_gen_config.from_dict(
|
264 |
+
dataset_path, yaml_config["style_gen"]
|
265 |
+
)
|
266 |
+
self.train_ms_config: Train_ms_config = Train_ms_config.from_dict(
|
267 |
+
dataset_path, yaml_config["train_ms"]
|
268 |
+
)
|
269 |
+
self.webui_config: Webui_config = Webui_config.from_dict(
|
270 |
+
dataset_path, yaml_config["webui"]
|
271 |
+
)
|
272 |
+
self.server_config: Server_config = Server_config.from_dict(
|
273 |
+
yaml_config["server"]
|
274 |
+
)
|
275 |
+
# self.translate_config: Translate_config = Translate_config.from_dict(
|
276 |
+
# yaml_config["translate"]
|
277 |
+
# )
|
278 |
+
|
279 |
+
|
280 |
+
# Load and initialize the configuration
|
281 |
+
|
282 |
+
|
283 |
+
def get_path_config() -> PathConfig:
|
284 |
+
path_config_path = Path("configs/paths.yml")
|
285 |
+
if not path_config_path.exists():
|
286 |
+
shutil.copy(src="configs/default_paths.yml", dst=path_config_path)
|
287 |
+
logger.info(
|
288 |
+
f"A configuration file {path_config_path} has been generated based on the default configuration file default_paths.yml."
|
289 |
+
)
|
290 |
+
logger.info(
|
291 |
+
"Please do not modify configs/default_paths.yml. Instead, modify configs/paths.yml."
|
292 |
+
)
|
293 |
+
with open(path_config_path, encoding="utf-8") as file:
|
294 |
+
path_config_dict: dict[str, str] = yaml.safe_load(file.read())
|
295 |
+
return PathConfig(**path_config_dict)
|
296 |
+
|
297 |
+
|
298 |
+
def get_config() -> Config:
|
299 |
+
path_config = get_path_config()
|
300 |
+
try:
|
301 |
+
config = Config("config.yml", path_config)
|
302 |
+
except (TypeError, KeyError):
|
303 |
+
logger.warning("Old config.yml found. Replace it with default_config.yml.")
|
304 |
+
shutil.copy(src="default_config.yml", dst="config.yml")
|
305 |
+
config = Config("config.yml", path_config)
|
306 |
+
|
307 |
+
return config
|
configs/config.json
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"model_name": "Dummy",
|
3 |
+
"train": {
|
4 |
+
"log_interval": 200,
|
5 |
+
"eval_interval": 1000,
|
6 |
+
"seed": 42,
|
7 |
+
"epochs": 1000,
|
8 |
+
"learning_rate": 0.0002,
|
9 |
+
"betas": [0.8, 0.99],
|
10 |
+
"eps": 1e-9,
|
11 |
+
"batch_size": 2,
|
12 |
+
"bf16_run": false,
|
13 |
+
"lr_decay": 0.99995,
|
14 |
+
"segment_size": 16384,
|
15 |
+
"init_lr_ratio": 1,
|
16 |
+
"warmup_epochs": 0,
|
17 |
+
"c_mel": 45,
|
18 |
+
"c_kl": 1.0,
|
19 |
+
"skip_optimizer": false,
|
20 |
+
"freeze_ZH_bert": false,
|
21 |
+
"freeze_JP_bert": false,
|
22 |
+
"freeze_EN_bert": false,
|
23 |
+
"freeze_style": false,
|
24 |
+
"freeze_encoder": false
|
25 |
+
},
|
26 |
+
"data": {
|
27 |
+
"use_jp_extra": false,
|
28 |
+
"training_files": "Data/Dummy/train.list",
|
29 |
+
"validation_files": "Data/Dummy/val.list",
|
30 |
+
"max_wav_value": 32768.0,
|
31 |
+
"sampling_rate": 44100,
|
32 |
+
"filter_length": 2048,
|
33 |
+
"hop_length": 512,
|
34 |
+
"win_length": 2048,
|
35 |
+
"n_mel_channels": 128,
|
36 |
+
"mel_fmin": 0.0,
|
37 |
+
"mel_fmax": null,
|
38 |
+
"add_blank": true,
|
39 |
+
"n_speakers": 1,
|
40 |
+
"cleaned_text": true,
|
41 |
+
"num_styles": 1,
|
42 |
+
"style2id": {
|
43 |
+
"Neutral": 0
|
44 |
+
}
|
45 |
+
},
|
46 |
+
"model": {
|
47 |
+
"use_spk_conditioned_encoder": true,
|
48 |
+
"use_noise_scaled_mas": true,
|
49 |
+
"use_mel_posterior_encoder": false,
|
50 |
+
"use_duration_discriminator": true,
|
51 |
+
"inter_channels": 192,
|
52 |
+
"hidden_channels": 192,
|
53 |
+
"filter_channels": 768,
|
54 |
+
"n_heads": 2,
|
55 |
+
"n_layers": 6,
|
56 |
+
"kernel_size": 3,
|
57 |
+
"p_dropout": 0.1,
|
58 |
+
"resblock": "1",
|
59 |
+
"resblock_kernel_sizes": [3, 7, 11],
|
60 |
+
"resblock_dilation_sizes": [
|
61 |
+
[1, 3, 5],
|
62 |
+
[1, 3, 5],
|
63 |
+
[1, 3, 5]
|
64 |
+
],
|
65 |
+
"upsample_rates": [8, 8, 2, 2, 2],
|
66 |
+
"upsample_initial_channel": 512,
|
67 |
+
"upsample_kernel_sizes": [16, 16, 8, 2, 2],
|
68 |
+
"n_layers_q": 3,
|
69 |
+
"use_spectral_norm": false,
|
70 |
+
"gin_channels": 256
|
71 |
+
},
|
72 |
+
"version": "2.5.0"
|
73 |
+
}
|
configs/config_jp_extra.json
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"model_name": "Dummy",
|
3 |
+
"train": {
|
4 |
+
"log_interval": 200,
|
5 |
+
"eval_interval": 1000,
|
6 |
+
"seed": 42,
|
7 |
+
"epochs": 1000,
|
8 |
+
"learning_rate": 0.0001,
|
9 |
+
"betas": [0.8, 0.99],
|
10 |
+
"eps": 1e-9,
|
11 |
+
"batch_size": 2,
|
12 |
+
"bf16_run": false,
|
13 |
+
"fp16_run": false,
|
14 |
+
"lr_decay": 0.99996,
|
15 |
+
"segment_size": 16384,
|
16 |
+
"init_lr_ratio": 1,
|
17 |
+
"warmup_epochs": 0,
|
18 |
+
"c_mel": 45,
|
19 |
+
"c_kl": 1.0,
|
20 |
+
"c_commit": 100,
|
21 |
+
"skip_optimizer": false,
|
22 |
+
"freeze_ZH_bert": false,
|
23 |
+
"freeze_JP_bert": false,
|
24 |
+
"freeze_EN_bert": false,
|
25 |
+
"freeze_emo": false,
|
26 |
+
"freeze_style": false,
|
27 |
+
"freeze_decoder": false
|
28 |
+
},
|
29 |
+
"data": {
|
30 |
+
"use_jp_extra": true,
|
31 |
+
"training_files": "Data/Dummy/train.list",
|
32 |
+
"validation_files": "Data/Dummy/val.list",
|
33 |
+
"max_wav_value": 32768.0,
|
34 |
+
"sampling_rate": 44100,
|
35 |
+
"filter_length": 2048,
|
36 |
+
"hop_length": 512,
|
37 |
+
"win_length": 2048,
|
38 |
+
"n_mel_channels": 128,
|
39 |
+
"mel_fmin": 0.0,
|
40 |
+
"mel_fmax": null,
|
41 |
+
"add_blank": true,
|
42 |
+
"n_speakers": 512,
|
43 |
+
"cleaned_text": true
|
44 |
+
},
|
45 |
+
"model": {
|
46 |
+
"use_spk_conditioned_encoder": true,
|
47 |
+
"use_noise_scaled_mas": true,
|
48 |
+
"use_mel_posterior_encoder": false,
|
49 |
+
"use_duration_discriminator": false,
|
50 |
+
"use_wavlm_discriminator": true,
|
51 |
+
"inter_channels": 192,
|
52 |
+
"hidden_channels": 192,
|
53 |
+
"filter_channels": 768,
|
54 |
+
"n_heads": 2,
|
55 |
+
"n_layers": 6,
|
56 |
+
"kernel_size": 3,
|
57 |
+
"p_dropout": 0.1,
|
58 |
+
"resblock": "1",
|
59 |
+
"resblock_kernel_sizes": [3, 7, 11],
|
60 |
+
"resblock_dilation_sizes": [
|
61 |
+
[1, 3, 5],
|
62 |
+
[1, 3, 5],
|
63 |
+
[1, 3, 5]
|
64 |
+
],
|
65 |
+
"upsample_rates": [8, 8, 2, 2, 2],
|
66 |
+
"upsample_initial_channel": 512,
|
67 |
+
"upsample_kernel_sizes": [16, 16, 8, 2, 2],
|
68 |
+
"n_layers_q": 3,
|
69 |
+
"use_spectral_norm": false,
|
70 |
+
"gin_channels": 512,
|
71 |
+
"slm": {
|
72 |
+
"model": "./slm/wavlm-base-plus",
|
73 |
+
"sr": 16000,
|
74 |
+
"hidden": 768,
|
75 |
+
"nlayers": 13,
|
76 |
+
"initial_channel": 64
|
77 |
+
}
|
78 |
+
},
|
79 |
+
"version": "2.5.0-JP-Extra"
|
80 |
+
}
|
configs/default_paths.yml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Root directory of the training dataset.
|
2 |
+
# The training dataset of {model_name} should be placed in {dataset_root}/{model_name}.
|
3 |
+
dataset_root: Data
|
4 |
+
|
5 |
+
# Root directory of the model assets (for inference).
|
6 |
+
# In training, the model assets will be saved to {assets_root}/{model_name},
|
7 |
+
# and in inference, we load all the models from {assets_root}.
|
8 |
+
assets_root: model_assets
|
configs/paths.yml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Root directory of the training dataset.
|
2 |
+
# The training dataset of {model_name} should be placed in {dataset_root}/{model_name}.
|
3 |
+
dataset_root: Data
|
4 |
+
|
5 |
+
# Root directory of the model assets (for inference).
|
6 |
+
# In training, the model assets will be saved to {assets_root}/{model_name},
|
7 |
+
# and in inference, we load all the models from {assets_root}.
|
8 |
+
assets_root: model_assets
|
default_config.yml
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
model_name: "model_name"
|
2 |
+
|
3 |
+
# If you want to use a specific dataset path, uncomment the following line.
|
4 |
+
# Otherwise, the dataset path is `{dataset_root}/{model_name}`.
|
5 |
+
|
6 |
+
# dataset_path: "your/dataset/path"
|
7 |
+
|
8 |
+
resample:
|
9 |
+
sampling_rate: 44100
|
10 |
+
in_dir: "raw"
|
11 |
+
out_dir: "wavs"
|
12 |
+
|
13 |
+
preprocess_text:
|
14 |
+
transcription_path: "esd.list"
|
15 |
+
cleaned_path: ""
|
16 |
+
train_path: "train.list"
|
17 |
+
val_path: "val.list"
|
18 |
+
config_path: "config.json"
|
19 |
+
val_per_lang: 0
|
20 |
+
max_val_total: 12
|
21 |
+
clean: true
|
22 |
+
|
23 |
+
bert_gen:
|
24 |
+
config_path: "config.json"
|
25 |
+
num_processes: 1
|
26 |
+
device: "cuda"
|
27 |
+
use_multi_device: false
|
28 |
+
|
29 |
+
style_gen:
|
30 |
+
config_path: "config.json"
|
31 |
+
num_processes: 4
|
32 |
+
device: "cuda"
|
33 |
+
|
34 |
+
train_ms:
|
35 |
+
env:
|
36 |
+
MASTER_ADDR: "localhost"
|
37 |
+
MASTER_PORT: 10086
|
38 |
+
WORLD_SIZE: 1
|
39 |
+
LOCAL_RANK: 0
|
40 |
+
RANK: 0
|
41 |
+
model_dir: "models" # The directory to save the model (for training), relative to `{dataset_root}/{model_name}`.
|
42 |
+
config_path: "config.json"
|
43 |
+
num_workers: 16
|
44 |
+
spec_cache: True
|
45 |
+
keep_ckpts: 1 # Set this to 0 to keep all checkpoints
|
46 |
+
|
47 |
+
webui: # For `webui.py`, which is not supported yet in Style-Bert-VITS2.
|
48 |
+
# 推理设备
|
49 |
+
device: "cuda"
|
50 |
+
# 模型路径
|
51 |
+
model: "models/G_8000.pth"
|
52 |
+
# 配置文件路径
|
53 |
+
config_path: "config.json"
|
54 |
+
# 端口号
|
55 |
+
port: 7860
|
56 |
+
# 是否公开部署,对外网开放
|
57 |
+
share: false
|
58 |
+
# 是否开启debug模式
|
59 |
+
debug: false
|
60 |
+
# 语种识别库,可选langid, fastlid
|
61 |
+
language_identification_library: "langid"
|
62 |
+
|
63 |
+
# server_fastapi's config
|
64 |
+
server:
|
65 |
+
port: 5000
|
66 |
+
device: "cuda"
|
67 |
+
language: "JP"
|
68 |
+
limit: 100
|
69 |
+
origins:
|
70 |
+
- "*"
|
dict_data/default.csv
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Bert,,,8609,名詞,固有名詞,一般,*,*,*,Bert,バアト,バアト,0/3,*
|
2 |
+
VITS,,,8609,名詞,固有名詞,一般,*,*,*,VITS,ビッツ,ビッツ,0/3,*
|
3 |
+
VITS二,,,8609,名詞,固有名詞,一般,*,*,*,VITS二,ビッツツー,ビッツツー,4/5,*
|
4 |
+
BertVITS,,,8609,名詞,固有名詞,一般,*,*,*,BertVITS,バアトビッツ,バアトビッツ,4/6,*
|
5 |
+
担々麺,,,8609,名詞,固有名詞,一般,*,*,*,担々麺,タンタンメン,タンタンメン,3/6,*
|
initialize.py
ADDED
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import argparse
|
2 |
+
import json
|
3 |
+
import shutil
|
4 |
+
from pathlib import Path
|
5 |
+
|
6 |
+
import yaml
|
7 |
+
from huggingface_hub import hf_hub_download
|
8 |
+
|
9 |
+
from style_bert_vits2.logging import logger
|
10 |
+
|
11 |
+
|
12 |
+
def download_bert_models():
|
13 |
+
with open("bert/bert_models.json", encoding="utf-8") as fp:
|
14 |
+
models = json.load(fp)
|
15 |
+
for k, v in models.items():
|
16 |
+
local_path = Path("bert").joinpath(k)
|
17 |
+
for file in v["files"]:
|
18 |
+
if not Path(local_path).joinpath(file).exists():
|
19 |
+
logger.info(f"Downloading {k} {file}")
|
20 |
+
hf_hub_download(v["repo_id"], file, local_dir=local_path)
|
21 |
+
|
22 |
+
|
23 |
+
def download_slm_model():
|
24 |
+
local_path = Path("slm/wavlm-base-plus/")
|
25 |
+
file = "pytorch_model.bin"
|
26 |
+
if not Path(local_path).joinpath(file).exists():
|
27 |
+
logger.info(f"Downloading wavlm-base-plus {file}")
|
28 |
+
hf_hub_download("microsoft/wavlm-base-plus", file, local_dir=local_path)
|
29 |
+
|
30 |
+
|
31 |
+
def download_pretrained_models():
|
32 |
+
files = ["G_0.safetensors", "D_0.safetensors", "DUR_0.safetensors"]
|
33 |
+
local_path = Path("pretrained")
|
34 |
+
for file in files:
|
35 |
+
if not Path(local_path).joinpath(file).exists():
|
36 |
+
logger.info(f"Downloading pretrained {file}")
|
37 |
+
hf_hub_download(
|
38 |
+
"litagin/Style-Bert-VITS2-1.0-base", file, local_dir=local_path
|
39 |
+
)
|
40 |
+
|
41 |
+
|
42 |
+
def download_jp_extra_pretrained_models():
|
43 |
+
files = ["G_0.safetensors", "D_0.safetensors", "WD_0.safetensors"]
|
44 |
+
local_path = Path("pretrained_jp_extra")
|
45 |
+
for file in files:
|
46 |
+
if not Path(local_path).joinpath(file).exists():
|
47 |
+
logger.info(f"Downloading JP-Extra pretrained {file}")
|
48 |
+
hf_hub_download(
|
49 |
+
"litagin/Style-Bert-VITS2-2.0-base-JP-Extra", file, local_dir=local_path
|
50 |
+
)
|
51 |
+
|
52 |
+
|
53 |
+
def download_default_models():
|
54 |
+
files = [
|
55 |
+
"jvnv-F1-jp/config.json",
|
56 |
+
"jvnv-F1-jp/jvnv-F1-jp_e160_s14000.safetensors",
|
57 |
+
"jvnv-F1-jp/style_vectors.npy",
|
58 |
+
"jvnv-F2-jp/config.json",
|
59 |
+
"jvnv-F2-jp/jvnv-F2_e166_s20000.safetensors",
|
60 |
+
"jvnv-F2-jp/style_vectors.npy",
|
61 |
+
"jvnv-M1-jp/config.json",
|
62 |
+
"jvnv-M1-jp/jvnv-M1-jp_e158_s14000.safetensors",
|
63 |
+
"jvnv-M1-jp/style_vectors.npy",
|
64 |
+
"jvnv-M2-jp/config.json",
|
65 |
+
"jvnv-M2-jp/jvnv-M2-jp_e159_s17000.safetensors",
|
66 |
+
"jvnv-M2-jp/style_vectors.npy",
|
67 |
+
]
|
68 |
+
for file in files:
|
69 |
+
if not Path(f"model_assets/{file}").exists():
|
70 |
+
logger.info(f"Downloading {file}")
|
71 |
+
hf_hub_download(
|
72 |
+
"litagin/style_bert_vits2_jvnv",
|
73 |
+
file,
|
74 |
+
local_dir="model_assets",
|
75 |
+
)
|
76 |
+
additional_files = {
|
77 |
+
"litagin/sbv2_koharune_ami": [
|
78 |
+
"koharune-ami/config.json",
|
79 |
+
"koharune-ami/style_vectors.npy",
|
80 |
+
"koharune-ami/koharune-ami.safetensors",
|
81 |
+
],
|
82 |
+
"litagin/sbv2_amitaro": [
|
83 |
+
"amitaro/config.json",
|
84 |
+
"amitaro/style_vectors.npy",
|
85 |
+
"amitaro/amitaro.safetensors",
|
86 |
+
],
|
87 |
+
}
|
88 |
+
for repo_id, files in additional_files.items():
|
89 |
+
for file in files:
|
90 |
+
if not Path(f"model_assets/{file}").exists():
|
91 |
+
logger.info(f"Downloading {file}")
|
92 |
+
hf_hub_download(
|
93 |
+
repo_id,
|
94 |
+
file,
|
95 |
+
local_dir="model_assets",
|
96 |
+
)
|
97 |
+
|
98 |
+
|
99 |
+
def main():
|
100 |
+
parser = argparse.ArgumentParser()
|
101 |
+
parser.add_argument("--skip_default_models", action="store_true")
|
102 |
+
parser.add_argument("--only_infer", action="store_true")
|
103 |
+
parser.add_argument(
|
104 |
+
"--dataset_root",
|
105 |
+
type=str,
|
106 |
+
help="Dataset root path (default: Data)",
|
107 |
+
default=None,
|
108 |
+
)
|
109 |
+
parser.add_argument(
|
110 |
+
"--assets_root",
|
111 |
+
type=str,
|
112 |
+
help="Assets root path (default: model_assets)",
|
113 |
+
default=None,
|
114 |
+
)
|
115 |
+
args = parser.parse_args()
|
116 |
+
|
117 |
+
download_bert_models()
|
118 |
+
|
119 |
+
if not args.skip_default_models:
|
120 |
+
download_default_models()
|
121 |
+
if not args.only_infer:
|
122 |
+
download_slm_model()
|
123 |
+
download_pretrained_models()
|
124 |
+
download_jp_extra_pretrained_models()
|
125 |
+
|
126 |
+
# If configs/paths.yml not exists, create it
|
127 |
+
default_paths_yml = Path("configs/default_paths.yml")
|
128 |
+
paths_yml = Path("configs/paths.yml")
|
129 |
+
if not paths_yml.exists():
|
130 |
+
shutil.copy(default_paths_yml, paths_yml)
|
131 |
+
|
132 |
+
if args.dataset_root is None and args.assets_root is None:
|
133 |
+
return
|
134 |
+
|
135 |
+
# Change default paths if necessary
|
136 |
+
with open(paths_yml, encoding="utf-8") as f:
|
137 |
+
yml_data = yaml.safe_load(f)
|
138 |
+
if args.assets_root is not None:
|
139 |
+
yml_data["assets_root"] = args.assets_root
|
140 |
+
if args.dataset_root is not None:
|
141 |
+
yml_data["dataset_root"] = args.dataset_root
|
142 |
+
with open(paths_yml, "w", encoding="utf-8") as f:
|
143 |
+
yaml.dump(yml_data, f, allow_unicode=True)
|
144 |
+
|
145 |
+
|
146 |
+
if __name__ == "__main__":
|
147 |
+
main()
|
model_assets/.gitignore
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
# *
|
2 |
+
!.gitignore
|
model_assets/amitaro/amitaro.safetensors
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:19725d9bfd9d4b4fb17072ed4d40e01f6cf89c22cd83c15e1cccbf3ddf6b81de
|
3 |
+
size 251150980
|
model_assets/amitaro/config.json
ADDED
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"model_name": "amitaro",
|
3 |
+
"train": {
|
4 |
+
"log_interval": 200,
|
5 |
+
"eval_interval": 1000,
|
6 |
+
"seed": 42,
|
7 |
+
"epochs": 100,
|
8 |
+
"learning_rate": 0.0001,
|
9 |
+
"betas": [0.8, 0.99],
|
10 |
+
"eps": 1e-9,
|
11 |
+
"batch_size": 4,
|
12 |
+
"bf16_run": false,
|
13 |
+
"fp16_run": false,
|
14 |
+
"lr_decay": 0.99996,
|
15 |
+
"segment_size": 16384,
|
16 |
+
"init_lr_ratio": 1,
|
17 |
+
"warmup_epochs": 0,
|
18 |
+
"c_mel": 45,
|
19 |
+
"c_kl": 1.0,
|
20 |
+
"c_commit": 100,
|
21 |
+
"skip_optimizer": false,
|
22 |
+
"freeze_ZH_bert": false,
|
23 |
+
"freeze_JP_bert": false,
|
24 |
+
"freeze_EN_bert": false,
|
25 |
+
"freeze_emo": false,
|
26 |
+
"freeze_style": false,
|
27 |
+
"freeze_decoder": false
|
28 |
+
},
|
29 |
+
"data": {
|
30 |
+
"use_jp_extra": true,
|
31 |
+
"training_files": "Data\\amitaro\\train.list",
|
32 |
+
"validation_files": "Data\\amitaro\\val.list",
|
33 |
+
"max_wav_value": 32768.0,
|
34 |
+
"sampling_rate": 44100,
|
35 |
+
"filter_length": 2048,
|
36 |
+
"hop_length": 512,
|
37 |
+
"win_length": 2048,
|
38 |
+
"n_mel_channels": 128,
|
39 |
+
"mel_fmin": 0.0,
|
40 |
+
"mel_fmax": null,
|
41 |
+
"add_blank": true,
|
42 |
+
"n_speakers": 1,
|
43 |
+
"cleaned_text": true,
|
44 |
+
"spk2id": {
|
45 |
+
"あみたろ": 0
|
46 |
+
},
|
47 |
+
"num_styles": 5,
|
48 |
+
"style2id": {
|
49 |
+
"Neutral": 0,
|
50 |
+
"01": 1,
|
51 |
+
"02": 2,
|
52 |
+
"03": 3,
|
53 |
+
"04": 4
|
54 |
+
}
|
55 |
+
},
|
56 |
+
"model": {
|
57 |
+
"use_spk_conditioned_encoder": true,
|
58 |
+
"use_noise_scaled_mas": true,
|
59 |
+
"use_mel_posterior_encoder": false,
|
60 |
+
"use_duration_discriminator": false,
|
61 |
+
"use_wavlm_discriminator": true,
|
62 |
+
"inter_channels": 192,
|
63 |
+
"hidden_channels": 192,
|
64 |
+
"filter_channels": 768,
|
65 |
+
"n_heads": 2,
|
66 |
+
"n_layers": 6,
|
67 |
+
"kernel_size": 3,
|
68 |
+
"p_dropout": 0.1,
|
69 |
+
"resblock": "1",
|
70 |
+
"resblock_kernel_sizes": [3, 7, 11],
|
71 |
+
"resblock_dilation_sizes": [
|
72 |
+
[1, 3, 5],
|
73 |
+
[1, 3, 5],
|
74 |
+
[1, 3, 5]
|
75 |
+
],
|
76 |
+
"upsample_rates": [8, 8, 2, 2, 2],
|
77 |
+
"upsample_initial_channel": 512,
|
78 |
+
"upsample_kernel_sizes": [16, 16, 8, 2, 2],
|
79 |
+
"n_layers_q": 3,
|
80 |
+
"use_spectral_norm": false,
|
81 |
+
"gin_channels": 512,
|
82 |
+
"slm": {
|
83 |
+
"model": "./slm/wavlm-base-plus",
|
84 |
+
"sr": 16000,
|
85 |
+
"hidden": 768,
|
86 |
+
"nlayers": 13,
|
87 |
+
"initial_channel": 64
|
88 |
+
}
|
89 |
+
},
|
90 |
+
"version": "2.5.0-JP-Extra"
|
91 |
+
}
|
model_assets/amitaro/style_vectors.npy
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:f04b3d679982f11fd29da6ea27f93af86e5876b93aa4fbf910215ce145513cc9
|
3 |
+
size 5248
|
model_assets/jvnv-F1-jp/config.json
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"train": {
|
3 |
+
"log_interval": 200,
|
4 |
+
"eval_interval": 1000,
|
5 |
+
"seed": 42,
|
6 |
+
"epochs": 300,
|
7 |
+
"learning_rate": 0.0001,
|
8 |
+
"betas": [0.8, 0.99],
|
9 |
+
"eps": 1e-9,
|
10 |
+
"batch_size": 4,
|
11 |
+
"bf16_run": true,
|
12 |
+
"fp16_run": false,
|
13 |
+
"lr_decay": 0.99996,
|
14 |
+
"segment_size": 16384,
|
15 |
+
"init_lr_ratio": 1,
|
16 |
+
"warmup_epochs": 0,
|
17 |
+
"c_mel": 45,
|
18 |
+
"c_kl": 1.0,
|
19 |
+
"c_commit": 100,
|
20 |
+
"skip_optimizer": true,
|
21 |
+
"freeze_ZH_bert": false,
|
22 |
+
"freeze_JP_bert": false,
|
23 |
+
"freeze_EN_bert": false,
|
24 |
+
"freeze_emo": false,
|
25 |
+
"freeze_style": false
|
26 |
+
},
|
27 |
+
"data": {
|
28 |
+
"use_jp_extra": true,
|
29 |
+
"training_files": "Data/jvnv-F1-jp/train.list",
|
30 |
+
"validation_files": "Data/jvnv-F1-jp/val.list",
|
31 |
+
"max_wav_value": 32768.0,
|
32 |
+
"sampling_rate": 44100,
|
33 |
+
"filter_length": 2048,
|
34 |
+
"hop_length": 512,
|
35 |
+
"win_length": 2048,
|
36 |
+
"n_mel_channels": 128,
|
37 |
+
"mel_fmin": 0.0,
|
38 |
+
"mel_fmax": null,
|
39 |
+
"add_blank": true,
|
40 |
+
"n_speakers": 1,
|
41 |
+
"cleaned_text": true,
|
42 |
+
"spk2id": {
|
43 |
+
"jvnv-F1-jp": 0
|
44 |
+
},
|
45 |
+
"num_styles": 7,
|
46 |
+
"style2id": {
|
47 |
+
"Neutral": 0,
|
48 |
+
"Angry": 1,
|
49 |
+
"Disgust": 2,
|
50 |
+
"Fear": 3,
|
51 |
+
"Happy": 4,
|
52 |
+
"Sad": 5,
|
53 |
+
"Surprise": 6
|
54 |
+
}
|
55 |
+
},
|
56 |
+
"model": {
|
57 |
+
"use_spk_conditioned_encoder": true,
|
58 |
+
"use_noise_scaled_mas": true,
|
59 |
+
"use_mel_posterior_encoder": false,
|
60 |
+
"use_duration_discriminator": false,
|
61 |
+
"use_wavlm_discriminator": true,
|
62 |
+
"inter_channels": 192,
|
63 |
+
"hidden_channels": 192,
|
64 |
+
"filter_channels": 768,
|
65 |
+
"n_heads": 2,
|
66 |
+
"n_layers": 6,
|
67 |
+
"kernel_size": 3,
|
68 |
+
"p_dropout": 0.1,
|
69 |
+
"resblock": "1",
|
70 |
+
"resblock_kernel_sizes": [3, 7, 11],
|
71 |
+
"resblock_dilation_sizes": [
|
72 |
+
[1, 3, 5],
|
73 |
+
[1, 3, 5],
|
74 |
+
[1, 3, 5]
|
75 |
+
],
|
76 |
+
"upsample_rates": [8, 8, 2, 2, 2],
|
77 |
+
"upsample_initial_channel": 512,
|
78 |
+
"upsample_kernel_sizes": [16, 16, 8, 2, 2],
|
79 |
+
"n_layers_q": 3,
|
80 |
+
"use_spectral_norm": false,
|
81 |
+
"gin_channels": 512,
|
82 |
+
"slm": {
|
83 |
+
"model": "./slm/wavlm-base-plus",
|
84 |
+
"sr": 16000,
|
85 |
+
"hidden": 768,
|
86 |
+
"nlayers": 13,
|
87 |
+
"initial_channel": 64
|
88 |
+
}
|
89 |
+
},
|
90 |
+
"version": "2.0-JP-Extra",
|
91 |
+
"model_name": "jvnv-F1-jp"
|
92 |
+
}
|
model_assets/jvnv-F1-jp/jvnv-F1-jp_e160_s14000.safetensors
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:a90fa6c9444d9235c9ec4db99daf7c5c6a21cc26ca141b4c48455d66a3257d01
|
3 |
+
size 251150980
|
model_assets/jvnv-F1-jp/style_vectors.npy
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1f959bb45ed0922efc31ff24e9147253814f42cb1d2d1e2bb10391a9df368489
|
3 |
+
size 7296
|
model_assets/jvnv-F2-jp/config.json
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"train": {
|
3 |
+
"log_interval": 200,
|
4 |
+
"eval_interval": 1000,
|
5 |
+
"seed": 42,
|
6 |
+
"epochs": 300,
|
7 |
+
"learning_rate": 0.0001,
|
8 |
+
"betas": [0.8, 0.99],
|
9 |
+
"eps": 1e-9,
|
10 |
+
"batch_size": 4,
|
11 |
+
"bf16_run": false,
|
12 |
+
"fp16_run": false,
|
13 |
+
"lr_decay": 0.99996,
|
14 |
+
"segment_size": 16384,
|
15 |
+
"init_lr_ratio": 1,
|
16 |
+
"warmup_epochs": 0,
|
17 |
+
"c_mel": 45,
|
18 |
+
"c_kl": 1.0,
|
19 |
+
"c_commit": 100,
|
20 |
+
"skip_optimizer": true,
|
21 |
+
"freeze_ZH_bert": false,
|
22 |
+
"freeze_JP_bert": false,
|
23 |
+
"freeze_EN_bert": false,
|
24 |
+
"freeze_emo": false,
|
25 |
+
"freeze_style": false
|
26 |
+
},
|
27 |
+
"data": {
|
28 |
+
"use_jp_extra": true,
|
29 |
+
"training_files": "/content/drive/MyDrive/Style-Bert-VITS2/Data/jvnv-F2/train.list",
|
30 |
+
"validation_files": "/content/drive/MyDrive/Style-Bert-VITS2/Data/jvnv-F2/val.list",
|
31 |
+
"max_wav_value": 32768.0,
|
32 |
+
"sampling_rate": 44100,
|
33 |
+
"filter_length": 2048,
|
34 |
+
"hop_length": 512,
|
35 |
+
"win_length": 2048,
|
36 |
+
"n_mel_channels": 128,
|
37 |
+
"mel_fmin": 0.0,
|
38 |
+
"mel_fmax": null,
|
39 |
+
"add_blank": true,
|
40 |
+
"n_speakers": 1,
|
41 |
+
"cleaned_text": true,
|
42 |
+
"spk2id": {
|
43 |
+
"jvnv-F2-jp": 0
|
44 |
+
},
|
45 |
+
"num_styles": 7,
|
46 |
+
"style2id": {
|
47 |
+
"Neutral": 0,
|
48 |
+
"Angry": 1,
|
49 |
+
"Disgust": 2,
|
50 |
+
"Fear": 3,
|
51 |
+
"Happy": 4,
|
52 |
+
"Sad": 5,
|
53 |
+
"Surprise": 6
|
54 |
+
}
|
55 |
+
},
|
56 |
+
"model": {
|
57 |
+
"use_spk_conditioned_encoder": true,
|
58 |
+
"use_noise_scaled_mas": true,
|
59 |
+
"use_mel_posterior_encoder": false,
|
60 |
+
"use_duration_discriminator": false,
|
61 |
+
"use_wavlm_discriminator": true,
|
62 |
+
"inter_channels": 192,
|
63 |
+
"hidden_channels": 192,
|
64 |
+
"filter_channels": 768,
|
65 |
+
"n_heads": 2,
|
66 |
+
"n_layers": 6,
|
67 |
+
"kernel_size": 3,
|
68 |
+
"p_dropout": 0.1,
|
69 |
+
"resblock": "1",
|
70 |
+
"resblock_kernel_sizes": [3, 7, 11],
|
71 |
+
"resblock_dilation_sizes": [
|
72 |
+
[1, 3, 5],
|
73 |
+
[1, 3, 5],
|
74 |
+
[1, 3, 5]
|
75 |
+
],
|
76 |
+
"upsample_rates": [8, 8, 2, 2, 2],
|
77 |
+
"upsample_initial_channel": 512,
|
78 |
+
"upsample_kernel_sizes": [16, 16, 8, 2, 2],
|
79 |
+
"n_layers_q": 3,
|
80 |
+
"use_spectral_norm": false,
|
81 |
+
"gin_channels": 512,
|
82 |
+
"slm": {
|
83 |
+
"model": "./slm/wavlm-base-plus",
|
84 |
+
"sr": 16000,
|
85 |
+
"hidden": 768,
|
86 |
+
"nlayers": 13,
|
87 |
+
"initial_channel": 64
|
88 |
+
}
|
89 |
+
},
|
90 |
+
"version": "2.0-JP-Extra",
|
91 |
+
"model_name": "jvnv-F2-jp"
|
92 |
+
}
|
model_assets/jvnv-F2-jp/jvnv-F2_e166_s20000.safetensors
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:f6289a6f30bb9795744815b9da764a3c8198b18652d9fddef82fff1e14f0e784
|
3 |
+
size 251150980
|
model_assets/jvnv-F2-jp/style_vectors.npy
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:900f8cde3a336d12193fec7b7d8e6c5dc77b3a5d719a9be3f8598389cd88e643
|
3 |
+
size 7296
|
model_assets/jvnv-M1-jp/config.json
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"train": {
|
3 |
+
"log_interval": 200,
|
4 |
+
"eval_interval": 1000,
|
5 |
+
"seed": 42,
|
6 |
+
"epochs": 300,
|
7 |
+
"learning_rate": 0.0001,
|
8 |
+
"betas": [0.8, 0.99],
|
9 |
+
"eps": 1e-9,
|
10 |
+
"batch_size": 4,
|
11 |
+
"bf16_run": true,
|
12 |
+
"fp16_run": false,
|
13 |
+
"lr_decay": 0.99996,
|
14 |
+
"segment_size": 16384,
|
15 |
+
"init_lr_ratio": 1,
|
16 |
+
"warmup_epochs": 0,
|
17 |
+
"c_mel": 45,
|
18 |
+
"c_kl": 1.0,
|
19 |
+
"c_commit": 100,
|
20 |
+
"skip_optimizer": true,
|
21 |
+
"freeze_ZH_bert": false,
|
22 |
+
"freeze_JP_bert": false,
|
23 |
+
"freeze_EN_bert": false,
|
24 |
+
"freeze_emo": false,
|
25 |
+
"freeze_style": false
|
26 |
+
},
|
27 |
+
"data": {
|
28 |
+
"use_jp_extra": true,
|
29 |
+
"training_files": "Data/jvnv-M1-jp/train.list",
|
30 |
+
"validation_files": "Data/jvnv-M1-jp/val.list",
|
31 |
+
"max_wav_value": 32768.0,
|
32 |
+
"sampling_rate": 44100,
|
33 |
+
"filter_length": 2048,
|
34 |
+
"hop_length": 512,
|
35 |
+
"win_length": 2048,
|
36 |
+
"n_mel_channels": 128,
|
37 |
+
"mel_fmin": 0.0,
|
38 |
+
"mel_fmax": null,
|
39 |
+
"add_blank": true,
|
40 |
+
"n_speakers": 1,
|
41 |
+
"cleaned_text": true,
|
42 |
+
"spk2id": {
|
43 |
+
"jvnv-M1-jp": 0
|
44 |
+
},
|
45 |
+
"num_styles": 7,
|
46 |
+
"style2id": {
|
47 |
+
"Neutral": 0,
|
48 |
+
"Angry": 1,
|
49 |
+
"Disgust": 2,
|
50 |
+
"Fear": 3,
|
51 |
+
"Happy": 4,
|
52 |
+
"Sad": 5,
|
53 |
+
"Surprise": 6
|
54 |
+
}
|
55 |
+
},
|
56 |
+
"model": {
|
57 |
+
"use_spk_conditioned_encoder": true,
|
58 |
+
"use_noise_scaled_mas": true,
|
59 |
+
"use_mel_posterior_encoder": false,
|
60 |
+
"use_duration_discriminator": false,
|
61 |
+
"use_wavlm_discriminator": true,
|
62 |
+
"inter_channels": 192,
|
63 |
+
"hidden_channels": 192,
|
64 |
+
"filter_channels": 768,
|
65 |
+
"n_heads": 2,
|
66 |
+
"n_layers": 6,
|
67 |
+
"kernel_size": 3,
|
68 |
+
"p_dropout": 0.1,
|
69 |
+
"resblock": "1",
|
70 |
+
"resblock_kernel_sizes": [3, 7, 11],
|
71 |
+
"resblock_dilation_sizes": [
|
72 |
+
[1, 3, 5],
|
73 |
+
[1, 3, 5],
|
74 |
+
[1, 3, 5]
|
75 |
+
],
|
76 |
+
"upsample_rates": [8, 8, 2, 2, 2],
|
77 |
+
"upsample_initial_channel": 512,
|
78 |
+
"upsample_kernel_sizes": [16, 16, 8, 2, 2],
|
79 |
+
"n_layers_q": 3,
|
80 |
+
"use_spectral_norm": false,
|
81 |
+
"gin_channels": 512,
|
82 |
+
"slm": {
|
83 |
+
"model": "./slm/wavlm-base-plus",
|
84 |
+
"sr": 16000,
|
85 |
+
"hidden": 768,
|
86 |
+
"nlayers": 13,
|
87 |
+
"initial_channel": 64
|
88 |
+
}
|
89 |
+
},
|
90 |
+
"version": "2.0-JP-Extra",
|
91 |
+
"model_name": "jvnv-M1-jp"
|
92 |
+
}
|
model_assets/jvnv-M1-jp/jvnv-M1-jp_e158_s14000.safetensors
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:0d86765f1fe08dbba74cd06283e96b6941b3f232329fabbba9c30e6edc27887a
|
3 |
+
size 251150980
|
model_assets/jvnv-M1-jp/style_vectors.npy
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:7a925435e8c1c9efc8fc8e90e690655ab9a7bae00a790892e13e936510d04f05
|
3 |
+
size 7296
|
model_assets/jvnv-M2-jp/config.json
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"train": {
|
3 |
+
"log_interval": 200,
|
4 |
+
"eval_interval": 1000,
|
5 |
+
"seed": 42,
|
6 |
+
"epochs": 300,
|
7 |
+
"learning_rate": 0.0001,
|
8 |
+
"betas": [0.8, 0.99],
|
9 |
+
"eps": 1e-9,
|
10 |
+
"batch_size": 4,
|
11 |
+
"bf16_run": true,
|
12 |
+
"fp16_run": false,
|
13 |
+
"lr_decay": 0.99996,
|
14 |
+
"segment_size": 16384,
|
15 |
+
"init_lr_ratio": 1,
|
16 |
+
"warmup_epochs": 0,
|
17 |
+
"c_mel": 45,
|
18 |
+
"c_kl": 1.0,
|
19 |
+
"c_commit": 100,
|
20 |
+
"skip_optimizer": true,
|
21 |
+
"freeze_ZH_bert": false,
|
22 |
+
"freeze_JP_bert": false,
|
23 |
+
"freeze_EN_bert": false,
|
24 |
+
"freeze_emo": false,
|
25 |
+
"freeze_style": false
|
26 |
+
},
|
27 |
+
"data": {
|
28 |
+
"use_jp_extra": true,
|
29 |
+
"training_files": "Data/jvnv-M2-jp/train.list",
|
30 |
+
"validation_files": "Data/jvnv-M2-jp/val.list",
|
31 |
+
"max_wav_value": 32768.0,
|
32 |
+
"sampling_rate": 44100,
|
33 |
+
"filter_length": 2048,
|
34 |
+
"hop_length": 512,
|
35 |
+
"win_length": 2048,
|
36 |
+
"n_mel_channels": 128,
|
37 |
+
"mel_fmin": 0.0,
|
38 |
+
"mel_fmax": null,
|
39 |
+
"add_blank": true,
|
40 |
+
"n_speakers": 1,
|
41 |
+
"cleaned_text": true,
|
42 |
+
"spk2id": {
|
43 |
+
"jvnv-M2-jp": 0
|
44 |
+
},
|
45 |
+
"num_styles": 7,
|
46 |
+
"style2id": {
|
47 |
+
"Neutral": 0,
|
48 |
+
"Angry": 1,
|
49 |
+
"Disgust": 2,
|
50 |
+
"Fear": 3,
|
51 |
+
"Happy": 4,
|
52 |
+
"Sad": 5,
|
53 |
+
"Surprise": 6
|
54 |
+
}
|
55 |
+
},
|
56 |
+
"model": {
|
57 |
+
"use_spk_conditioned_encoder": true,
|
58 |
+
"use_noise_scaled_mas": true,
|
59 |
+
"use_mel_posterior_encoder": false,
|
60 |
+
"use_duration_discriminator": false,
|
61 |
+
"use_wavlm_discriminator": true,
|
62 |
+
"inter_channels": 192,
|
63 |
+
"hidden_channels": 192,
|
64 |
+
"filter_channels": 768,
|
65 |
+
"n_heads": 2,
|
66 |
+
"n_layers": 6,
|
67 |
+
"kernel_size": 3,
|
68 |
+
"p_dropout": 0.1,
|
69 |
+
"resblock": "1",
|
70 |
+
"resblock_kernel_sizes": [3, 7, 11],
|
71 |
+
"resblock_dilation_sizes": [
|
72 |
+
[1, 3, 5],
|
73 |
+
[1, 3, 5],
|
74 |
+
[1, 3, 5]
|
75 |
+
],
|
76 |
+
"upsample_rates": [8, 8, 2, 2, 2],
|
77 |
+
"upsample_initial_channel": 512,
|
78 |
+
"upsample_kernel_sizes": [16, 16, 8, 2, 2],
|
79 |
+
"n_layers_q": 3,
|
80 |
+
"use_spectral_norm": false,
|
81 |
+
"gin_channels": 512,
|
82 |
+
"slm": {
|
83 |
+
"model": "./slm/wavlm-base-plus",
|
84 |
+
"sr": 16000,
|
85 |
+
"hidden": 768,
|
86 |
+
"nlayers": 13,
|
87 |
+
"initial_channel": 64
|
88 |
+
}
|
89 |
+
},
|
90 |
+
"version": "2.0-JP-Extra",
|
91 |
+
"model_name": "jvnv-M2-jp"
|
92 |
+
}
|
model_assets/jvnv-M2-jp/jvnv-M2-jp_e159_s17000.safetensors
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:8245f39438076d36a3befd8aefb15c38830cef326c1f7c9d9c8e64b647645402
|
3 |
+
size 251150980
|
model_assets/jvnv-M2-jp/style_vectors.npy
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:c965bb63fa4a759d41a8a4a3649333125d6497ae8a705d81b7d5c5bd2854797c
|
3 |
+
size 7296
|
model_assets/koharune-ami/config.json
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"model_name": "小春音アミ",
|
3 |
+
"train": {
|
4 |
+
"log_interval": 200,
|
5 |
+
"eval_interval": 1000,
|
6 |
+
"seed": 42,
|
7 |
+
"epochs": 300,
|
8 |
+
"learning_rate": 0.0001,
|
9 |
+
"betas": [0.8, 0.99],
|
10 |
+
"eps": 1e-9,
|
11 |
+
"batch_size": 4,
|
12 |
+
"bf16_run": false,
|
13 |
+
"fp16_run": false,
|
14 |
+
"lr_decay": 0.99996,
|
15 |
+
"segment_size": 16384,
|
16 |
+
"init_lr_ratio": 1,
|
17 |
+
"warmup_epochs": 0,
|
18 |
+
"c_mel": 45,
|
19 |
+
"c_kl": 1.0,
|
20 |
+
"c_commit": 100,
|
21 |
+
"skip_optimizer": false,
|
22 |
+
"freeze_ZH_bert": false,
|
23 |
+
"freeze_JP_bert": false,
|
24 |
+
"freeze_EN_bert": false,
|
25 |
+
"freeze_emo": false,
|
26 |
+
"freeze_style": false,
|
27 |
+
"freeze_decoder": false
|
28 |
+
},
|
29 |
+
"data": {
|
30 |
+
"use_jp_extra": true,
|
31 |
+
"training_files": "Data\\amitaro_combined\\train.list",
|
32 |
+
"validation_files": "Data\\amitaro_combined\\val.list",
|
33 |
+
"max_wav_value": 32768.0,
|
34 |
+
"sampling_rate": 44100,
|
35 |
+
"filter_length": 2048,
|
36 |
+
"hop_length": 512,
|
37 |
+
"win_length": 2048,
|
38 |
+
"n_mel_channels": 128,
|
39 |
+
"mel_fmin": 0.0,
|
40 |
+
"mel_fmax": null,
|
41 |
+
"add_blank": true,
|
42 |
+
"n_speakers": 1,
|
43 |
+
"cleaned_text": true,
|
44 |
+
"spk2id": {
|
45 |
+
"小春音アミ": 0
|
46 |
+
},
|
47 |
+
"num_styles": 6,
|
48 |
+
"style2id": {
|
49 |
+
"Neutral": 0,
|
50 |
+
"るんるん": 1,
|
51 |
+
"ささやきA(無声)": 2,
|
52 |
+
"ささやきB(有声)": 3,
|
53 |
+
"ノーマル": 4,
|
54 |
+
"よふかし": 5
|
55 |
+
}
|
56 |
+
},
|
57 |
+
"model": {
|
58 |
+
"use_spk_conditioned_encoder": true,
|
59 |
+
"use_noise_scaled_mas": true,
|
60 |
+
"use_mel_posterior_encoder": false,
|
61 |
+
"use_duration_discriminator": false,
|
62 |
+
"use_wavlm_discriminator": true,
|
63 |
+
"inter_channels": 192,
|
64 |
+
"hidden_channels": 192,
|
65 |
+
"filter_channels": 768,
|
66 |
+
"n_heads": 2,
|
67 |
+
"n_layers": 6,
|
68 |
+
"kernel_size": 3,
|
69 |
+
"p_dropout": 0.1,
|
70 |
+
"resblock": "1",
|
71 |
+
"resblock_kernel_sizes": [3, 7, 11],
|
72 |
+
"resblock_dilation_sizes": [
|
73 |
+
[1, 3, 5],
|
74 |
+
[1, 3, 5],
|
75 |
+
[1, 3, 5]
|
76 |
+
],
|
77 |
+
"upsample_rates": [8, 8, 2, 2, 2],
|
78 |
+
"upsample_initial_channel": 512,
|
79 |
+
"upsample_kernel_sizes": [16, 16, 8, 2, 2],
|
80 |
+
"n_layers_q": 3,
|
81 |
+
"use_spectral_norm": false,
|
82 |
+
"gin_channels": 512,
|
83 |
+
"slm": {
|
84 |
+
"model": "./slm/wavlm-base-plus",
|
85 |
+
"sr": 16000,
|
86 |
+
"hidden": 768,
|
87 |
+
"nlayers": 13,
|
88 |
+
"initial_channel": 64
|
89 |
+
}
|
90 |
+
},
|
91 |
+
"version": "2.5.0-JP-Extra"
|
92 |
+
}
|
model_assets/koharune-ami/koharune-ami.safetensors
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:980119e6660fc241b1c297016933f43240b3fc6203a9f511dd2f2dac74042991
|
3 |
+
size 251150980
|
model_assets/koharune-ami/style_vectors.npy
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:867527952ff45b6621fe18b8b51728c29abe3aeb80b74e06f235df71aa82ae5d
|
3 |
+
size 6272
|
requirements.txt
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# cmudict
|
2 |
+
# cn2an
|
3 |
+
# faster-whisper==0.10.1
|
4 |
+
fastapi[standard]
|
5 |
+
# g2p_en
|
6 |
+
# GPUtil
|
7 |
+
# gradio
|
8 |
+
# jieba
|
9 |
+
# librosa==0.9.2
|
10 |
+
loguru
|
11 |
+
num2words
|
12 |
+
# protobuf==4.25
|
13 |
+
# psutil
|
14 |
+
# punctuators
|
15 |
+
pyannote.audio>=3.1.0
|
16 |
+
# pyloudnorm
|
17 |
+
pyopenjtalk-dict
|
18 |
+
# pypinyin
|
19 |
+
pyworld-prebuilt
|
20 |
+
# stable_ts
|
21 |
+
# tensorboard
|
22 |
+
torch
|
23 |
+
transformers
|
24 |
+
# umap-learn
|
server_editor.py
ADDED
@@ -0,0 +1,450 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""
|
2 |
+
Style-Bert-VITS2-Editor用のサーバー。
|
3 |
+
次のリポジトリ
|
4 |
+
https://github.com/litagin02/Style-Bert-VITS2-Editor
|
5 |
+
をビルドしてできあがったファイルをWebフォルダに入れて実行する。
|
6 |
+
|
7 |
+
TODO: リファクタリングやドキュメンテーションやAPI整理、辞書周りの改善などが必要。
|
8 |
+
"""
|
9 |
+
|
10 |
+
import argparse
|
11 |
+
import io
|
12 |
+
import shutil
|
13 |
+
import sys
|
14 |
+
import webbrowser
|
15 |
+
import zipfile
|
16 |
+
from datetime import datetime
|
17 |
+
from io import BytesIO
|
18 |
+
from pathlib import Path
|
19 |
+
from typing import Optional
|
20 |
+
|
21 |
+
import numpy as np
|
22 |
+
import requests
|
23 |
+
import torch
|
24 |
+
import uvicorn
|
25 |
+
from fastapi import APIRouter, FastAPI, HTTPException, status
|
26 |
+
from fastapi.middleware.cors import CORSMiddleware
|
27 |
+
from fastapi.responses import JSONResponse, Response
|
28 |
+
from fastapi.staticfiles import StaticFiles
|
29 |
+
from pydantic import BaseModel
|
30 |
+
from scipy.io import wavfile
|
31 |
+
|
32 |
+
from config import get_path_config
|
33 |
+
from initialize import download_default_models
|
34 |
+
from style_bert_vits2.constants import (
|
35 |
+
DEFAULT_ASSIST_TEXT_WEIGHT,
|
36 |
+
DEFAULT_NOISE,
|
37 |
+
DEFAULT_NOISEW,
|
38 |
+
DEFAULT_SDP_RATIO,
|
39 |
+
DEFAULT_STYLE,
|
40 |
+
DEFAULT_STYLE_WEIGHT,
|
41 |
+
VERSION,
|
42 |
+
Languages,
|
43 |
+
)
|
44 |
+
from style_bert_vits2.logging import logger
|
45 |
+
from style_bert_vits2.nlp import bert_models
|
46 |
+
from style_bert_vits2.nlp.japanese import pyopenjtalk_worker as pyopenjtalk
|
47 |
+
from style_bert_vits2.nlp.japanese.g2p_utils import g2kata_tone, kata_tone2phone_tone
|
48 |
+
from style_bert_vits2.nlp.japanese.normalizer import normalize_text
|
49 |
+
from style_bert_vits2.nlp.japanese.user_dict import (
|
50 |
+
apply_word,
|
51 |
+
delete_word,
|
52 |
+
read_dict,
|
53 |
+
rewrite_word,
|
54 |
+
update_dict,
|
55 |
+
)
|
56 |
+
from style_bert_vits2.tts_model import TTSModelHolder, TTSModelInfo
|
57 |
+
|
58 |
+
|
59 |
+
# ---フロントエンド部分に関する処理---
|
60 |
+
|
61 |
+
# エディターのビルドファイルを配置するディレクトリ
|
62 |
+
STATIC_DIR = Path("static")
|
63 |
+
# エディターの最新のビルドファイルのダウンロード日時を記録するファイル
|
64 |
+
LAST_DOWNLOAD_FILE = STATIC_DIR / "last_download.txt"
|
65 |
+
|
66 |
+
|
67 |
+
def download_static_files(user, repo, asset_name):
|
68 |
+
"""Style-Bert-VITS2エディターの最新のビルドzipをダウンロードして展開する。"""
|
69 |
+
|
70 |
+
logger.info("Checking for new release...")
|
71 |
+
latest_release = get_latest_release(user, repo)
|
72 |
+
if latest_release is None:
|
73 |
+
logger.warning(
|
74 |
+
"Failed to fetch the latest release. Proceeding without static files."
|
75 |
+
)
|
76 |
+
return
|
77 |
+
|
78 |
+
if not new_release_available(latest_release):
|
79 |
+
logger.info("No new release available. Proceeding with existing static files.")
|
80 |
+
return
|
81 |
+
|
82 |
+
logger.info("New release available. Downloading static files...")
|
83 |
+
asset_url = get_asset_url(latest_release, asset_name)
|
84 |
+
if asset_url:
|
85 |
+
if STATIC_DIR.exists():
|
86 |
+
shutil.rmtree(STATIC_DIR)
|
87 |
+
STATIC_DIR.mkdir(parents=True, exist_ok=True)
|
88 |
+
download_and_extract(asset_url, STATIC_DIR)
|
89 |
+
save_last_download(latest_release)
|
90 |
+
else:
|
91 |
+
logger.warning("Asset not found. Proceeding without static files.")
|
92 |
+
|
93 |
+
|
94 |
+
def get_latest_release(user, repo):
|
95 |
+
url = f"https://api.github.com/repos/{user}/{repo}/releases/latest"
|
96 |
+
try:
|
97 |
+
response = requests.get(url)
|
98 |
+
response.raise_for_status()
|
99 |
+
return response.json()
|
100 |
+
except requests.RequestException:
|
101 |
+
return None
|
102 |
+
|
103 |
+
|
104 |
+
def get_asset_url(release, asset_name):
|
105 |
+
for asset in release["assets"]:
|
106 |
+
if asset["name"] == asset_name:
|
107 |
+
return asset["browser_download_url"]
|
108 |
+
return None
|
109 |
+
|
110 |
+
|
111 |
+
def download_and_extract(url, extract_to: Path):
|
112 |
+
response = requests.get(url)
|
113 |
+
response.raise_for_status()
|
114 |
+
with zipfile.ZipFile(io.BytesIO(response.content)) as zip_ref:
|
115 |
+
zip_ref.extractall(extract_to)
|
116 |
+
|
117 |
+
# 展開先が1つのディレクトリだけの場合、その中身を直下に移動する
|
118 |
+
extracted_dirs = list(extract_to.iterdir())
|
119 |
+
if len(extracted_dirs) == 1 and extracted_dirs[0].is_dir():
|
120 |
+
for file in extracted_dirs[0].iterdir():
|
121 |
+
file.rename(extract_to / file.name)
|
122 |
+
extracted_dirs[0].rmdir()
|
123 |
+
|
124 |
+
# index.htmlが存在するかチェック
|
125 |
+
if not (extract_to / "index.html").exists():
|
126 |
+
logger.warning("index.html not found in the extracted files.")
|
127 |
+
|
128 |
+
|
129 |
+
def new_release_available(latest_release):
|
130 |
+
if LAST_DOWNLOAD_FILE.exists():
|
131 |
+
with open(LAST_DOWNLOAD_FILE) as file:
|
132 |
+
last_download_str = file.read().strip()
|
133 |
+
# 'Z'を除去して日時オブジェクトに変換
|
134 |
+
last_download_str = last_download_str.replace("Z", "+00:00")
|
135 |
+
last_download = datetime.fromisoformat(last_download_str)
|
136 |
+
return (
|
137 |
+
datetime.fromisoformat(
|
138 |
+
latest_release["published_at"].replace("Z", "+00:00")
|
139 |
+
)
|
140 |
+
> last_download
|
141 |
+
)
|
142 |
+
return True
|
143 |
+
|
144 |
+
|
145 |
+
def save_last_download(latest_release):
|
146 |
+
with open(LAST_DOWNLOAD_FILE, "w") as file:
|
147 |
+
file.write(latest_release["published_at"])
|
148 |
+
|
149 |
+
|
150 |
+
# ---フロントエンド部分に関する処理ここまで---
|
151 |
+
# 以降はAPIの設定
|
152 |
+
|
153 |
+
# pyopenjtalk_worker を起動
|
154 |
+
## pyopenjtalk_worker は TCP ソケットサーバーのため、ここで起動する
|
155 |
+
pyopenjtalk.initialize_worker()
|
156 |
+
|
157 |
+
# pyopenjtalk の辞書を更新
|
158 |
+
update_dict()
|
159 |
+
|
160 |
+
# 事前に BERT モデル/トークナイザーをロードしておく
|
161 |
+
## ここでロードしなくても必要になった際に自動ロードされるが、時間がかかるため事前にロードしておいた方が体験が良い
|
162 |
+
## server_editor.py は日本語にしか対応していないため、日本語の BERT モデル/トークナイザーのみロードする
|
163 |
+
bert_models.load_model(Languages.JP)
|
164 |
+
bert_models.load_tokenizer(Languages.JP)
|
165 |
+
|
166 |
+
|
167 |
+
class AudioResponse(Response):
|
168 |
+
media_type = "audio/wav"
|
169 |
+
|
170 |
+
|
171 |
+
origins = [
|
172 |
+
"http://localhost:3000",
|
173 |
+
"http://localhost:8000",
|
174 |
+
"http://127.0.0.1:3000",
|
175 |
+
"http://127.0.0.1:8000",
|
176 |
+
]
|
177 |
+
|
178 |
+
path_config = get_path_config()
|
179 |
+
parser = argparse.ArgumentParser()
|
180 |
+
parser.add_argument("--model_dir", type=str, default=path_config.assets_root)
|
181 |
+
parser.add_argument("--device", type=str, default="cuda")
|
182 |
+
parser.add_argument("--port", type=int, default=8000)
|
183 |
+
parser.add_argument("--inbrowser", action="store_true")
|
184 |
+
parser.add_argument("--line_length", type=int, default=None)
|
185 |
+
parser.add_argument("--line_count", type=int, default=None)
|
186 |
+
parser.add_argument("--skip_default_models", action="store_true")
|
187 |
+
parser.add_argument("--skip_static_files", action="store_true")
|
188 |
+
args = parser.parse_args()
|
189 |
+
device = args.device
|
190 |
+
if device == "cuda" and not torch.cuda.is_available():
|
191 |
+
device = "cpu"
|
192 |
+
model_dir = Path(args.model_dir)
|
193 |
+
port = int(args.port)
|
194 |
+
if not args.skip_default_models:
|
195 |
+
download_default_models()
|
196 |
+
skip_static_files = bool(args.skip_static_files)
|
197 |
+
|
198 |
+
model_holder = TTSModelHolder(model_dir, device)
|
199 |
+
if len(model_holder.model_names) == 0:
|
200 |
+
logger.error(f"Models not found in {model_dir}.")
|
201 |
+
sys.exit(1)
|
202 |
+
|
203 |
+
|
204 |
+
app = FastAPI()
|
205 |
+
|
206 |
+
|
207 |
+
app.add_middleware(
|
208 |
+
CORSMiddleware,
|
209 |
+
allow_origins=origins,
|
210 |
+
allow_credentials=True,
|
211 |
+
allow_methods=["*"],
|
212 |
+
allow_headers=["*"],
|
213 |
+
)
|
214 |
+
|
215 |
+
router = APIRouter()
|
216 |
+
|
217 |
+
|
218 |
+
@router.get("/version")
|
219 |
+
def version() -> str:
|
220 |
+
return VERSION
|
221 |
+
|
222 |
+
|
223 |
+
class MoraTone(BaseModel):
|
224 |
+
mora: str
|
225 |
+
tone: int
|
226 |
+
|
227 |
+
|
228 |
+
class TextRequest(BaseModel):
|
229 |
+
text: str
|
230 |
+
|
231 |
+
|
232 |
+
@router.post("/g2p")
|
233 |
+
async def read_item(item: TextRequest):
|
234 |
+
try:
|
235 |
+
# 最初に正規化しないと整合性がとれない
|
236 |
+
text = normalize_text(item.text)
|
237 |
+
kata_tone_list = g2kata_tone(text)
|
238 |
+
except Exception as e:
|
239 |
+
raise HTTPException(
|
240 |
+
status_code=400,
|
241 |
+
detail=f"Failed to convert {item.text} to katakana and tone, {e}",
|
242 |
+
)
|
243 |
+
return [MoraTone(mora=kata, tone=tone) for kata, tone in kata_tone_list]
|
244 |
+
|
245 |
+
|
246 |
+
@router.post("/normalize")
|
247 |
+
async def normalize(item: TextRequest):
|
248 |
+
return normalize_text(item.text)
|
249 |
+
|
250 |
+
|
251 |
+
@router.get("/models_info", response_model=list[TTSModelInfo])
|
252 |
+
def models_info():
|
253 |
+
return model_holder.models_info
|
254 |
+
|
255 |
+
|
256 |
+
class SynthesisRequest(BaseModel):
|
257 |
+
model: str
|
258 |
+
modelFile: str
|
259 |
+
text: str
|
260 |
+
moraToneList: list[MoraTone]
|
261 |
+
style: str = DEFAULT_STYLE
|
262 |
+
styleWeight: float = DEFAULT_STYLE_WEIGHT
|
263 |
+
assistText: str = ""
|
264 |
+
assistTextWeight: float = DEFAULT_ASSIST_TEXT_WEIGHT
|
265 |
+
speed: float = 1.0
|
266 |
+
noise: float = DEFAULT_NOISE
|
267 |
+
noisew: float = DEFAULT_NOISEW
|
268 |
+
sdpRatio: float = DEFAULT_SDP_RATIO
|
269 |
+
language: Languages = Languages.JP
|
270 |
+
silenceAfter: float = 0.5
|
271 |
+
pitchScale: float = 1.0
|
272 |
+
intonationScale: float = 1.0
|
273 |
+
speaker: Optional[str] = None
|
274 |
+
|
275 |
+
|
276 |
+
@router.post("/synthesis", response_class=AudioResponse)
|
277 |
+
def synthesis(request: SynthesisRequest):
|
278 |
+
if args.line_length is not None and len(request.text) > args.line_length:
|
279 |
+
raise HTTPException(
|
280 |
+
status_code=400,
|
281 |
+
detail=f"1行の文字数は{args.line_length}文字以下にしてください。",
|
282 |
+
)
|
283 |
+
try:
|
284 |
+
model = model_holder.get_model(
|
285 |
+
model_name=request.model, model_path_str=request.modelFile
|
286 |
+
)
|
287 |
+
except Exception as e:
|
288 |
+
logger.error(e)
|
289 |
+
raise HTTPException(
|
290 |
+
status_code=500,
|
291 |
+
detail=f"Failed to load model {request.model} from {request.modelFile}, {e}",
|
292 |
+
)
|
293 |
+
text = request.text
|
294 |
+
kata_tone_list = [
|
295 |
+
(mora_tone.mora, mora_tone.tone) for mora_tone in request.moraToneList
|
296 |
+
]
|
297 |
+
phone_tone = kata_tone2phone_tone(kata_tone_list)
|
298 |
+
tone = [t for _, t in phone_tone]
|
299 |
+
try:
|
300 |
+
sid = 0 if request.speaker is None else model.spk2id[request.speaker]
|
301 |
+
except KeyError:
|
302 |
+
raise HTTPException(
|
303 |
+
status_code=400,
|
304 |
+
detail=f"Speaker {request.speaker} not found in {model.spk2id}",
|
305 |
+
)
|
306 |
+
sr, audio = model.infer(
|
307 |
+
text=text,
|
308 |
+
language=request.language,
|
309 |
+
sdp_ratio=request.sdpRatio,
|
310 |
+
noise=request.noise,
|
311 |
+
noise_w=request.noisew,
|
312 |
+
length=1 / request.speed,
|
313 |
+
given_tone=tone,
|
314 |
+
style=request.style,
|
315 |
+
style_weight=request.styleWeight,
|
316 |
+
assist_text=request.assistText,
|
317 |
+
assist_text_weight=request.assistTextWeight,
|
318 |
+
use_assist_text=bool(request.assistText),
|
319 |
+
line_split=False,
|
320 |
+
pitch_scale=request.pitchScale,
|
321 |
+
intonation_scale=request.intonationScale,
|
322 |
+
speaker_id=sid,
|
323 |
+
)
|
324 |
+
|
325 |
+
with BytesIO() as wavContent:
|
326 |
+
wavfile.write(wavContent, sr, audio)
|
327 |
+
return Response(content=wavContent.getvalue(), media_type="audio/wav")
|
328 |
+
|
329 |
+
|
330 |
+
class MultiSynthesisRequest(BaseModel):
|
331 |
+
lines: list[SynthesisRequest]
|
332 |
+
|
333 |
+
|
334 |
+
@router.post("/multi_synthesis", response_class=AudioResponse)
|
335 |
+
def multi_synthesis(request: MultiSynthesisRequest):
|
336 |
+
lines = request.lines
|
337 |
+
if args.line_count is not None and len(lines) > args.line_count:
|
338 |
+
raise HTTPException(
|
339 |
+
status_code=400,
|
340 |
+
detail=f"行数は{args.line_count}行以下にしてください。",
|
341 |
+
)
|
342 |
+
audios = []
|
343 |
+
sr = None
|
344 |
+
for i, req in enumerate(lines):
|
345 |
+
if args.line_length is not None and len(req.text) > args.line_length:
|
346 |
+
raise HTTPException(
|
347 |
+
status_code=400,
|
348 |
+
detail=f"1行の文字数は{args.line_length}文字以下にしてください。",
|
349 |
+
)
|
350 |
+
try:
|
351 |
+
model = model_holder.get_model(
|
352 |
+
model_name=req.model, model_path_str=req.modelFile
|
353 |
+
)
|
354 |
+
except Exception as e:
|
355 |
+
logger.error(e)
|
356 |
+
raise HTTPException(
|
357 |
+
status_code=500,
|
358 |
+
detail=f"Failed to load model {req.model} from {req.modelFile}, {e}",
|
359 |
+
)
|
360 |
+
text = req.text
|
361 |
+
kata_tone_list = [
|
362 |
+
(mora_tone.mora, mora_tone.tone) for mora_tone in req.moraToneList
|
363 |
+
]
|
364 |
+
phone_tone = kata_tone2phone_tone(kata_tone_list)
|
365 |
+
tone = [t for _, t in phone_tone]
|
366 |
+
sr, audio = model.infer(
|
367 |
+
text=text,
|
368 |
+
language=req.language,
|
369 |
+
sdp_ratio=req.sdpRatio,
|
370 |
+
noise=req.noise,
|
371 |
+
noise_w=req.noisew,
|
372 |
+
length=1 / req.speed,
|
373 |
+
given_tone=tone,
|
374 |
+
style=req.style,
|
375 |
+
style_weight=req.styleWeight,
|
376 |
+
assist_text=req.assistText,
|
377 |
+
assist_text_weight=req.assistTextWeight,
|
378 |
+
use_assist_text=bool(req.assistText),
|
379 |
+
line_split=False,
|
380 |
+
pitch_scale=req.pitchScale,
|
381 |
+
intonation_scale=req.intonationScale,
|
382 |
+
)
|
383 |
+
audios.append(audio)
|
384 |
+
if i < len(lines) - 1:
|
385 |
+
silence = int(sr * req.silenceAfter)
|
386 |
+
audios.append(np.zeros(silence, dtype=np.int16))
|
387 |
+
audio = np.concatenate(audios)
|
388 |
+
|
389 |
+
with BytesIO() as wavContent:
|
390 |
+
wavfile.write(wavContent, sr, audio)
|
391 |
+
return Response(content=wavContent.getvalue(), media_type="audio/wav")
|
392 |
+
|
393 |
+
|
394 |
+
class UserDictWordRequest(BaseModel):
|
395 |
+
surface: str
|
396 |
+
pronunciation: str
|
397 |
+
accent_type: int # アクセント核位置(存在しない場合は0、1文字目は1)
|
398 |
+
priority: int = 5
|
399 |
+
|
400 |
+
|
401 |
+
@router.get("/user_dict")
|
402 |
+
def get_user_dict():
|
403 |
+
return read_dict()
|
404 |
+
|
405 |
+
|
406 |
+
@router.post("/user_dict_word")
|
407 |
+
def add_user_dict_word(request: UserDictWordRequest):
|
408 |
+
uuid = apply_word(
|
409 |
+
surface=request.surface,
|
410 |
+
pronunciation=request.pronunciation,
|
411 |
+
accent_type=request.accent_type,
|
412 |
+
priority=request.priority,
|
413 |
+
)
|
414 |
+
update_dict()
|
415 |
+
|
416 |
+
return JSONResponse(
|
417 |
+
status_code=status.HTTP_201_CREATED,
|
418 |
+
content={"uuid": uuid},
|
419 |
+
)
|
420 |
+
|
421 |
+
|
422 |
+
@router.put("/user_dict_word/{uuid}")
|
423 |
+
def update_user_dict_word(uuid: str, request: UserDictWordRequest):
|
424 |
+
rewrite_word(
|
425 |
+
word_uuid=uuid,
|
426 |
+
surface=request.surface,
|
427 |
+
pronunciation=request.pronunciation,
|
428 |
+
accent_type=request.accent_type,
|
429 |
+
priority=request.priority,
|
430 |
+
)
|
431 |
+
update_dict()
|
432 |
+
return JSONResponse(status_code=status.HTTP_200_OK, content={"uuid": uuid})
|
433 |
+
|
434 |
+
|
435 |
+
@router.delete("/user_dict_word/{uuid}")
|
436 |
+
def delete_user_dict_word(uuid: str):
|
437 |
+
delete_word(uuid)
|
438 |
+
update_dict()
|
439 |
+
return JSONResponse(status_code=status.HTTP_200_OK, content={"uuid": uuid})
|
440 |
+
|
441 |
+
|
442 |
+
app.include_router(router, prefix="/api")
|
443 |
+
|
444 |
+
if __name__ == "__main__":
|
445 |
+
if not skip_static_files:
|
446 |
+
download_static_files("litagin02", "Style-Bert-VITS2-Editor", "out.zip")
|
447 |
+
app.mount("/", StaticFiles(directory=STATIC_DIR, html=True), name="static")
|
448 |
+
if args.inbrowser:
|
449 |
+
webbrowser.open(f"http://localhost:{port}")
|
450 |
+
uvicorn.run(app, host="0.0.0.0", port=port)
|
static/404.html
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/5436164e6b2d4e5d-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/c745b8e5e8f4c069.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/caddefc280ca628b.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-ef267f3d2baed886.js"/><script src="/_next/static/chunks/fd9d1056-90960e0a7e77703c.js" async=""></script><script src="/_next/static/chunks/23-c6362522adba14e9.js" async=""></script><script src="/_next/static/chunks/main-app-af2733a7da866e1d.js" async=""></script><script src="/_next/static/chunks/154-fb54c66a309416b5.js" async=""></script><script src="/_next/static/chunks/450-e98783cfbe10f77f.js" async=""></script><script src="/_next/static/chunks/app/layout-003f3f0c2945f2e7.js" async=""></script><title>404: This page could not be found.</title><title>Style-Bert-VITS2 エディター</title><meta name="description" content="Style-Bert-VITS2の音声合成エディターです。"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_aaf875"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-ef267f3d2baed886.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/5436164e6b2d4e5d-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/css/c745b8e5e8f4c069.css\",\"style\"]\n4:HL[\"/_next/static/css/caddefc280ca628b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"5:I[5751,[],\"\"]\n7:I[9275,[],\"\"]\n8:I[1343,[],\"\"]\n9:I[9237,[\"154\",\"static/chunks/154-fb54c66a309416b5.js\",\"450\",\"static/chunks/450-e98783cfbe10f77f.js\",\"185\",\"static/chunks/app/layout-003f3f0c2945f2e7.js\"],\"default\"]\na:I[6324,[\"154\",\"static/chunks/154-fb54c66a309416b5.js\",\"450\",\"static/chunks/450-e98783cfbe10f77f.js\",\"185\",\"static/chunks/app/layout-003f3f0c2945f2e7.js\"],\"ThemeProvider\"]\nb:I[4016,[\"154\",\"static/chunks/154-fb54c66a309416b5.js\",\"450\",\"static/chunks/450-e98783cfbe10f77f.js\",\"185\",\"static/chunks/app/layout-003f3f0c2945f2e7.js\"],\"default\"]\n11:I[6130,[],\"\"]\nc:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\nd:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\ne:{\"display\":\"inline-block\"}\nf:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\n12:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c745b8e5e8f4c069.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/caddefc280ca628b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L5\",null,{\"buildId\":\"7Ebwtq-c5RXrtRkbNZ_HI\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/_not-found\",\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L6\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]]],null],null]},[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_aaf875\",\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$La\",null,{\"theme\":\"$b\",\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$c\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$d\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$e\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$f\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}]}]}]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[false,\"$L10\"],\"globalErrorComponent\":\"$11\",\"missingSlots\":\"$W12\"}]]\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Style-Bert-VITS2 エディター\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Style-Bert-VITS2の音声合成エディターです。\"}],[\"$\",\"meta\",\"4\",{\"name\":\"next-size-adjust\"}]]\n6:null\n"])</script></body></html>
|
static/_next/static/7Ebwtq-c5RXrtRkbNZ_HI/_buildManifest.js
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/_error":["static/chunks/pages/_error-1be831200e60c5c0.js"],sortedPages:["/_app","/_error"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
static/_next/static/7Ebwtq-c5RXrtRkbNZ_HI/_ssgManifest.js
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
|
static/_next/static/chunks/154-fb54c66a309416b5.js
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[154],{6309:function(e,t,r){r.d(t,{Z:function(){return G}});var n=function(){function e(e){var t=this;this._insertTag=function(e){var r;r=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,r),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){if(this.ctr%(this.isSpeedy?65e3:1)==0){var t;this._insertTag(((t=document.createElement("style")).setAttribute("data-emotion",this.key),void 0!==this.nonce&&t.setAttribute("nonce",this.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t))}var r=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(r);try{n.insertRule(e,n.cssRules.length)}catch(e){}}else r.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach(function(e){return e.parentNode&&e.parentNode.removeChild(e)}),this.tags=[],this.ctr=0},e}(),o=Math.abs,i=String.fromCharCode,a=Object.assign;function s(e,t,r){return e.replace(t,r)}function l(e,t){return e.indexOf(t)}function c(e,t){return 0|e.charCodeAt(t)}function u(e,t,r){return e.slice(t,r)}function f(e){return e.length}function p(e,t){return t.push(e),e}var d=1,m=1,h=0,y=0,g=0,b="";function v(e,t,r,n,o,i,a){return{value:e,root:t,parent:r,type:n,props:o,children:i,line:d,column:m,length:a,return:""}}function x(e,t){return a(v("",null,null,"",null,null,0),e,{length:-e.length},t)}function k(){return g=y<h?c(b,y++):0,m++,10===g&&(m=1,d++),g}function w(){return c(b,y)}function Z(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function A(e){return d=m=1,h=f(b=e),y=0,[]}function S(e){var t,r;return(t=y-1,r=function e(t){for(;k();)switch(g){case t:return y;case 34:case 39:34!==t&&39!==t&&e(g);break;case 40:41===t&&e(t);break;case 92:k()}return y}(91===e?e+2:40===e?e+1:e),u(b,t,r)).trim()}var O="-ms-",P="-moz-",C="-webkit-",$="comm",_="rule",T="decl",j="@keyframes";function R(e,t){for(var r="",n=e.length,o=0;o<n;o++)r+=t(e[o],o,e,t)||"";return r}function E(e,t,r,n){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case T:return e.return=e.return||e.value;case $:return"";case j:return e.return=e.value+"{"+R(e.children,n)+"}";case _:e.value=e.props.join(",")}return f(r=R(e.children,n))?e.return=e.value+"{"+r+"}":""}function M(e,t,r,n,i,a,l,c,f,p,d){for(var m=i-1,h=0===i?a:[""],y=h.length,g=0,b=0,x=0;g<n;++g)for(var k=0,w=u(e,m+1,m=o(b=l[g])),Z=e;k<y;++k)(Z=(b>0?h[k]+" "+w:s(w,/&\f/g,h[k])).trim())&&(f[x++]=Z);return v(e,t,r,0===i?_:c,f,p,d)}function I(e,t,r,n){return v(e,t,r,T,u(e,0,n),u(e,n+1,-1),n)}var z=function(e,t,r){for(var n=0,o=0;n=o,o=w(),38===n&&12===o&&(t[r]=1),!Z(o);)k();return u(b,e,y)},B=function(e,t){var r=-1,n=44;do switch(Z(n)){case 0:38===n&&12===w()&&(t[r]=1),e[r]+=z(y-1,t,r);break;case 2:e[r]+=S(n);break;case 4:if(44===n){e[++r]=58===w()?"&\f":"",t[r]=e[r].length;break}default:e[r]+=i(n)}while(n=k());return e},N=function(e,t){var r;return r=B(A(e),t),b="",r},L=new WeakMap,F=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,r=e.parent,n=e.column===r.column&&e.line===r.line;"rule"!==r.type;)if(!(r=r.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||L.get(r))&&!n){L.set(e,!0);for(var o=[],i=N(t,o),a=r.props,s=0,l=0;s<i.length;s++)for(var c=0;c<a.length;c++,l++)e.props[l]=o[s]?i[s].replace(/&\f/g,a[c]):a[c]+" "+i[s]}}},W=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}},K=[function(e,t,r,n){if(e.length>-1&&!e.return)switch(e.type){case T:e.return=function e(t,r){switch(45^c(t,0)?(((r<<2^c(t,0))<<2^c(t,1))<<2^c(t,2))<<2^c(t,3):0){case 5103:return C+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return C+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return C+t+P+t+O+t+t;case 6828:case 4268:return C+t+O+t+t;case 6165:return C+t+O+"flex-"+t+t;case 5187:return C+t+s(t,/(\w+).+(:[^]+)/,C+"box-$1$2"+O+"flex-$1$2")+t;case 5443:return C+t+O+"flex-item-"+s(t,/flex-|-self/,"")+t;case 4675:return C+t+O+"flex-line-pack"+s(t,/align-content|flex-|-self/,"")+t;case 5548:return C+t+O+s(t,"shrink","negative")+t;case 5292:return C+t+O+s(t,"basis","preferred-size")+t;case 6060:return C+"box-"+s(t,"-grow","")+C+t+O+s(t,"grow","positive")+t;case 4554:return C+s(t,/([^-])(transform)/g,"$1"+C+"$2")+t;case 6187:return s(s(s(t,/(zoom-|grab)/,C+"$1"),/(image-set)/,C+"$1"),t,"")+t;case 5495:case 3959:return s(t,/(image-set\([^]*)/,C+"$1$`$1");case 4968:return s(s(t,/(.+:)(flex-)?(.*)/,C+"box-pack:$3"+O+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+C+t+t;case 4095:case 3583:case 4068:case 2532:return s(t,/(.+)-inline(.+)/,C+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(f(t)-1-r>6)switch(c(t,r+1)){case 109:if(45!==c(t,r+4))break;case 102:return s(t,/(.+:)(.+)-([^]+)/,"$1"+C+"$2-$3$1"+P+(108==c(t,r+3)?"$3":"$2-$3"))+t;case 115:return~l(t,"stretch")?e(s(t,"stretch","fill-available"),r)+t:t}break;case 4949:if(115!==c(t,r+1))break;case 6444:switch(c(t,f(t)-3-(~l(t,"!important")&&10))){case 107:return s(t,":",":"+C)+t;case 101:return s(t,/(.+:)([^;!]+)(;|!.+)?/,"$1"+C+(45===c(t,14)?"inline-":"")+"box$3$1"+C+"$2$3$1"+O+"$2box$3")+t}break;case 5936:switch(c(t,r+11)){case 114:return C+t+O+s(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return C+t+O+s(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return C+t+O+s(t,/[svh]\w+-[tblr]{2}/,"lr")+t}return C+t+O+t+t}return t}(e.value,e.length);break;case j:return R([x(e,{value:s(e.value,"@","@"+C)})],n);case _:if(e.length){var o,i;return o=e.props,i=function(t){var r;switch(r=t,(r=/(::plac\w+|:read-\w+)/.exec(r))?r[0]:r){case":read-only":case":read-write":return R([x(e,{props:[s(t,/:(read-\w+)/,":"+P+"$1")]})],n);case"::placeholder":return R([x(e,{props:[s(t,/:(plac\w+)/,":"+C+"input-$1")]}),x(e,{props:[s(t,/:(plac\w+)/,":"+P+"$1")]}),x(e,{props:[s(t,/:(plac\w+)/,O+"input-$1")]})],n)}return""},o.map(i).join("")}}}],G=function(e){var t,r,o,a,h,x,O=e.key;if("css"===O){var P=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(P,function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))})}var C=e.stylisPlugins||K,_={},T=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+O+' "]'),function(e){for(var t=e.getAttribute("data-emotion").split(" "),r=1;r<t.length;r++)_[t[r]]=!0;T.push(e)});var j=(r=(t=[F,W].concat(C,[E,(o=function(e){x.insert(e)},function(e){!e.root&&(e=e.return)&&o(e)})])).length,function(e,n,o,i){for(var a="",s=0;s<r;s++)a+=t[s](e,n,o,i)||"";return a}),z=function(e){var t,r;return R((r=function e(t,r,n,o,a,h,x,A,O){for(var P,C=0,_=0,T=x,j=0,R=0,E=0,z=1,B=1,N=1,L=0,F="",W=a,K=h,G=o,H=F;B;)switch(E=L,L=k()){case 40:if(108!=E&&58==c(H,T-1)){-1!=l(H+=s(S(L),"&","&\f"),"&\f")&&(N=-1);break}case 34:case 39:case 91:H+=S(L);break;case 9:case 10:case 13:case 32:H+=function(e){for(;g=w();)if(g<33)k();else break;return Z(e)>2||Z(g)>3?"":" "}(E);break;case 92:H+=function(e,t){for(var r;--t&&k()&&!(g<48)&&!(g>102)&&(!(g>57)||!(g<65))&&(!(g>70)||!(g<97)););return r=y+(t<6&&32==w()&&32==k()),u(b,e,r)}(y-1,7);continue;case 47:switch(w()){case 42:case 47:p(v(P=function(e,t){for(;k();)if(e+g===57)break;else if(e+g===84&&47===w())break;return"/*"+u(b,t,y-1)+"*"+i(47===e?e:k())}(k(),y),r,n,$,i(g),u(P,2,-2),0),O);break;default:H+="/"}break;case 123*z:A[C++]=f(H)*N;case 125*z:case 59:case 0:switch(L){case 0:case 125:B=0;case 59+_:-1==N&&(H=s(H,/\f/g,"")),R>0&&f(H)-T&&p(R>32?I(H+";",o,n,T-1):I(s(H," ","")+";",o,n,T-2),O);break;case 59:H+=";";default:if(p(G=M(H,r,n,C,_,a,A,F,W=[],K=[],T),h),123===L){if(0===_)e(H,r,G,G,W,h,T,A,K);else switch(99===j&&110===c(H,3)?100:j){case 100:case 108:case 109:case 115:e(t,G,G,o&&p(M(t,G,G,0,0,a,A,F,a,W=[],T),K),a,K,T,A,o?W:K);break;default:e(H,G,G,G,[""],K,0,A,K)}}}C=_=R=0,z=N=1,F=H="",T=x;break;case 58:T=1+f(H),R=E;default:if(z<1){if(123==L)--z;else if(125==L&&0==z++&&125==(g=y>0?c(b,--y):0,m--,10===g&&(m=1,d--),g))continue}switch(H+=i(L),L*z){case 38:N=_>0?1:(H+="\f",-1);break;case 44:A[C++]=(f(H)-1)*N,N=1;break;case 64:45===w()&&(H+=S(k())),j=w(),_=T=f(F=H+=function(e){for(;!Z(w());)k();return u(b,e,y)}(y)),L++;break;case 45:45===E&&2==f(H)&&(z=0)}}return h}("",null,null,null,[""],t=A(t=e),0,[0],t),b="",r),j)};h=function(e,t,r,n){x=r,z(e?e+"{"+t.styles+"}":t.styles),n&&(B.inserted[t.name]=!0)};var B={key:O,sheet:new n({key:O,container:a,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:_,registered:{},insert:h};return B.sheet.hydrate(T),B}},5206:function(e,t,r){r.d(t,{Z:function(){return n}});function n(e){var t=Object.create(null);return function(r){return void 0===t[r]&&(t[r]=e(r)),t[r]}}},2606:function(e,t,r){r.d(t,{C:function(){return s},T:function(){return c},i:function(){return i},w:function(){return l}});var n=r(2265),o=r(6309);r(7595),r(1073);var i=!0,a=n.createContext("undefined"!=typeof HTMLElement?(0,o.Z)({key:"css"}):null),s=a.Provider,l=function(e){return(0,n.forwardRef)(function(t,r){return e(t,(0,n.useContext)(a),r)})};i||(l=function(e){return function(t){var r=(0,n.useContext)(a);return null===r?(r=(0,o.Z)({key:"css"}),n.createElement(a.Provider,{value:r},e(t,r))):e(t,r)}});var c=n.createContext({})},3098:function(e,t,r){r.d(t,{F4:function(){return u},iv:function(){return c},xB:function(){return l}});var n=r(2606),o=r(2265),i=r(9926),a=r(1073),s=r(7595);r(6309),r(6451);var l=(0,n.w)(function(e,t){var r=e.styles,l=(0,s.O)([r],void 0,o.useContext(n.T));if(!n.i){for(var c,u=l.name,f=l.styles,p=l.next;void 0!==p;)u+=" "+p.name,f+=p.styles,p=p.next;var d=!0===t.compat,m=t.insert("",{name:u,styles:f},t.sheet,d);return d?null:o.createElement("style",((c={})["data-emotion"]=t.key+"-global "+u,c.dangerouslySetInnerHTML={__html:m},c.nonce=t.sheet.nonce,c))}var h=o.useRef();return(0,a.j)(function(){var e=t.key+"-global",r=new t.sheet.constructor({key:e,nonce:t.sheet.nonce,container:t.sheet.container,speedy:t.sheet.isSpeedy}),n=!1,o=document.querySelector('style[data-emotion="'+e+" "+l.name+'"]');return t.sheet.tags.length&&(r.before=t.sheet.tags[0]),null!==o&&(n=!0,o.setAttribute("data-emotion",e),r.hydrate([o])),h.current=[r,n],function(){r.flush()}},[t]),(0,a.j)(function(){var e=h.current,r=e[0];if(e[1]){e[1]=!1;return}if(void 0!==l.next&&(0,i.My)(t,l.next,!0),r.tags.length){var n=r.tags[r.tags.length-1].nextElementSibling;r.before=n,r.flush()}t.insert("",l,r,!1)},[t,l.name]),null});function c(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,s.O)(t)}var u=function(){var e=c.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}},7595:function(e,t,r){r.d(t,{O:function(){return m}});var n,o={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},i=r(5206),a=/[A-Z]|^ms/g,s=/_EMO_([^_]+?)_([^]*?)_EMO_/g,l=function(e){return 45===e.charCodeAt(1)},c=function(e){return null!=e&&"boolean"!=typeof e},u=(0,i.Z)(function(e){return l(e)?e:e.replace(a,"-$&").toLowerCase()}),f=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(s,function(e,t,r){return n={name:t,styles:r,next:n},t})}return 1===o[e]||l(e)||"number"!=typeof t||0===t?t:t+"px"};function p(e,t,r){if(null==r)return"";if(void 0!==r.__emotion_styles)return r;switch(typeof r){case"boolean":return"";case"object":if(1===r.anim)return n={name:r.name,styles:r.styles,next:n},r.name;if(void 0!==r.styles){var o=r.next;if(void 0!==o)for(;void 0!==o;)n={name:o.name,styles:o.styles,next:n},o=o.next;return r.styles+";"}return function(e,t,r){var n="";if(Array.isArray(r))for(var o=0;o<r.length;o++)n+=p(e,t,r[o])+";";else for(var i in r){var a=r[i];if("object"!=typeof a)null!=t&&void 0!==t[a]?n+=i+"{"+t[a]+"}":c(a)&&(n+=u(i)+":"+f(i,a)+";");else if(Array.isArray(a)&&"string"==typeof a[0]&&(null==t||void 0===t[a[0]]))for(var s=0;s<a.length;s++)c(a[s])&&(n+=u(i)+":"+f(i,a[s])+";");else{var l=p(e,t,a);switch(i){case"animation":case"animationName":n+=u(i)+":"+l+";";break;default:n+=i+"{"+l+"}"}}}return n}(e,t,r);case"function":if(void 0!==e){var i=n,a=r(e);return n=i,p(e,t,a)}}if(null==t)return r;var s=t[r];return void 0!==s?s:r}var d=/label:\s*([^\s;\n{]+)\s*(;|$)/g,m=function(e,t,r){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var o,i=!0,a="";n=void 0;var s=e[0];null==s||void 0===s.raw?(i=!1,a+=p(r,t,s)):a+=s[0];for(var l=1;l<e.length;l++)a+=p(r,t,e[l]),i&&(a+=s[l]);d.lastIndex=0;for(var c="";null!==(o=d.exec(a));)c+="-"+o[1];return{name:function(e){for(var t,r=0,n=0,o=e.length;o>=4;++n,o-=4)t=(65535&(t=255&e.charCodeAt(n)|(255&e.charCodeAt(++n))<<8|(255&e.charCodeAt(++n))<<16|(255&e.charCodeAt(++n))<<24))*1540483477+((t>>>16)*59797<<16),t^=t>>>24,r=(65535&t)*1540483477+((t>>>16)*59797<<16)^(65535&r)*1540483477+((r>>>16)*59797<<16);switch(o){case 3:r^=(255&e.charCodeAt(n+2))<<16;case 2:r^=(255&e.charCodeAt(n+1))<<8;case 1:r^=255&e.charCodeAt(n),r=(65535&r)*1540483477+((r>>>16)*59797<<16)}return r^=r>>>13,(((r=(65535&r)*1540483477+((r>>>16)*59797<<16))^r>>>15)>>>0).toString(36)}(a)+c,styles:a,next:n}}},1073:function(e,t,r){r.d(t,{L:function(){return a},j:function(){return s}});var n,o=r(2265),i=!!(n||(n=r.t(o,2))).useInsertionEffect&&(n||(n=r.t(o,2))).useInsertionEffect,a=i||function(e){return e()},s=i||o.useLayoutEffect},9926:function(e,t,r){function n(e,t,r){var n="";return r.split(" ").forEach(function(r){void 0!==e[r]?t.push(e[r]+";"):n+=r+" "}),n}r.d(t,{My:function(){return i},fp:function(){return n},hC:function(){return o}});var o=function(e,t,r){var n=e.key+"-"+t.name;!1===r&&void 0===e.registered[n]&&(e.registered[n]=t.styles)},i=function(e,t,r){o(e,t,r);var n=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var i=t;do e.insert(t===i?"."+n:"",i,e.sheet,!0),i=i.next;while(void 0!==i)}}},1523:function(e,t,r){r.d(t,{Z:function(){return o}});var n=r(2988);function o(e,t){return(0,n.Z)({toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}}},t)}},8285:function(e,t,r){r.d(t,{A:function(){return T},Z:function(){return j}});var n=r(2988),o=r(3950),i=r(2414),a=r(6529),s=r(2501),l=r(9626),c=r(7267),u=r(1523),f=r(2305),p={black:"#000",white:"#fff"},d={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},m={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},h={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},y={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},g={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},b={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},v={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"};let x=["mode","contrastThreshold","tonalOffset"],k={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:p.white,default:p.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},w={text:{primary:p.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:p.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function Z(e,t,r,n){let o=n.light||n,i=n.dark||1.5*n;e[t]||(e.hasOwnProperty(r)?e[t]=e[r]:"light"===t?e.light=(0,f.$n)(e.main,o):"dark"===t&&(e.dark=(0,f._j)(e.main,i)))}var A=r(5032);function S(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return["".concat(t[0],"px ").concat(t[1],"px ").concat(t[2],"px ").concat(t[3],"px rgba(0,0,0,").concat(.2,")"),"".concat(t[4],"px ").concat(t[5],"px ").concat(t[6],"px ").concat(t[7],"px rgba(0,0,0,").concat(.14,")"),"".concat(t[8],"px ").concat(t[9],"px ").concat(t[10],"px ").concat(t[11],"px rgba(0,0,0,").concat(.12,")")].join(",")}let O=["none",S(0,2,1,-1,0,1,1,0,0,1,3,0),S(0,3,1,-2,0,2,2,0,0,1,5,0),S(0,3,3,-2,0,3,4,0,0,1,8,0),S(0,2,4,-1,0,4,5,0,0,1,10,0),S(0,3,5,-1,0,5,8,0,0,1,14,0),S(0,3,5,-1,0,6,10,0,0,1,18,0),S(0,4,5,-2,0,7,10,1,0,2,16,1),S(0,5,5,-3,0,8,10,1,0,3,14,2),S(0,5,6,-3,0,9,12,1,0,3,16,2),S(0,6,6,-3,0,10,14,1,0,4,18,3),S(0,6,7,-4,0,11,15,1,0,4,20,3),S(0,7,8,-4,0,12,17,2,0,5,22,4),S(0,7,8,-4,0,13,19,2,0,5,24,4),S(0,7,9,-4,0,14,21,2,0,5,26,4),S(0,8,9,-5,0,15,22,2,0,6,28,5),S(0,8,10,-5,0,16,24,2,0,6,30,5),S(0,8,11,-5,0,17,26,2,0,6,32,5),S(0,9,11,-5,0,18,28,2,0,7,34,6),S(0,9,12,-6,0,19,29,2,0,7,36,6),S(0,10,13,-6,0,20,31,3,0,8,38,7),S(0,10,13,-6,0,21,33,3,0,8,40,7),S(0,10,14,-6,0,22,35,3,0,8,42,7),S(0,11,14,-7,0,23,36,3,0,9,44,8),S(0,11,15,-7,0,24,38,3,0,9,46,8)];var P=r(1355),C={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};let $=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function _(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t=arguments.length,r=Array(t>1?t-1:0),S=1;S<t;S++)r[S-1]=arguments[S];let{mixins:_={},palette:T={},transitions:j={},typography:R={}}=e,E=(0,o.Z)(e,$);if(e.vars)throw Error((0,i.Z)(18));let M=function(e){let{mode:t="light",contrastThreshold:r=3,tonalOffset:s=.2}=e,l=(0,o.Z)(e,x),c=e.primary||function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";return"dark"===e?{main:g[200],light:g[50],dark:g[400]}:{main:g[700],light:g[400],dark:g[800]}}(t),u=e.secondary||function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";return"dark"===e?{main:m[200],light:m[50],dark:m[400]}:{main:m[500],light:m[300],dark:m[700]}}(t),A=e.error||function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";return"dark"===e?{main:h[500],light:h[300],dark:h[700]}:{main:h[700],light:h[400],dark:h[800]}}(t),S=e.info||function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";return"dark"===e?{main:b[400],light:b[300],dark:b[700]}:{main:b[700],light:b[500],dark:b[900]}}(t),O=e.success||function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";return"dark"===e?{main:v[400],light:v[300],dark:v[700]}:{main:v[800],light:v[500],dark:v[900]}}(t),P=e.warning||function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";return"dark"===e?{main:y[400],light:y[300],dark:y[700]}:{main:"#ed6c02",light:y[500],dark:y[900]}}(t);function C(e){return(0,f.mi)(e,w.text.primary)>=r?w.text.primary:k.text.primary}let $=e=>{let{color:t,name:r,mainShade:o=500,lightShade:a=300,darkShade:l=700}=e;if(!(t=(0,n.Z)({},t)).main&&t[o]&&(t.main=t[o]),!t.hasOwnProperty("main"))throw Error((0,i.Z)(11,r?" (".concat(r,")"):"",o));if("string"!=typeof t.main)throw Error((0,i.Z)(12,r?" (".concat(r,")"):"",JSON.stringify(t.main)));return Z(t,"light",a,s),Z(t,"dark",l,s),t.contrastText||(t.contrastText=C(t.main)),t};return(0,a.Z)((0,n.Z)({common:(0,n.Z)({},p),mode:t,primary:$({color:c,name:"primary"}),secondary:$({color:u,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:$({color:A,name:"error"}),warning:$({color:P,name:"warning"}),info:$({color:S,name:"info"}),success:$({color:O,name:"success"}),grey:d,contrastThreshold:r,getContrastText:C,augmentColor:$,tonalOffset:s},{dark:w,light:k}[t]),l)}(T),I=(0,s.Z)(e),z=(0,a.Z)(I,{mixins:(0,u.Z)(I.breakpoints,_),palette:M,shadows:O.slice(),typography:(0,A.Z)(M,R),transitions:(0,P.ZP)(j),zIndex:(0,n.Z)({},C)});return z=(0,a.Z)(z,E),(z=r.reduce((e,t)=>(0,a.Z)(e,t),z)).unstable_sxConfig=(0,n.Z)({},l.Z,null==E?void 0:E.unstable_sxConfig),z.unstable_sx=function(e){return(0,c.Z)({sx:e,theme:this})},z}function T(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return _(...t)}var j=_},1355:function(e,t,r){r.d(t,{Ui:function(){return a},ZP:function(){return u},x9:function(){return s}});var n=r(3950),o=r(2988);let i=["duration","easing","delay"],a={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},s={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function l(e){return"".concat(Math.round(e),"ms")}function c(e){if(!e)return 0;let t=e/36;return Math.round((4+15*t**.25+t/5)*10)}function u(e){let t=(0,o.Z)({},a,e.easing),r=(0,o.Z)({},s,e.duration);return(0,o.Z)({getAutoHeightDuration:c,create:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{duration:a=r.standard,easing:s=t.easeInOut,delay:c=0}=o;return(0,n.Z)(o,i),(Array.isArray(e)?e:[e]).map(e=>"".concat(e," ").concat("string"==typeof a?a:l(a)," ").concat(s," ").concat("string"==typeof c?c:l(c))).join(",")}},e,{easing:t,duration:r})}},5032:function(e,t,r){r.d(t,{Z:function(){return c}});var n=r(2988),o=r(3950),i=r(6529);let a=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"],s={textTransform:"uppercase"},l='"Roboto", "Helvetica", "Arial", sans-serif';function c(e,t){let r="function"==typeof t?t(e):t,{fontFamily:c=l,fontSize:u=14,fontWeightLight:f=300,fontWeightRegular:p=400,fontWeightMedium:d=500,fontWeightBold:m=700,htmlFontSize:h=16,allVariants:y,pxToRem:g}=r,b=(0,o.Z)(r,a),v=u/14,x=g||(e=>"".concat(e/h*v,"rem")),k=(e,t,r,o,i)=>(0,n.Z)({fontFamily:c,fontWeight:e,fontSize:x(t),lineHeight:r},c===l?{letterSpacing:"".concat(Math.round(o/t*1e5)/1e5,"em")}:{},i,y),w={h1:k(f,96,1.167,-1.5),h2:k(f,60,1.2,-.5),h3:k(p,48,1.167,0),h4:k(p,34,1.235,.25),h5:k(p,24,1.334,0),h6:k(d,20,1.6,.15),subtitle1:k(p,16,1.75,.15),subtitle2:k(d,14,1.57,.1),body1:k(p,16,1.5,.15),body2:k(p,14,1.43,.15),button:k(d,14,1.75,.4,s),caption:k(p,12,1.66,.4),overline:k(p,12,2.66,1,s),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return(0,i.Z)((0,n.Z)({htmlFontSize:h,pxToRem:x,fontFamily:c,fontSize:u,fontWeightLight:f,fontWeightRegular:p,fontWeightMedium:d,fontWeightBold:m},w),b,{clone:!1})}},7547:function(e,t,r){let n=(0,r(8285).Z)();t.Z=n},1931:function(e,t){t.Z=e=>((e<1?5.11916*e**2:4.5*Math.log(e+1)+2)/100).toFixed(2)},2737:function(e,t){t.Z="$$material"},8024:function(e,t,r){r.d(t,{Dz:function(){return s},FO:function(){return a}});var n=r(7906),o=r(7547),i=r(2737);let a=e=>(0,n.x9)(e)&&"classes"!==e,s=n.x9,l=(0,n.ZP)({themeId:i.Z,defaultTheme:o.Z,rootShouldForwardProp:a});t.ZP=l},2960:function(e,t,r){r.d(t,{Z:function(){return a}}),r(2265);var n=r(4874),o=r(7547),i=r(2737);function a(){let e=(0,n.Z)(o.Z);return e[i.Z]||e}},9281:function(e,t,r){r.d(t,{Z:function(){return a}});var n=r(4999),o=r(7547),i=r(2737);function a(e){let{props:t,name:r}=e;return(0,n.Z)({props:t,name:r,defaultTheme:o.Z,themeId:i.Z})}},6003:function(e,t,r){r.d(t,{Z:function(){return i}}),r(2265);var n=r(3098),o=r(7437);function i(e){let{styles:t,defaultTheme:r={}}=e,i="function"==typeof t?e=>t(null==e||0===Object.keys(e).length?r:e):t;return(0,o.jsx)(n.xB,{styles:i})}},3992:function(e,t,r){r.d(t,{ZP:function(){return g},Co:function(){return b}});var n=r(2988),o=r(2265),i=r(5206),a=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,s=(0,i.Z)(function(e){return a.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&91>e.charCodeAt(2)}),l=r(2606),c=r(9926),u=r(7595),f=r(1073),p=function(e){return"theme"!==e},d=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?s:p},m=function(e,t,r){var n;if(t){var o=t.shouldForwardProp;n=e.__emotion_forwardProp&&o?function(t){return e.__emotion_forwardProp(t)&&o(t)}:o}return"function"!=typeof n&&r&&(n=e.__emotion_forwardProp),n},h=function(e){var t=e.cache,r=e.serialized,n=e.isStringTag;return(0,c.hC)(t,r,n),(0,f.L)(function(){return(0,c.My)(t,r,n)}),null},y=(function e(t,r){var i,a,s=t.__emotion_real===t,f=s&&t.__emotion_base||t;void 0!==r&&(i=r.label,a=r.target);var p=m(t,r,s),y=p||d(f),g=!y("as");return function(){var b=arguments,v=s&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==i&&v.push("label:"+i+";"),null==b[0]||void 0===b[0].raw)v.push.apply(v,b);else{v.push(b[0][0]);for(var x=b.length,k=1;k<x;k++)v.push(b[k],b[0][k])}var w=(0,l.w)(function(e,t,r){var n=g&&e.as||f,i="",s=[],m=e;if(null==e.theme){for(var b in m={},e)m[b]=e[b];m.theme=o.useContext(l.T)}"string"==typeof e.className?i=(0,c.fp)(t.registered,s,e.className):null!=e.className&&(i=e.className+" ");var x=(0,u.O)(v.concat(s),t.registered,m);i+=t.key+"-"+x.name,void 0!==a&&(i+=" "+a);var k=g&&void 0===p?d(n):y,w={};for(var Z in e)(!g||"as"!==Z)&&k(Z)&&(w[Z]=e[Z]);return w.className=i,w.ref=r,o.createElement(o.Fragment,null,o.createElement(h,{cache:t,serialized:x,isStringTag:"string"==typeof n}),o.createElement(n,w))});return w.displayName=void 0!==i?i:"Styled("+("string"==typeof f?f:f.displayName||f.name||"Component")+")",w.defaultProps=t.defaultProps,w.__emotion_real=w,w.__emotion_base=f,w.__emotion_styles=v,w.__emotion_forwardProp=p,Object.defineProperty(w,"toString",{value:function(){return"."+a}}),w.withComponent=function(t,o){return e(t,(0,n.Z)({},r,o,{shouldForwardProp:m(w,o,!0)})).apply(void 0,v)},w}}).bind();/**
|
2 |
+
* @mui/styled-engine v5.15.9
|
3 |
+
*
|
4 |
+
* @license MIT
|
5 |
+
* This source code is licensed under the MIT license found in the
|
6 |
+
* LICENSE file in the root directory of this source tree.
|
7 |
+
*/function g(e,t){return y(e,t)}["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"].forEach(function(e){y[e]=y(e)});let b=(e,t)=>{Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}},6575:function(e,t,r){r.d(t,{L7:function(){return l},P$:function(){return u},VO:function(){return o},W8:function(){return s},dt:function(){return c},k9:function(){return a}});var n=r(6529);let o={xs:0,sm:600,md:900,lg:1200,xl:1536},i={keys:["xs","sm","md","lg","xl"],up:e=>`@media (min-width:${o[e]}px)`};function a(e,t,r){let n=e.theme||{};if(Array.isArray(t)){let e=n.breakpoints||i;return t.reduce((n,o,i)=>(n[e.up(e.keys[i])]=r(t[i]),n),{})}if("object"==typeof t){let e=n.breakpoints||i;return Object.keys(t).reduce((n,i)=>(-1!==Object.keys(e.values||o).indexOf(i)?n[e.up(i)]=r(t[i],i):n[i]=t[i],n),{})}return r(t)}function s(e={}){var t;return(null==(t=e.keys)?void 0:t.reduce((t,r)=>(t[e.up(r)]={},t),{}))||{}}function l(e,t){return e.reduce((e,t)=>{let r=e[t];return r&&0!==Object.keys(r).length||delete e[t],e},t)}function c(e,...t){let r=s(e),o=[r,...t].reduce((e,t)=>(0,n.Z)(e,t),{});return l(Object.keys(r),o)}function u({values:e,breakpoints:t,base:r}){let n;let o=Object.keys(r||function(e,t){if("object"!=typeof e)return{};let r={},n=Object.keys(t);return Array.isArray(e)?n.forEach((t,n)=>{n<e.length&&(r[t]=!0)}):n.forEach(t=>{null!=e[t]&&(r[t]=!0)}),r}(e,t));return 0===o.length?e:o.reduce((t,r,o)=>(Array.isArray(e)?(t[r]=null!=e[o]?e[o]:e[n],n=o):"object"==typeof e?(t[r]=null!=e[r]?e[r]:e[n],n=r):t[r]=e,t),{})}},2305:function(e,t,r){r.d(t,{$n:function(){return v},Fq:function(){return h},H3:function(){return d},LR:function(){return c},_4:function(){return k},_j:function(){return g},fk:function(){return function e(t,r,n){try{return e(t,r)}catch(e){return t}}},mi:function(){return m},oo:function(){return a},q8:function(){return b},tB:function(){return s},ux:function(){return x},ve:function(){return p},vq:function(){return f},wy:function(){return u},zp:function(){return y}});var n=r(2414),o=r(7609);function i(e,t=0,r=1){return(0,o.Z)(e,t,r)}function a(e){e=e.slice(1);let t=RegExp(`.{1,${e.length>=6?2:1}}`,"g"),r=e.match(t);return r&&1===r[0].length&&(r=r.map(e=>e+e)),r?`rgb${4===r.length?"a":""}(${r.map((e,t)=>t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3).join(", ")})`:""}function s(e){let t;if(e.type)return e;if("#"===e.charAt(0))return s(a(e));let r=e.indexOf("("),o=e.substring(0,r);if(-1===["rgb","rgba","hsl","hsla","color"].indexOf(o))throw Error((0,n.Z)(9,e));let i=e.substring(r+1,e.length-1);if("color"===o){if(t=(i=i.split(" ")).shift(),4===i.length&&"/"===i[3].charAt(0)&&(i[3]=i[3].slice(1)),-1===["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(t))throw Error((0,n.Z)(10,t))}else i=i.split(",");return{type:o,values:i=i.map(e=>parseFloat(e)),colorSpace:t}}let l=e=>{let t=s(e);return t.values.slice(0,3).map((e,r)=>-1!==t.type.indexOf("hsl")&&0!==r?`${e}%`:e).join(" ")},c=(e,t)=>{try{return l(e)}catch(t){return e}};function u(e){let{type:t,colorSpace:r}=e,{values:n}=e;return -1!==t.indexOf("rgb")?n=n.map((e,t)=>t<3?parseInt(e,10):e):-1!==t.indexOf("hsl")&&(n[1]=`${n[1]}%`,n[2]=`${n[2]}%`),n=-1!==t.indexOf("color")?`${r} ${n.join(" ")}`:`${n.join(", ")}`,`${t}(${n})`}function f(e){if(0===e.indexOf("#"))return e;let{values:t}=s(e);return`#${t.map((e,t)=>(function(e){let t=e.toString(16);return 1===t.length?`0${t}`:t})(3===t?Math.round(255*e):e)).join("")}`}function p(e){let{values:t}=e=s(e),r=t[0],n=t[1]/100,o=t[2]/100,i=n*Math.min(o,1-o),a=(e,t=(e+r/30)%12)=>o-i*Math.max(Math.min(t-3,9-t,1),-1),l="rgb",c=[Math.round(255*a(0)),Math.round(255*a(8)),Math.round(255*a(4))];return"hsla"===e.type&&(l+="a",c.push(t[3])),u({type:l,values:c})}function d(e){let t="hsl"===(e=s(e)).type||"hsla"===e.type?s(p(e)).values:e.values;return Number((.2126*(t=t.map(t=>("color"!==e.type&&(t/=255),t<=.03928?t/12.92:((t+.055)/1.055)**2.4)))[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function m(e,t){let r=d(e),n=d(t);return(Math.max(r,n)+.05)/(Math.min(r,n)+.05)}function h(e,t){return e=s(e),t=i(t),("rgb"===e.type||"hsl"===e.type)&&(e.type+="a"),"color"===e.type?e.values[3]=`/${t}`:e.values[3]=t,u(e)}function y(e,t,r){try{return h(e,t)}catch(t){return e}}function g(e,t){if(e=s(e),t=i(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb")||-1!==e.type.indexOf("color"))for(let r=0;r<3;r+=1)e.values[r]*=1-t;return u(e)}function b(e,t,r){try{return g(e,t)}catch(t){return e}}function v(e,t){if(e=s(e),t=i(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(let r=0;r<3;r+=1)e.values[r]+=(255-e.values[r])*t;else if(-1!==e.type.indexOf("color"))for(let r=0;r<3;r+=1)e.values[r]+=(1-e.values[r])*t;return u(e)}function x(e,t,r){try{return v(e,t)}catch(t){return e}}function k(e,t=.15){return d(e)>.5?g(e,t):v(e,t)}},7906:function(e,t,r){r.d(t,{ZP:function(){return g},x9:function(){return p}});var n=r(2988),o=r(3950),i=r(3992),a=r(6529),s=r(2501),l=r(7267);let c=["ownerState"],u=["variants"],f=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function p(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}let d=(0,s.Z)(),m=e=>e?e.charAt(0).toLowerCase()+e.slice(1):e;function h({defaultTheme:e,theme:t,themeId:r}){return 0===Object.keys(t).length?e:t[r]||t}function y(e,t){let{ownerState:r}=t,i=(0,o.Z)(t,c),a="function"==typeof e?e((0,n.Z)({ownerState:r},i)):e;if(Array.isArray(a))return a.flatMap(e=>y(e,(0,n.Z)({ownerState:r},i)));if(a&&"object"==typeof a&&Array.isArray(a.variants)){let{variants:e=[]}=a,t=(0,o.Z)(a,u);return e.forEach(e=>{let o=!0;"function"==typeof e.props?o=e.props((0,n.Z)({ownerState:r},i)):Object.keys(e.props).forEach(t=>{(null==r?void 0:r[t])!==e.props[t]&&i[t]!==e.props[t]&&(o=!1)}),o&&(Array.isArray(t)||(t=[t]),t.push("function"==typeof e.style?e.style((0,n.Z)({ownerState:r},i)):e.style))}),t}return a}function g(e={}){let{themeId:t,defaultTheme:r=d,rootShouldForwardProp:s=p,slotShouldForwardProp:c=p}=e,u=e=>(0,l.Z)((0,n.Z)({},e,{theme:h((0,n.Z)({},e,{defaultTheme:r,themeId:t}))}));return u.__mui_systemSx=!0,(e,l={})=>{var d;let g;(0,i.Co)(e,e=>e.filter(e=>!(null!=e&&e.__mui_systemSx)));let{name:b,slot:v,skipVariantsResolver:x,skipSx:k,overridesResolver:w=(d=m(v))?(e,t)=>t[d]:null}=l,Z=(0,o.Z)(l,f),A=void 0!==x?x:v&&"Root"!==v&&"root"!==v||!1,S=k||!1,O=p;"Root"===v||"root"===v?O=s:v?O=c:"string"==typeof e&&e.charCodeAt(0)>96&&(O=void 0);let P=(0,i.ZP)(e,(0,n.Z)({shouldForwardProp:O,label:g},Z)),C=e=>"function"==typeof e&&e.__emotion_real!==e||(0,a.P)(e)?o=>y(e,(0,n.Z)({},o,{theme:h({theme:o.theme,defaultTheme:r,themeId:t})})):e,$=(o,...i)=>{let a=C(o),s=i?i.map(C):[];b&&w&&s.push(e=>{let o=h((0,n.Z)({},e,{defaultTheme:r,themeId:t}));if(!o.components||!o.components[b]||!o.components[b].styleOverrides)return null;let i=o.components[b].styleOverrides,a={};return Object.entries(i).forEach(([t,r])=>{a[t]=y(r,(0,n.Z)({},e,{theme:o}))}),w(e,a)}),b&&!A&&s.push(e=>{var o;let i=h((0,n.Z)({},e,{defaultTheme:r,themeId:t}));return y({variants:null==i||null==(o=i.components)||null==(o=o[b])?void 0:o.variants},(0,n.Z)({},e,{theme:i}))}),S||s.push(u);let l=s.length-i.length;if(Array.isArray(o)&&l>0){let e=Array(l).fill("");(a=[...o,...e]).raw=[...o.raw,...e]}let c=P(a,...s);return e.muiName&&(c.muiName=e.muiName),c};return P.withConfig&&($.withConfig=P.withConfig),$}}},9329:function(e,t,r){r.d(t,{Z:function(){return s}});var n=r(3950),o=r(2988);let i=["values","unit","step"],a=e=>{let t=Object.keys(e).map(t=>({key:t,val:e[t]}))||[];return t.sort((e,t)=>e.val-t.val),t.reduce((e,t)=>(0,o.Z)({},e,{[t.key]:t.val}),{})};function s(e){let{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:r="px",step:s=5}=e,l=(0,n.Z)(e,i),c=a(t),u=Object.keys(c);function f(e){let n="number"==typeof t[e]?t[e]:e;return`@media (min-width:${n}${r})`}function p(e){let n="number"==typeof t[e]?t[e]:e;return`@media (max-width:${n-s/100}${r})`}function d(e,n){let o=u.indexOf(n);return`@media (min-width:${"number"==typeof t[e]?t[e]:e}${r}) and (max-width:${(-1!==o&&"number"==typeof t[u[o]]?t[u[o]]:n)-s/100}${r})`}return(0,o.Z)({keys:u,values:c,up:f,down:p,between:d,only:function(e){return u.indexOf(e)+1<u.length?d(e,u[u.indexOf(e)+1]):f(e)},not:function(e){let t=u.indexOf(e);return 0===t?f(u[1]):t===u.length-1?p(u[t]):d(e,u[u.indexOf(e)+1]).replace("@media","@media not all and")},unit:r},l)}},6669:function(e,t,r){r.d(t,{Z:function(){return o}});var n=r(3351);function o(e=8){if(e.mui)return e;let t=(0,n.hB)({spacing:e}),r=(...e)=>(0===e.length?[1]:e).map(e=>{let r=t(e);return"number"==typeof r?`${r}px`:r}).join(" ");return r.mui=!0,r}},2501:function(e,t,r){r.d(t,{Z:function(){return d}});var n=r(2988),o=r(3950),i=r(6529),a=r(9329),s={borderRadius:4},l=r(6669),c=r(7267),u=r(9626);function f(e,t){return this.vars&&"function"==typeof this.getColorSchemeSelector?{[this.getColorSchemeSelector(e).replace(/(\[[^\]]+\])/,"*:where($1)")]:t}:this.palette.mode===e?t:{}}let p=["breakpoints","palette","spacing","shape"];var d=function(e={},...t){let{breakpoints:r={},palette:d={},spacing:m,shape:h={}}=e,y=(0,o.Z)(e,p),g=(0,a.Z)(r),b=(0,l.Z)(m),v=(0,i.Z)({breakpoints:g,direction:"ltr",components:{},palette:(0,n.Z)({mode:"light"},d),spacing:b,shape:(0,n.Z)({},s,h)},y);return v.applyStyles=f,(v=t.reduce((e,t)=>(0,i.Z)(e,t),v)).unstable_sxConfig=(0,n.Z)({},u.Z,null==y?void 0:y.unstable_sxConfig),v.unstable_sx=function(e){return(0,c.Z)({sx:e,theme:this})},v}},7682:function(e,t,r){var n=r(6529);t.Z=function(e,t){return t?(0,n.Z)(e,t,{clone:!1}):e}},3351:function(e,t,r){r.d(t,{hB:function(){return m},eI:function(){return d},NA:function(){return h},e6:function(){return g},o3:function(){return b}});var n=r(6575),o=r(5166),i=r(7682);let a={m:"margin",p:"padding"},s={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},l={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},c=function(e){let t={};return r=>(void 0===t[r]&&(t[r]=e(r)),t[r])}(e=>{if(e.length>2){if(!l[e])return[e];e=l[e]}let[t,r]=e.split(""),n=a[t],o=s[r]||"";return Array.isArray(o)?o.map(e=>n+e):[n+o]}),u=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],f=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],p=[...u,...f];function d(e,t,r,n){var i;let a=null!=(i=(0,o.DW)(e,t,!1))?i:r;return"number"==typeof a?e=>"string"==typeof e?e:a*e:Array.isArray(a)?e=>"string"==typeof e?e:a[e]:"function"==typeof a?a:()=>void 0}function m(e){return d(e,"spacing",8,"spacing")}function h(e,t){if("string"==typeof t||null==t)return t;let r=e(Math.abs(t));return t>=0?r:"number"==typeof r?-r:`-${r}`}function y(e,t){let r=m(e.theme);return Object.keys(e).map(o=>(function(e,t,r,o){var i;if(-1===t.indexOf(r))return null;let a=(i=c(r),e=>i.reduce((t,r)=>(t[r]=h(o,e),t),{})),s=e[r];return(0,n.k9)(e,s,a)})(e,t,o,r)).reduce(i.Z,{})}function g(e){return y(e,u)}function b(e){return y(e,f)}function v(e){return y(e,p)}g.propTypes={},g.filterProps=u,b.propTypes={},b.filterProps=f,v.propTypes={},v.filterProps=p},5166:function(e,t,r){r.d(t,{DW:function(){return i},Jq:function(){return a}});var n=r(1259),o=r(6575);function i(e,t,r=!0){if(!t||"string"!=typeof t)return null;if(e&&e.vars&&r){let r=`vars.${t}`.split(".").reduce((e,t)=>e&&e[t]?e[t]:null,e);if(null!=r)return r}return t.split(".").reduce((e,t)=>e&&null!=e[t]?e[t]:null,e)}function a(e,t,r,n=r){let o;return o="function"==typeof e?e(r):Array.isArray(e)?e[r]||n:i(e,r)||n,t&&(o=t(o,n,e)),o}t.ZP=function(e){let{prop:t,cssProperty:r=e.prop,themeKey:s,transform:l}=e,c=e=>{if(null==e[t])return null;let c=e[t],u=i(e.theme,s)||{};return(0,o.k9)(e,c,e=>{let o=a(u,l,e);return(e===o&&"string"==typeof e&&(o=a(u,l,`${t}${"default"===e?"":(0,n.Z)(e)}`,e)),!1===r)?o:{[r]:o}})};return c.propTypes={},c.filterProps=[t],c}},9626:function(e,t,r){r.d(t,{Z:function(){return L}});var n=r(3351),o=r(5166),i=r(7682),a=function(...e){let t=e.reduce((e,t)=>(t.filterProps.forEach(r=>{e[r]=t}),e),{}),r=e=>Object.keys(e).reduce((r,n)=>t[n]?(0,i.Z)(r,t[n](e)):r,{});return r.propTypes={},r.filterProps=e.reduce((e,t)=>e.concat(t.filterProps),[]),r},s=r(6575);function l(e){return"number"!=typeof e?e:`${e}px solid`}function c(e,t){return(0,o.ZP)({prop:e,themeKey:"borders",transform:t})}let u=c("border",l),f=c("borderTop",l),p=c("borderRight",l),d=c("borderBottom",l),m=c("borderLeft",l),h=c("borderColor"),y=c("borderTopColor"),g=c("borderRightColor"),b=c("borderBottomColor"),v=c("borderLeftColor"),x=c("outline",l),k=c("outlineColor"),w=e=>{if(void 0!==e.borderRadius&&null!==e.borderRadius){let t=(0,n.eI)(e.theme,"shape.borderRadius",4,"borderRadius");return(0,s.k9)(e,e.borderRadius,e=>({borderRadius:(0,n.NA)(t,e)}))}return null};w.propTypes={},w.filterProps=["borderRadius"],a(u,f,p,d,m,h,y,g,b,v,w,x,k);let Z=e=>{if(void 0!==e.gap&&null!==e.gap){let t=(0,n.eI)(e.theme,"spacing",8,"gap");return(0,s.k9)(e,e.gap,e=>({gap:(0,n.NA)(t,e)}))}return null};Z.propTypes={},Z.filterProps=["gap"];let A=e=>{if(void 0!==e.columnGap&&null!==e.columnGap){let t=(0,n.eI)(e.theme,"spacing",8,"columnGap");return(0,s.k9)(e,e.columnGap,e=>({columnGap:(0,n.NA)(t,e)}))}return null};A.propTypes={},A.filterProps=["columnGap"];let S=e=>{if(void 0!==e.rowGap&&null!==e.rowGap){let t=(0,n.eI)(e.theme,"spacing",8,"rowGap");return(0,s.k9)(e,e.rowGap,e=>({rowGap:(0,n.NA)(t,e)}))}return null};S.propTypes={},S.filterProps=["rowGap"];let O=(0,o.ZP)({prop:"gridColumn"}),P=(0,o.ZP)({prop:"gridRow"}),C=(0,o.ZP)({prop:"gridAutoFlow"}),$=(0,o.ZP)({prop:"gridAutoColumns"}),_=(0,o.ZP)({prop:"gridAutoRows"}),T=(0,o.ZP)({prop:"gridTemplateColumns"});function j(e,t){return"grey"===t?t:e}function R(e){return e<=1&&0!==e?`${100*e}%`:e}a(Z,A,S,O,P,C,$,_,T,(0,o.ZP)({prop:"gridTemplateRows"}),(0,o.ZP)({prop:"gridTemplateAreas"}),(0,o.ZP)({prop:"gridArea"})),a((0,o.ZP)({prop:"color",themeKey:"palette",transform:j}),(0,o.ZP)({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:j}),(0,o.ZP)({prop:"backgroundColor",themeKey:"palette",transform:j}));let E=(0,o.ZP)({prop:"width",transform:R}),M=e=>void 0!==e.maxWidth&&null!==e.maxWidth?(0,s.k9)(e,e.maxWidth,t=>{var r,n;let o=(null==(r=e.theme)||null==(r=r.breakpoints)||null==(r=r.values)?void 0:r[t])||s.VO[t];return o?(null==(n=e.theme)||null==(n=n.breakpoints)?void 0:n.unit)!=="px"?{maxWidth:`${o}${e.theme.breakpoints.unit}`}:{maxWidth:o}:{maxWidth:R(t)}}):null;M.filterProps=["maxWidth"];let I=(0,o.ZP)({prop:"minWidth",transform:R}),z=(0,o.ZP)({prop:"height",transform:R}),B=(0,o.ZP)({prop:"maxHeight",transform:R}),N=(0,o.ZP)({prop:"minHeight",transform:R});(0,o.ZP)({prop:"size",cssProperty:"width",transform:R}),(0,o.ZP)({prop:"size",cssProperty:"height",transform:R}),a(E,M,I,z,B,N,(0,o.ZP)({prop:"boxSizing"}));var L={border:{themeKey:"borders",transform:l},borderTop:{themeKey:"borders",transform:l},borderRight:{themeKey:"borders",transform:l},borderBottom:{themeKey:"borders",transform:l},borderLeft:{themeKey:"borders",transform:l},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:l},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:w},color:{themeKey:"palette",transform:j},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:j},backgroundColor:{themeKey:"palette",transform:j},p:{style:n.o3},pt:{style:n.o3},pr:{style:n.o3},pb:{style:n.o3},pl:{style:n.o3},px:{style:n.o3},py:{style:n.o3},padding:{style:n.o3},paddingTop:{style:n.o3},paddingRight:{style:n.o3},paddingBottom:{style:n.o3},paddingLeft:{style:n.o3},paddingX:{style:n.o3},paddingY:{style:n.o3},paddingInline:{style:n.o3},paddingInlineStart:{style:n.o3},paddingInlineEnd:{style:n.o3},paddingBlock:{style:n.o3},paddingBlockStart:{style:n.o3},paddingBlockEnd:{style:n.o3},m:{style:n.e6},mt:{style:n.e6},mr:{style:n.e6},mb:{style:n.e6},ml:{style:n.e6},mx:{style:n.e6},my:{style:n.e6},margin:{style:n.e6},marginTop:{style:n.e6},marginRight:{style:n.e6},marginBottom:{style:n.e6},marginLeft:{style:n.e6},marginX:{style:n.e6},marginY:{style:n.e6},marginInline:{style:n.e6},marginInlineStart:{style:n.e6},marginInlineEnd:{style:n.e6},marginBlock:{style:n.e6},marginBlockStart:{style:n.e6},marginBlockEnd:{style:n.e6},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:Z},rowGap:{style:S},columnGap:{style:A},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:R},maxWidth:{style:M},minWidth:{transform:R},height:{transform:R},maxHeight:{transform:R},minHeight:{transform:R},boxSizing:{},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}}},7267:function(e,t,r){var n=r(1259),o=r(7682),i=r(5166),a=r(6575),s=r(9626);let l=function(){function e(e,t,r,o){let s={[e]:t,theme:r},l=o[e];if(!l)return{[e]:t};let{cssProperty:c=e,themeKey:u,transform:f,style:p}=l;if(null==t)return null;if("typography"===u&&"inherit"===t)return{[e]:t};let d=(0,i.DW)(r,u)||{};return p?p(s):(0,a.k9)(s,t,t=>{let r=(0,i.Jq)(d,f,t);return(t===r&&"string"==typeof t&&(r=(0,i.Jq)(d,f,`${e}${"default"===t?"":(0,n.Z)(t)}`,t)),!1===c)?r:{[c]:r}})}return function t(r){var n;let{sx:i,theme:l={}}=r||{};if(!i)return null;let c=null!=(n=l.unstable_sxConfig)?n:s.Z;function u(r){let n=r;if("function"==typeof r)n=r(l);else if("object"!=typeof r)return r;if(!n)return null;let i=(0,a.W8)(l.breakpoints),s=Object.keys(i),u=i;return Object.keys(n).forEach(r=>{var i;let s="function"==typeof(i=n[r])?i(l):i;if(null!=s){if("object"==typeof s){if(c[r])u=(0,o.Z)(u,e(r,s,l,c));else{let e=(0,a.k9)({theme:l},s,e=>({[r]:e}));(function(...e){let t=new Set(e.reduce((e,t)=>e.concat(Object.keys(t)),[]));return e.every(e=>t.size===Object.keys(e).length)})(e,s)?u[r]=t({sx:s,theme:l}):u=(0,o.Z)(u,e)}}else u=(0,o.Z)(u,e(r,s,l,c))}}),(0,a.L7)(s,u)}return Array.isArray(i)?i.map(u):u(i)}}();l.filterProps=["sx"],t.Z=l},4874:function(e,t,r){var n=r(2501),o=r(4828);let i=(0,n.Z)();t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;return(0,o.Z)(e)}},4999:function(e,t,r){r.d(t,{Z:function(){return i}});var n=r(9481),o=r(4874);function i(e){let{props:t,name:r,defaultTheme:i,themeId:a}=e,s=(0,o.Z)(i);return a&&(s=s[a]||s),function(e){let{theme:t,name:r,props:o}=e;return t&&t.components&&t.components[r]&&t.components[r].defaultProps?(0,n.Z)(t.components[r].defaultProps,o):o}({theme:s,name:r,props:t})}},4828:function(e,t,r){var n=r(2265),o=r(2606);t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=n.useContext(o.T);return t&&0!==Object.keys(t).length?t:e}},1259:function(e,t,r){r.d(t,{Z:function(){return o}});var n=r(2414);function o(e){if("string"!=typeof e)throw Error((0,n.Z)(7));return e.charAt(0).toUpperCase()+e.slice(1)}},7609:function(e,t){t.Z=function(e,t=Number.MIN_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,r))}},6529:function(e,t,r){r.d(t,{P:function(){return o},Z:function(){return function e(t,r,i={clone:!0}){let a=i.clone?(0,n.Z)({},t):t;return o(t)&&o(r)&&Object.keys(r).forEach(n=>{"__proto__"!==n&&(o(r[n])&&n in t&&o(t[n])?a[n]=e(t[n],r[n],i):i.clone?a[n]=o(r[n])?function e(t){if(!o(t))return t;let r={};return Object.keys(t).forEach(n=>{r[n]=e(t[n])}),r}(r[n]):r[n]:a[n]=r[n])}),a}}});var n=r(2988);function o(e){if("object"!=typeof e||null===e)return!1;let t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}},2414:function(e,t,r){r.d(t,{Z:function(){return n}});function n(e){let t="https://mui.com/production-error/?code="+e;for(let e=1;e<arguments.length;e+=1)t+="&args[]="+encodeURIComponent(arguments[e]);return"Minified MUI error #"+e+"; visit "+t+" for the full message."}},9481:function(e,t,r){r.d(t,{Z:function(){return function e(t,r){let o=(0,n.Z)({},r);return Object.keys(t).forEach(i=>{if(i.toString().match(/^(components|slots)$/))o[i]=(0,n.Z)({},t[i],o[i]);else if(i.toString().match(/^(componentsProps|slotProps)$/)){let a=t[i]||{},s=r[i];o[i]={},s&&Object.keys(s)?a&&Object.keys(a)?(o[i]=(0,n.Z)({},s),Object.keys(a).forEach(t=>{o[i][t]=e(a[t],s[t])})):o[i]=s:o[i]=a}else void 0===o[i]&&(o[i]=t[i])}),o}}});var n=r(2988)},6451:function(e,t,r){var n=r(1189),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return n.isMemo(e)?a:s[e.$$typeof]||o}s[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[n.Memo]=a;var c=Object.defineProperty,u=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,d=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,r,n){if("string"!=typeof r){if(m){var o=d(r);o&&o!==m&&e(t,o,n)}var a=u(r);f&&(a=a.concat(f(r)));for(var s=l(t),h=l(r),y=0;y<a.length;++y){var g=a[y];if(!i[g]&&!(n&&n[g])&&!(h&&h[g])&&!(s&&s[g])){var b=p(r,g);try{c(t,g,b)}catch(e){}}}}return t}},3775:function(e,t){/** @license React v16.13.1
|
8 |
+
* react-is.production.min.js
|
9 |
+
*
|
10 |
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
11 |
+
*
|
12 |
+
* This source code is licensed under the MIT license found in the
|
13 |
+
* LICENSE file in the root directory of this source tree.
|
14 |
+
*/var r="function"==typeof Symbol&&Symbol.for,n=r?Symbol.for("react.element"):60103,o=r?Symbol.for("react.portal"):60106,i=r?Symbol.for("react.fragment"):60107,a=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,l=r?Symbol.for("react.provider"):60109,c=r?Symbol.for("react.context"):60110,u=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,p=r?Symbol.for("react.forward_ref"):60112,d=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.suspense_list"):60120,h=r?Symbol.for("react.memo"):60115,y=r?Symbol.for("react.lazy"):60116,g=r?Symbol.for("react.block"):60121,b=r?Symbol.for("react.fundamental"):60117,v=r?Symbol.for("react.responder"):60118,x=r?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case u:case f:case i:case s:case a:case d:return e;default:switch(e=e&&e.$$typeof){case c:case p:case y:case h:case l:return e;default:return t}}case o:return t}}}function w(e){return k(e)===f}t.AsyncMode=u,t.ConcurrentMode=f,t.ContextConsumer=c,t.ContextProvider=l,t.Element=n,t.ForwardRef=p,t.Fragment=i,t.Lazy=y,t.Memo=h,t.Portal=o,t.Profiler=s,t.StrictMode=a,t.Suspense=d,t.isAsyncMode=function(e){return w(e)||k(e)===u},t.isConcurrentMode=w,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===i},t.isLazy=function(e){return k(e)===y},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===o},t.isProfiler=function(e){return k(e)===s},t.isStrictMode=function(e){return k(e)===a},t.isSuspense=function(e){return k(e)===d},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===i||e===f||e===s||e===a||e===d||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===h||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===b||e.$$typeof===v||e.$$typeof===x||e.$$typeof===g)},t.typeOf=k},1189:function(e,t,r){e.exports=r(3775)},2988:function(e,t,r){r.d(t,{Z:function(){return n}});function n(){return(n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}},3950:function(e,t,r){r.d(t,{Z:function(){return n}});function n(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}}}]);
|
static/_next/static/chunks/23-c6362522adba14e9.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
static/_next/static/chunks/257-eff74de43c26e044.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
static/_next/static/chunks/450-e98783cfbe10f77f.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[450],{9237:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(2988),o=r(2265),a=r(6309),l=r(2606),i=r(1169),c=r(7437);function s(e){let{options:t,CacheProvider:r=l.C,children:s}=e,[u]=o.useState(()=>{var e;let r=(0,a.Z)((0,n.Z)({},t,{key:null!=(e=null==t?void 0:t.key)?e:"mui"}));r.compat=!0;let o=r.insert,l=[];return r.insert=function(){for(var e=arguments.length,n=Array(e),a=0;a<e;a++)n[a]=arguments[a];null!=t&&t.enableCssLayer&&(n[1].styles="@layer mui {".concat(n[1].styles,"}"));let[i,c]=n;return void 0===r.inserted[c.name]&&l.push({name:c.name,isGlobal:!i}),o(...n)},{cache:r,flush:()=>{let e=l;return l=[],e}}});return(0,i.useServerInsertedHTML)(()=>{let e=u.flush();if(0===e.length)return null;let r="",n=u.cache.key,a=[];return e.forEach(e=>{let{name:t,isGlobal:o}=e,l=u.cache.inserted[t];"boolean"!=typeof l&&(o?a.push({name:t,style:l}):(r+=l,n+=" ".concat(t)))}),(0,c.jsxs)(o.Fragment,{children:[a.map(e=>{let{name:r,style:n}=e;return(0,c.jsx)("style",{nonce:null==t?void 0:t.nonce,"data-emotion":"".concat(u.cache.key,"-global ").concat(r),dangerouslySetInnerHTML:{__html:n}},r)}),r&&(0,c.jsx)("style",{nonce:null==t?void 0:t.nonce,"data-emotion":n,dangerouslySetInnerHTML:{__html:r}})]})}),(0,c.jsx)(r,{value:u.cache,children:s})}},6324:function(e,t,r){"use strict";let n;r.r(t),r.d(t,{Experimental_CssVarsProvider:function(){return ex},StyledEngineProvider:function(){return z},THEME_ID:function(){return a.Z},ThemeProvider:function(){return O},adaptV4Theme:function(){return m},alpha:function(){return g.Fq},createMuiTheme:function(){return f.A},createStyles:function(){return b},createTheme:function(){return f.Z},css:function(){return h.iv},darken:function(){return g._j},decomposeColor:function(){return g.tB},duration:function(){return w.x9},easing:function(){return w.Ui},emphasize:function(){return g._4},experimentalStyled:function(){return T.ZP},experimental_extendTheme:function(){return eb},experimental_sx:function(){return eT},getContrastRatio:function(){return g.mi},getInitColorSchemeScript:function(){return eZ},getLuminance:function(){return g.H3},getOverlayAlpha:function(){return eu.Z},hexToRgb:function(){return g.oo},hslToRgb:function(){return g.ve},keyframes:function(){return h.F4},lighten:function(){return g.$n},makeStyles:function(){return R},private_createMixins:function(){return eA.Z},private_createTypography:function(){return eC.Z},private_excludeVariablesFromRoot:function(){return ek},recomposeColor:function(){return g.wy},responsiveFontSizes:function(){return x},rgbToHex:function(){return g.vq},shouldSkipGeneratingVar:function(){return es},styled:function(){return T.ZP},unstable_createMuiStrictModeTheme:function(){return y},unstable_getUnit:function(){return k},unstable_toUnitless:function(){return v},useColorScheme:function(){return ew},useTheme:function(){return Z.Z},useThemeProps:function(){return A.Z},withStyles:function(){return H},withTheme:function(){return N}});var o=r(2414),a=r(2737),l=r(2988),i=r(3950),c=r(6669),s=r(9329);let u=["defaultProps","mixins","overrides","palette","props","styleOverrides"],d=["type","mode"];function m(e){let{defaultProps:t={},mixins:r={},overrides:n={},palette:o={},props:a={},styleOverrides:m={}}=e,g=(0,i.Z)(e,u),h=(0,l.Z)({},g,{components:{}});Object.keys(t).forEach(e=>{let r=h.components[e]||{};r.defaultProps=t[e],h.components[e]=r}),Object.keys(a).forEach(e=>{let t=h.components[e]||{};t.defaultProps=a[e],h.components[e]=t}),Object.keys(m).forEach(e=>{let t=h.components[e]||{};t.styleOverrides=m[e],h.components[e]=t}),Object.keys(n).forEach(e=>{let t=h.components[e]||{};t.styleOverrides=n[e],h.components[e]=t}),h.spacing=(0,c.Z)(e.spacing);let f=(0,s.Z)(e.breakpoints||{}),p=h.spacing;h.mixins=(0,l.Z)({gutters:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,l.Z)({paddingLeft:p(2),paddingRight:p(2)},e,{[f.up("sm")]:(0,l.Z)({paddingLeft:p(3),paddingRight:p(3)},e[f.up("sm")])})}},r);let{type:y,mode:S}=o,b=(0,i.Z)(o,d),C=S||y||"light";return h.palette=(0,l.Z)({text:{hint:"dark"===C?"rgba(255, 255, 255, 0.5)":"rgba(0, 0, 0, 0.38)"},mode:C,type:C},b),h}var g=r(2305),h=r(3098),f=r(8285),p=r(6529);function y(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return(0,f.Z)((0,p.Z)({unstable_strictMode:!0},e),...r)}let S=!1;function b(e){return S||(console.warn("MUI: createStyles from @mui/material/styles is deprecated.\nPlease use @mui/styles/createStyles"),S=!0),e}function C(e){return String(parseFloat(e)).length===String(e).length}function k(e){return String(e).match(/[\d.\-+]*\s*(.*)/)[1]||""}function v(e){return parseFloat(e)}function x(e){var t;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{breakpoints:n=["sm","md","lg"],disableAlign:a=!1,factor:i=2,variants:c=["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","button","overline"]}=r,s=(0,l.Z)({},e);s.typography=(0,l.Z)({},s.typography);let u=s.typography,d=(t=u.htmlFontSize,(e,r)=>{let n=k(e);if(n===r)return e;let o=v(e);"px"!==n&&("em"===n?o=v(e)*v(t):"rem"===n&&(o=v(e)*v(t)));let a=o;if("px"!==r){if("em"===r)a=o/v(t);else{if("rem"!==r)return e;a=o/v(t)}}return parseFloat(a.toFixed(5))+r}),m=n.map(e=>s.breakpoints.values[e]);return c.forEach(e=>{let t=u[e],r=parseFloat(d(t.fontSize,"rem"));if(r<=1)return;let{lineHeight:n}=t;if(!C(n)&&!a)throw Error((0,o.Z)(6));C(n)||(n=parseFloat(d(n,"rem"))/parseFloat(r));let c=null;a||(c=e=>(function(e){let{size:t,grid:r}=e,n=t-t%r,o=n+r;return t-n<o-t?n:o})({size:e,grid:function(e){let{lineHeight:t,pixels:r,htmlFontSize:n}=e;return r/(t*n)}({pixels:4,lineHeight:n,htmlFontSize:u.htmlFontSize})})),u[e]=(0,l.Z)({},t,function(e){let{cssProperty:t,min:r,max:n,unit:o="rem",breakpoints:a=[600,900,1200],transform:l=null}=e,i={[t]:"".concat(r).concat(o)},c=(n-r)/a[a.length-1];return a.forEach(e=>{let n=r+c*e;null!==l&&(n=l(n)),i["@media (min-width:".concat(e,"px)")]={[t]:"".concat(Math.round(1e4*n)/1e4).concat(o)}}),i}({cssProperty:"fontSize",min:1+(r-1)/i,max:r,unit:"rem",breakpoints:m,transform:c}))}),s}var w=r(1355),Z=r(2960),A=r(9281),T=r(8024),B=r(2265);let _=B.createContext(null);function I(){return B.useContext(_)}var F="function"==typeof Symbol&&Symbol.for?Symbol.for("mui.nested"):"__THEME_NESTED__",E=r(7437),$=function(e){let{children:t,theme:r}=e,n=I(),o=B.useMemo(()=>{let e=null===n?r:"function"==typeof r?r(n):(0,l.Z)({},n,r);return null!=e&&(e[F]=null!==n),e},[r,n]);return(0,E.jsx)(_.Provider,{value:o,children:t})},j=r(2606),P=r(4828);let q={};function L(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return B.useMemo(()=>{let o=e&&t[e]||t;if("function"==typeof r){let a=r(o),i=e?(0,l.Z)({},t,{[e]:a}):a;return n?()=>i:i}return e?(0,l.Z)({},t,{[e]:r}):(0,l.Z)({},t,r)},[e,t,r,n])}var M=function(e){let{children:t,theme:r,themeId:n}=e,o=(0,P.Z)(q),a=I()||q,l=L(n,o,r),i=L(n,a,r,!0);return(0,E.jsx)($,{theme:i,children:(0,E.jsx)(j.T.Provider,{value:l,children:t})})};let D=["theme"];function O(e){let{theme:t}=e,r=(0,i.Z)(e,D),n=t[a.Z];return(0,E.jsx)(M,(0,l.Z)({},r,{themeId:n?a.Z:void 0,theme:n||t}))}var V=r(6309);function z(e){let{injectFirst:t,children:r}=e;return t&&n?(0,E.jsx)(j.C,{value:n,children:r}):r}function R(){throw Error((0,o.Z)(14))}function H(){throw Error((0,o.Z)(15))}function N(){throw Error((0,o.Z)(16))}"object"==typeof document&&(n=(0,V.Z)({key:"css",prepend:!0}));var U=r(6003);let K="mode",W="color-scheme",G="data-color-scheme";function J(e){if("undefined"!=typeof window&&"system"===e)return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Q(e,t){return"light"===e.mode||"system"===e.mode&&"light"===e.systemMode?t("light"):"dark"===e.mode||"system"===e.mode&&"dark"===e.systemMode?t("dark"):void 0}function X(e,t){let r;if("undefined"!=typeof window){try{(r=localStorage.getItem(e)||void 0)||localStorage.setItem(e,t)}catch(e){}return r||t}}let Y=["colorSchemes","components","generateCssVars","cssVarPrefix"];var ee=r(7267);let et=(e,t,r,n=[])=>{let o=e;t.forEach((e,a)=>{a===t.length-1?Array.isArray(o)?o[Number(e)]=r:o&&"object"==typeof o&&(o[e]=r):o&&"object"==typeof o&&(o[e]||(o[e]=n.includes(e)?[]:{}),o=o[e])})},er=(e,t,r)=>{!function e(n,o=[],a=[]){Object.entries(n).forEach(([n,l])=>{r&&(!r||r([...o,n]))||null==l||("object"==typeof l&&Object.keys(l).length>0?e(l,[...o,n],Array.isArray(l)?[...a,n]:a):t([...o,n],l,a))})}(e)},en=(e,t)=>"number"==typeof t?["lineHeight","fontWeight","opacity","zIndex"].some(t=>e.includes(t))||e[e.length-1].toLowerCase().indexOf("opacity")>=0?t:`${t}px`:t;function eo(e,t){let{prefix:r,shouldSkipGeneratingVar:n}=t||{},o={},a={},l={};return er(e,(e,t,i)=>{if(("string"==typeof t||"number"==typeof t)&&(!n||!n(e,t))){let n=`--${r?`${r}-`:""}${e.join("-")}`;Object.assign(o,{[n]:en(e,t)}),et(a,e,`var(${n})`,i),et(l,e,`var(${n}, ${t})`,i)}},e=>"vars"===e[0]),{css:o,vars:a,varsWithDefaults:l}}let ea=["colorSchemes","components"],el=["light"];var ei=function(e,t){let{colorSchemes:r={}}=e,{vars:n,css:o,varsWithDefaults:a}=eo((0,i.Z)(e,ea),t),c=a,s={},{light:u}=r;if(Object.entries((0,i.Z)(r,el)||{}).forEach(([e,r])=>{let{vars:n,css:o,varsWithDefaults:a}=eo(r,t);c=(0,p.Z)(c,a),s[e]={css:o,vars:n}}),u){let{css:e,vars:r,varsWithDefaults:n}=eo(u,t);c=(0,p.Z)(c,n),s.light={css:e,vars:r}}return{vars:c,generateCssVars:e=>e?{css:(0,l.Z)({},s[e].css),vars:s[e].vars}:{css:(0,l.Z)({},o),vars:n}}},ec=r(9626);function es(e){var t;return!!e[0].match(/(cssVarPrefix|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||"palette"===e[0]&&!!(null!=(t=e[1])&&t.match(/(mode|contrastThreshold|tonalOffset)/))}var eu=r(1931);let ed=["colorSchemes","cssVarPrefix","shouldSkipGeneratingVar"],em=["palette"],eg=[...Array(25)].map((e,t)=>{if(0===t)return;let r=(0,eu.Z)(t);return"linear-gradient(rgba(255 255 255 / ".concat(r,"), rgba(255 255 255 / ").concat(r,"))")});function eh(e,t,r){!e[t]&&r&&(e[t]=r)}function ef(e){return e&&e.startsWith("hsl")?(0,g.ve)(e):e}function ep(e,t){"".concat(t,"Channel") in e||(e["".concat(t,"Channel")]=(0,g.LR)(ef(e[t]),"MUI: Can't create `palette.".concat(t,"Channel` because `palette.").concat(t,"` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().")+"\n"+"To suppress this warning, you need to explicitly provide the `palette.".concat(t,'Channel` as a string (in rgb format, e.g. "12 12 12") or undefined if you want to remove the channel token.')))}let ey=e=>{try{return e()}catch(e){}},eS=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"mui";return function(e=""){return(t,...r)=>`var(--${e?`${e}-`:""}${t}${function t(...r){if(!r.length)return"";let n=r[0];return"string"!=typeof n||n.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, ${n}`:`, var(--${e?`${e}-`:""}${n}${t(...r.slice(1))})`}(...r)})`}(e)};function eb(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t,r,n,o,a,c,s=arguments.length,u=Array(s>1?s-1:0),d=1;d<s;d++)u[d-1]=arguments[d];let{colorSchemes:m={},cssVarPrefix:h="mui",shouldSkipGeneratingVar:y=es}=e,S=(0,i.Z)(e,ed),b=eS(h),C=(0,f.Z)((0,l.Z)({},S,m.light&&{palette:null==(t=m.light)?void 0:t.palette})),{palette:k}=C,v=(0,i.Z)(C,em),{palette:x}=(0,f.Z)({palette:(0,l.Z)({mode:"dark"},null==(r=m.dark)?void 0:r.palette)}),w=(0,l.Z)({},v,{cssVarPrefix:h,getCssVar:b,colorSchemes:(0,l.Z)({},m,{light:(0,l.Z)({},m.light,{palette:k,opacity:(0,l.Z)({inputPlaceholder:.42,inputUnderline:.42,switchTrackDisabled:.12,switchTrack:.38},null==(n=m.light)?void 0:n.opacity),overlays:(null==(o=m.light)?void 0:o.overlays)||[]}),dark:(0,l.Z)({},m.dark,{palette:x,opacity:(0,l.Z)({inputPlaceholder:.5,inputUnderline:.7,switchTrackDisabled:.2,switchTrack:.3},null==(a=m.dark)?void 0:a.opacity),overlays:(null==(c=m.dark)?void 0:c.overlays)||eg})})});Object.keys(w.colorSchemes).forEach(e=>{let t=w.colorSchemes[e].palette,r=e=>{let r=e.split("-"),n=r[1],o=r[2];return b(e,t[n][o])};if("light"===e?(eh(t.common,"background","#fff"),eh(t.common,"onBackground","#000")):(eh(t.common,"background","#000"),eh(t.common,"onBackground","#fff")),function(e,t){t.forEach(t=>{e[t]||(e[t]={})})}(t,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),"light"===e){eh(t.Alert,"errorColor",(0,g.q8)(t.error.light,.6)),eh(t.Alert,"infoColor",(0,g.q8)(t.info.light,.6)),eh(t.Alert,"successColor",(0,g.q8)(t.success.light,.6)),eh(t.Alert,"warningColor",(0,g.q8)(t.warning.light,.6)),eh(t.Alert,"errorFilledBg",r("palette-error-main")),eh(t.Alert,"infoFilledBg",r("palette-info-main")),eh(t.Alert,"successFilledBg",r("palette-success-main")),eh(t.Alert,"warningFilledBg",r("palette-warning-main")),eh(t.Alert,"errorFilledColor",ey(()=>k.getContrastText(t.error.main))),eh(t.Alert,"infoFilledColor",ey(()=>k.getContrastText(t.info.main))),eh(t.Alert,"successFilledColor",ey(()=>k.getContrastText(t.success.main))),eh(t.Alert,"warningFilledColor",ey(()=>k.getContrastText(t.warning.main))),eh(t.Alert,"errorStandardBg",(0,g.ux)(t.error.light,.9)),eh(t.Alert,"infoStandardBg",(0,g.ux)(t.info.light,.9)),eh(t.Alert,"successStandardBg",(0,g.ux)(t.success.light,.9)),eh(t.Alert,"warningStandardBg",(0,g.ux)(t.warning.light,.9)),eh(t.Alert,"errorIconColor",r("palette-error-main")),eh(t.Alert,"infoIconColor",r("palette-info-main")),eh(t.Alert,"successIconColor",r("palette-success-main")),eh(t.Alert,"warningIconColor",r("palette-warning-main")),eh(t.AppBar,"defaultBg",r("palette-grey-100")),eh(t.Avatar,"defaultBg",r("palette-grey-400")),eh(t.Button,"inheritContainedBg",r("palette-grey-300")),eh(t.Button,"inheritContainedHoverBg",r("palette-grey-A100")),eh(t.Chip,"defaultBorder",r("palette-grey-400")),eh(t.Chip,"defaultAvatarColor",r("palette-grey-700")),eh(t.Chip,"defaultIconColor",r("palette-grey-700")),eh(t.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),eh(t.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),eh(t.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),eh(t.LinearProgress,"primaryBg",(0,g.ux)(t.primary.main,.62)),eh(t.LinearProgress,"secondaryBg",(0,g.ux)(t.secondary.main,.62)),eh(t.LinearProgress,"errorBg",(0,g.ux)(t.error.main,.62)),eh(t.LinearProgress,"infoBg",(0,g.ux)(t.info.main,.62)),eh(t.LinearProgress,"successBg",(0,g.ux)(t.success.main,.62)),eh(t.LinearProgress,"warningBg",(0,g.ux)(t.warning.main,.62)),eh(t.Skeleton,"bg","rgba(".concat(r("palette-text-primaryChannel")," / 0.11)")),eh(t.Slider,"primaryTrack",(0,g.ux)(t.primary.main,.62)),eh(t.Slider,"secondaryTrack",(0,g.ux)(t.secondary.main,.62)),eh(t.Slider,"errorTrack",(0,g.ux)(t.error.main,.62)),eh(t.Slider,"infoTrack",(0,g.ux)(t.info.main,.62)),eh(t.Slider,"successTrack",(0,g.ux)(t.success.main,.62)),eh(t.Slider,"warningTrack",(0,g.ux)(t.warning.main,.62));let e=(0,g.fk)(t.background.default,.8);eh(t.SnackbarContent,"bg",e),eh(t.SnackbarContent,"color",ey(()=>k.getContrastText(e))),eh(t.SpeedDialAction,"fabHoverBg",(0,g.fk)(t.background.paper,.15)),eh(t.StepConnector,"border",r("palette-grey-400")),eh(t.StepContent,"border",r("palette-grey-400")),eh(t.Switch,"defaultColor",r("palette-common-white")),eh(t.Switch,"defaultDisabledColor",r("palette-grey-100")),eh(t.Switch,"primaryDisabledColor",(0,g.ux)(t.primary.main,.62)),eh(t.Switch,"secondaryDisabledColor",(0,g.ux)(t.secondary.main,.62)),eh(t.Switch,"errorDisabledColor",(0,g.ux)(t.error.main,.62)),eh(t.Switch,"infoDisabledColor",(0,g.ux)(t.info.main,.62)),eh(t.Switch,"successDisabledColor",(0,g.ux)(t.success.main,.62)),eh(t.Switch,"warningDisabledColor",(0,g.ux)(t.warning.main,.62)),eh(t.TableCell,"border",(0,g.ux)((0,g.zp)(t.divider,1),.88)),eh(t.Tooltip,"bg",(0,g.zp)(t.grey[700],.92))}else{eh(t.Alert,"errorColor",(0,g.ux)(t.error.light,.6)),eh(t.Alert,"infoColor",(0,g.ux)(t.info.light,.6)),eh(t.Alert,"successColor",(0,g.ux)(t.success.light,.6)),eh(t.Alert,"warningColor",(0,g.ux)(t.warning.light,.6)),eh(t.Alert,"errorFilledBg",r("palette-error-dark")),eh(t.Alert,"infoFilledBg",r("palette-info-dark")),eh(t.Alert,"successFilledBg",r("palette-success-dark")),eh(t.Alert,"warningFilledBg",r("palette-warning-dark")),eh(t.Alert,"errorFilledColor",ey(()=>x.getContrastText(t.error.dark))),eh(t.Alert,"infoFilledColor",ey(()=>x.getContrastText(t.info.dark))),eh(t.Alert,"successFilledColor",ey(()=>x.getContrastText(t.success.dark))),eh(t.Alert,"warningFilledColor",ey(()=>x.getContrastText(t.warning.dark))),eh(t.Alert,"errorStandardBg",(0,g.q8)(t.error.light,.9)),eh(t.Alert,"infoStandardBg",(0,g.q8)(t.info.light,.9)),eh(t.Alert,"successStandardBg",(0,g.q8)(t.success.light,.9)),eh(t.Alert,"warningStandardBg",(0,g.q8)(t.warning.light,.9)),eh(t.Alert,"errorIconColor",r("palette-error-main")),eh(t.Alert,"infoIconColor",r("palette-info-main")),eh(t.Alert,"successIconColor",r("palette-success-main")),eh(t.Alert,"warningIconColor",r("palette-warning-main")),eh(t.AppBar,"defaultBg",r("palette-grey-900")),eh(t.AppBar,"darkBg",r("palette-background-paper")),eh(t.AppBar,"darkColor",r("palette-text-primary")),eh(t.Avatar,"defaultBg",r("palette-grey-600")),eh(t.Button,"inheritContainedBg",r("palette-grey-800")),eh(t.Button,"inheritContainedHoverBg",r("palette-grey-700")),eh(t.Chip,"defaultBorder",r("palette-grey-700")),eh(t.Chip,"defaultAvatarColor",r("palette-grey-300")),eh(t.Chip,"defaultIconColor",r("palette-grey-300")),eh(t.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),eh(t.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),eh(t.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),eh(t.LinearProgress,"primaryBg",(0,g.q8)(t.primary.main,.5)),eh(t.LinearProgress,"secondaryBg",(0,g.q8)(t.secondary.main,.5)),eh(t.LinearProgress,"errorBg",(0,g.q8)(t.error.main,.5)),eh(t.LinearProgress,"infoBg",(0,g.q8)(t.info.main,.5)),eh(t.LinearProgress,"successBg",(0,g.q8)(t.success.main,.5)),eh(t.LinearProgress,"warningBg",(0,g.q8)(t.warning.main,.5)),eh(t.Skeleton,"bg","rgba(".concat(r("palette-text-primaryChannel")," / 0.13)")),eh(t.Slider,"primaryTrack",(0,g.q8)(t.primary.main,.5)),eh(t.Slider,"secondaryTrack",(0,g.q8)(t.secondary.main,.5)),eh(t.Slider,"errorTrack",(0,g.q8)(t.error.main,.5)),eh(t.Slider,"infoTrack",(0,g.q8)(t.info.main,.5)),eh(t.Slider,"successTrack",(0,g.q8)(t.success.main,.5)),eh(t.Slider,"warningTrack",(0,g.q8)(t.warning.main,.5));let e=(0,g.fk)(t.background.default,.98);eh(t.SnackbarContent,"bg",e),eh(t.SnackbarContent,"color",ey(()=>x.getContrastText(e))),eh(t.SpeedDialAction,"fabHoverBg",(0,g.fk)(t.background.paper,.15)),eh(t.StepConnector,"border",r("palette-grey-600")),eh(t.StepContent,"border",r("palette-grey-600")),eh(t.Switch,"defaultColor",r("palette-grey-300")),eh(t.Switch,"defaultDisabledColor",r("palette-grey-600")),eh(t.Switch,"primaryDisabledColor",(0,g.q8)(t.primary.main,.55)),eh(t.Switch,"secondaryDisabledColor",(0,g.q8)(t.secondary.main,.55)),eh(t.Switch,"errorDisabledColor",(0,g.q8)(t.error.main,.55)),eh(t.Switch,"infoDisabledColor",(0,g.q8)(t.info.main,.55)),eh(t.Switch,"successDisabledColor",(0,g.q8)(t.success.main,.55)),eh(t.Switch,"warningDisabledColor",(0,g.q8)(t.warning.main,.55)),eh(t.TableCell,"border",(0,g.q8)((0,g.zp)(t.divider,1),.68)),eh(t.Tooltip,"bg",(0,g.zp)(t.grey[700],.92))}ep(t.background,"default"),ep(t.common,"background"),ep(t.common,"onBackground"),ep(t,"divider"),Object.keys(t).forEach(e=>{let r=t[e];r&&"object"==typeof r&&(r.main&&eh(t[e],"mainChannel",(0,g.LR)(ef(r.main))),r.light&&eh(t[e],"lightChannel",(0,g.LR)(ef(r.light))),r.dark&&eh(t[e],"darkChannel",(0,g.LR)(ef(r.dark))),r.contrastText&&eh(t[e],"contrastTextChannel",(0,g.LR)(ef(r.contrastText))),"text"===e&&(ep(t[e],"primary"),ep(t[e],"secondary")),"action"===e&&(r.active&&ep(t[e],"active"),r.selected&&ep(t[e],"selected")))})});let{vars:Z,generateCssVars:A}=ei(w=u.reduce((e,t)=>(0,p.Z)(e,t),w),{prefix:h,shouldSkipGeneratingVar:y});return w.vars=Z,w.generateCssVars=A,w.shouldSkipGeneratingVar=y,w.unstable_sxConfig=(0,l.Z)({},ec.Z,null==S?void 0:S.unstable_sxConfig),w.unstable_sx=function(e){return(0,ee.Z)({sx:e,theme:this})},w}var eC=r(5032),ek=e=>[...[...Array(24)].map((t,r)=>"--".concat(e?"".concat(e,"-"):"","overlays-").concat(r+1)),"--".concat(e?"".concat(e,"-"):"","palette-AppBar-darkBg"),"--".concat(e?"".concat(e,"-"):"","palette-AppBar-darkColor")];let ev=eb(),{CssVarsProvider:ex,useColorScheme:ew,getInitColorSchemeScript:eZ}=function(e){let{themeId:t,theme:r={},attribute:n=G,modeStorageKey:a=K,colorSchemeStorageKey:c=W,defaultMode:s="light",defaultColorScheme:u,disableTransitionOnChange:d=!1,resolveTheme:m,excludeVariablesFromRoot:g}=e;r.colorSchemes&&("string"!=typeof u||r.colorSchemes[u])&&("object"!=typeof u||r.colorSchemes[null==u?void 0:u.light])&&("object"!=typeof u||r.colorSchemes[null==u?void 0:u.dark])||console.error(`MUI: \`${u}\` does not exist in \`theme.colorSchemes\`.`);let h=B.createContext(void 0),f="string"==typeof u?u:u.light,y="string"==typeof u?u:u.dark;return{CssVarsProvider:function({children:e,theme:o=r,modeStorageKey:f=a,colorSchemeStorageKey:y=c,attribute:S=n,defaultMode:b=s,defaultColorScheme:C=u,disableTransitionOnChange:k=d,storageWindow:v="undefined"==typeof window?void 0:window,documentNode:x="undefined"==typeof document?void 0:document,colorSchemeNode:w="undefined"==typeof document?void 0:document.documentElement,colorSchemeSelector:Z=":root",disableNestedContext:A=!1,disableStyleSheetGeneration:T=!1}){let _=B.useRef(!1),F=I(),$=B.useContext(h),j=!!$&&!A,P=o[t],q=P||o,{colorSchemes:L={},components:D={},generateCssVars:O=()=>({vars:{},css:{}}),cssVarPrefix:V}=q,z=(0,i.Z)(q,Y),R=Object.keys(L),H="string"==typeof C?C:C.light,N="string"==typeof C?C:C.dark,{mode:G,setMode:ee,systemMode:et,lightColorScheme:er,darkColorScheme:en,colorScheme:eo,setColorScheme:ea}=function(e){let{defaultMode:t="light",defaultLightColorScheme:r,defaultDarkColorScheme:n,supportedColorSchemes:o=[],modeStorageKey:a=K,colorSchemeStorageKey:i=W,storageWindow:c="undefined"==typeof window?void 0:window}=e,s=o.join(","),[u,d]=B.useState(()=>{let e=X(a,t),o=X("".concat(i,"-light"),r),l=X("".concat(i,"-dark"),n);return{mode:e,systemMode:J(e),lightColorScheme:o,darkColorScheme:l}}),m=Q(u,e=>"light"===e?u.lightColorScheme:"dark"===e?u.darkColorScheme:void 0),g=B.useCallback(e=>{d(r=>{if(e===r.mode)return r;let n=e||t;try{localStorage.setItem(a,n)}catch(e){}return(0,l.Z)({},r,{mode:n,systemMode:J(n)})})},[a,t]),h=B.useCallback(e=>{e?"string"==typeof e?e&&!s.includes(e)?console.error("`".concat(e,"` does not exist in `theme.colorSchemes`.")):d(t=>{let r=(0,l.Z)({},t);return Q(t,t=>{try{localStorage.setItem("".concat(i,"-").concat(t),e)}catch(e){}"light"===t&&(r.lightColorScheme=e),"dark"===t&&(r.darkColorScheme=e)}),r}):d(t=>{let o=(0,l.Z)({},t),a=null===e.light?r:e.light,c=null===e.dark?n:e.dark;if(a){if(s.includes(a)){o.lightColorScheme=a;try{localStorage.setItem("".concat(i,"-light"),a)}catch(e){}}else console.error("`".concat(a,"` does not exist in `theme.colorSchemes`."))}if(c){if(s.includes(c)){o.darkColorScheme=c;try{localStorage.setItem("".concat(i,"-dark"),c)}catch(e){}}else console.error("`".concat(c,"` does not exist in `theme.colorSchemes`."))}return o}):d(e=>{try{localStorage.setItem("".concat(i,"-light"),r),localStorage.setItem("".concat(i,"-dark"),n)}catch(e){}return(0,l.Z)({},e,{lightColorScheme:r,darkColorScheme:n})})},[s,i,r,n]),f=B.useCallback(e=>{"system"===u.mode&&d(t=>(0,l.Z)({},t,{systemMode:null!=e&&e.matches?"dark":"light"}))},[u.mode]),p=B.useRef(f);return p.current=f,B.useEffect(()=>{let e=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return p.current(...t)},t=window.matchMedia("(prefers-color-scheme: dark)");return t.addListener(e),e(t),()=>t.removeListener(e)},[]),B.useEffect(()=>{let e=e=>{let r=e.newValue;"string"==typeof e.key&&e.key.startsWith(i)&&(!r||s.match(r))&&(e.key.endsWith("light")&&h({light:r}),e.key.endsWith("dark")&&h({dark:r})),e.key===a&&(!r||["light","dark","system"].includes(r))&&g(r||t)};if(c)return c.addEventListener("storage",e),()=>c.removeEventListener("storage",e)},[h,g,a,i,s,t,c]),(0,l.Z)({},u,{colorScheme:m,setMode:g,setColorScheme:h})}({supportedColorSchemes:R,defaultLightColorScheme:H,defaultDarkColorScheme:N,modeStorageKey:f,colorSchemeStorageKey:y,defaultMode:b,storageWindow:v}),el=G,ei=eo;j&&(el=$.mode,ei=$.colorScheme);let ec=el||("system"===b?s:b),es=ei||("dark"===ec?N:H),{css:eu,vars:ed}=O(),em=(0,l.Z)({},z,{components:D,colorSchemes:L,cssVarPrefix:V,vars:ed,getColorSchemeSelector:e=>`[${S}="${e}"] &`}),eg={},eh={};Object.entries(L).forEach(([e,t])=>{let{css:r,vars:n}=O(e);if(em.vars=(0,p.Z)(em.vars,n),e===es&&(Object.keys(t).forEach(e=>{t[e]&&"object"==typeof t[e]?em[e]=(0,l.Z)({},em[e],t[e]):em[e]=t[e]}),em.palette&&(em.palette.colorScheme=e)),e===("string"==typeof C?C:"dark"===b?C.dark:C.light)){if(g){let t={};g(V).forEach(e=>{t[e]=r[e],delete r[e]}),eg[`[${S}="${e}"]`]=t}eg[`${Z}, [${S}="${e}"]`]=r}else eh[`${":root"===Z?"":Z}[${S}="${e}"]`]=r}),em.vars=(0,p.Z)(em.vars,ed),B.useEffect(()=>{ei&&w&&w.setAttribute(S,ei)},[ei,S,w]),B.useEffect(()=>{let e;if(k&&_.current&&x){let t=x.createElement("style");t.appendChild(x.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),x.head.appendChild(t),window.getComputedStyle(x.body),e=setTimeout(()=>{x.head.removeChild(t)},1)}return()=>{clearTimeout(e)}},[ei,k,x]),B.useEffect(()=>(_.current=!0,()=>{_.current=!1}),[]);let ef=B.useMemo(()=>({mode:el,systemMode:et,setMode:ee,lightColorScheme:er,darkColorScheme:en,colorScheme:ei,setColorScheme:ea,allColorSchemes:R}),[R,ei,en,er,el,ea,ee,et]),ep=!0;(T||j&&(null==F?void 0:F.cssVarPrefix)===V)&&(ep=!1);let ey=(0,E.jsxs)(B.Fragment,{children:[ep&&(0,E.jsxs)(B.Fragment,{children:[(0,E.jsx)(U.Z,{styles:{[Z]:eu}}),(0,E.jsx)(U.Z,{styles:eg}),(0,E.jsx)(U.Z,{styles:eh})]}),(0,E.jsx)(M,{themeId:P?t:void 0,theme:m?m(em):em,children:e})]});return j?ey:(0,E.jsx)(h.Provider,{value:ef,children:ey})},useColorScheme:()=>{let e=B.useContext(h);if(!e)throw Error((0,o.Z)(19));return e},getInitColorSchemeScript:e=>(function(e){let{defaultMode:t="light",defaultLightColorScheme:r="light",defaultDarkColorScheme:n="dark",modeStorageKey:o=K,colorSchemeStorageKey:a=W,attribute:l=G,colorSchemeNode:i="document.documentElement"}=e||{};return(0,E.jsx)("script",{dangerouslySetInnerHTML:{__html:`(function() {
|
2 |
+
try {
|
3 |
+
var mode = localStorage.getItem('${o}') || '${t}';
|
4 |
+
var colorScheme = '';
|
5 |
+
if (mode === 'system') {
|
6 |
+
// handle system mode
|
7 |
+
var mql = window.matchMedia('(prefers-color-scheme: dark)');
|
8 |
+
if (mql.matches) {
|
9 |
+
colorScheme = localStorage.getItem('${a}-dark') || '${n}';
|
10 |
+
} else {
|
11 |
+
colorScheme = localStorage.getItem('${a}-light') || '${r}';
|
12 |
+
}
|
13 |
+
}
|
14 |
+
if (mode === 'light') {
|
15 |
+
colorScheme = localStorage.getItem('${a}-light') || '${r}';
|
16 |
+
}
|
17 |
+
if (mode === 'dark') {
|
18 |
+
colorScheme = localStorage.getItem('${a}-dark') || '${n}';
|
19 |
+
}
|
20 |
+
if (colorScheme) {
|
21 |
+
${i}.setAttribute('${l}', colorScheme);
|
22 |
+
}
|
23 |
+
} catch(e){}})();`}},"mui-color-scheme-init")})((0,l.Z)({attribute:n,colorSchemeStorageKey:c,defaultMode:s,defaultLightColorScheme:f,defaultDarkColorScheme:y,modeStorageKey:a},e))}}({themeId:a.Z,theme:ev,attribute:"data-mui-color-scheme",modeStorageKey:"mui-mode",colorSchemeStorageKey:"mui-color-scheme",defaultColorScheme:{light:"light",dark:"dark"},resolveTheme:e=>{let t=(0,l.Z)({},e,{typography:(0,eC.Z)(e.palette,e.typography)});return t.unstable_sx=function(e){return(0,ee.Z)({sx:e,theme:this})},t},excludeVariablesFromRoot:ek});var eA=r(1523);function eT(){throw Error((0,o.Z)(20))}},4671:function(e){e.exports={style:{fontFamily:"'__Inter_aaf875', '__Inter_Fallback_aaf875'",fontStyle:"normal"},className:"__className_aaf875"}},8833:function(e){e.exports={style:{fontFamily:"'__Noto_Sans_JP_18a8ba', '__Noto_Sans_JP_Fallback_18a8ba'",fontStyle:"normal"},className:"__className_18a8ba"}}}]);
|
static/_next/static/chunks/app/_not-found/page-88e5ec60d72eb81e.js
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[409],{7589:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return n(5457)}])},5457:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}}),n(9920);let i=n(7437);n(2265);let o={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},l={display:"inline-block"},r={display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},d={fontSize:14,fontWeight:400,lineHeight:"49px",margin:0};function s(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("title",{children:"404: This page could not be found."}),(0,i.jsx)("div",{style:o,children:(0,i.jsxs)("div",{children:[(0,i.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,i.jsx)("h1",{className:"next-error-h1",style:r,children:"404"}),(0,i.jsx)("div",{style:l,children:(0,i.jsx)("h2",{style:d,children:"This page could not be found."})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},function(e){e.O(0,[971,23,744],function(){return e(e.s=7589)}),_N_E=e.O()}]);
|
static/_next/static/chunks/app/layout-003f3f0c2945f2e7.js
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{8183:function(e,n,t){Promise.resolve().then(t.bind(t,9237)),Promise.resolve().then(t.bind(t,6324)),Promise.resolve().then(t.t.bind(t,4671,23)),Promise.resolve().then(t.t.bind(t,3054,23)),Promise.resolve().then(t.bind(t,4016))},4016:function(e,n,t){"use strict";var i=t(8833),o=t.n(i);let s=(0,t(8285).Z)({typography:{fontFamily:o().style.fontFamily}});n.default=s},3054:function(){}},function(e){e.O(0,[93,731,154,450,971,23,744],function(){return e(e.s=8183)}),_N_E=e.O()}]);
|