Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

コードベースを大規模にリファクタリングし、ライブラリ (Python パッケージ) としてほかの Python コードから利用できるように改善 #92

Merged
merged 69 commits into from
Mar 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
e4cd4f8
Fix: ignore .venv/
tsukumijima Mar 6, 2024
f26def4
Remove: code that is not referenced anywhere
tsukumijima Mar 6, 2024
918d168
Refactor: rewrote Japanese natural language processing code imported …
tsukumijima Mar 6, 2024
46c83cf
Refactor: moved the user dictionary implementation ported from VOICEV…
tsukumijima Mar 6, 2024
9546495
Refactor: moved commons.py to style_bert_vits2/models/ and added type…
tsukumijima Mar 6, 2024
f880641
Remove: modules under common/ that have been rewritten
tsukumijima Mar 6, 2024
1936344
Refactor: remove old code that can be deleted and update where module…
tsukumijima Mar 6, 2024
ca4c03c
Fix: import error
tsukumijima Mar 6, 2024
a52fda7
Refactor: moved common/subprocess_utils.py to style_bert_vits2/utils/…
tsukumijima Mar 6, 2024
89825e6
Refactor: moved model, attentions definitions and inference code to s…
tsukumijima Mar 6, 2024
e826faf
Refactor: moved text/cleaner.py to style_bert_vits2/text_processing/
tsukumijima Mar 7, 2024
c3c0dd8
Refactor: add style_bert_vits2/text_processing/bert_models.py to hold…
tsukumijima Mar 7, 2024
62919e9
Refactor: moved the module for extracting BERT features from text in …
tsukumijima Mar 7, 2024
4f11b01
Refactor: minor adjustments
tsukumijima Mar 7, 2024
b011683
Remove: remove currently unused code in utils.py
tsukumijima Mar 7, 2024
def6d88
Refactor: style_bert_vits2/text_processing/cleaner.py integrated into…
tsukumijima Mar 7, 2024
1450bfd
Remove: remove webui.py, which is no longer maintained in Style-Bert-…
tsukumijima Mar 7, 2024
d364018
Refactor: moved monotonic_align/ to style_bert_vits2/models/monotonic…
tsukumijima Mar 7, 2024
f8f798d
Refactor: moved text/ to style_bert_vits2/text_processing/(language)/
tsukumijima Mar 7, 2024
bffd5a6
Fix: import error
tsukumijima Mar 7, 2024
e57cfbf
Remove: remove currently unused code in style_bert_vits2/models/commo…
tsukumijima Mar 7, 2024
70f8d53
Add: empty __init__.py
tsukumijima Mar 7, 2024
3f07c25
Refactor: make variables private that are not used externally
tsukumijima Mar 7, 2024
4d5c537
Refactor: introducing Ruff
tsukumijima Mar 7, 2024
da7747c
Merge branch 'dev' of github.com:litagin02/Style-Bert-VITS2
tsukumijima Mar 8, 2024
4a3519c
Remove: Ruff
tsukumijima Mar 8, 2024
8add1b4
Fix: maintain compatibility with Python 3.9
tsukumijima Mar 8, 2024
fac4f9a
Refactor: rename text_processing to nlp
tsukumijima Mar 8, 2024
7546793
Refactor: cleanup style_bert_vits2/nlp/english/__init__.py
tsukumijima Mar 8, 2024
5de4884
Fix: import error
tsukumijima Mar 8, 2024
e2daa55
Refactor: split style_bert_vits2.nlp.english package
tsukumijima Mar 8, 2024
a672aee
Fix: maintain compatibility with Python 3.9
tsukumijima Mar 8, 2024
df68771
Refactor: split style_bert_vits2.nlp.chinese package
tsukumijima Mar 8, 2024
766699e
Fix: pyopenjtalk_worker not working
tsukumijima Mar 8, 2024
c1f2862
Merge branch 'dev' of github.com:litagin02/Style-Bert-VITS2 into dev
tsukumijima Mar 8, 2024
fe7e31e
Refactor: moved common/tts_model.py to style_bert_vits2/
tsukumijima Mar 8, 2024
67ff310
Refactor: moved utils.py to style_bert_vits2/models/
tsukumijima Mar 8, 2024
c915215
Refactor: moved transforms.py to style_bert_vits2/models/
tsukumijima Mar 8, 2024
8fad591
Fix: backported StrEnum from Python 3.11
tsukumijima Mar 8, 2024
7f0b252
Refactor: add Pydantic model representing hyper-parameters of Style-B…
tsukumijima Mar 8, 2024
a0b5cd3
Extended timeout in client side
kale4eat Mar 8, 2024
a84783a
Refactor: replace utils.HParams with HyperParameters Pydantic model
tsukumijima Mar 8, 2024
6b19eac
Merge branch 'dev' of github.com:litagin02/Style-Bert-VITS2 into dev
tsukumijima Mar 8, 2024
b9e486e
Fix: extend timeout for style_bert_vits2.nlp.japanese.pyopenjtalk_wor…
tsukumijima Mar 8, 2024
30ea08d
Fix: forgot to write pyopenjtalk.initialize()
tsukumijima Mar 8, 2024
d22a11e
Fix: a bug that prevented speech synthesis in app.py
tsukumijima Mar 8, 2024
b98fecb
Add: --host/--port option to app.py to allow specifying listening hos…
tsukumijima Mar 8, 2024
717ba79
Fix: app.py cannot be closed with Ctrl+C
tsukumijima Mar 8, 2024
e1fad54
Refactor: add type hints to attentions.py / modules.py / transforms.py
tsukumijima Mar 8, 2024
8feef04
Refactor: add type hints to models.py / models_jp_extra.py
tsukumijima Mar 8, 2024
c594f7e
Refactor: change execution location of pyopenjtalk.initialize()
tsukumijima Mar 9, 2024
8fdeea1
Merge pull request #91 from kale4eat/dev-pyopenjtalk-worker
litagin02 Mar 9, 2024
98ab8e7
Refactor: separate module for utilities related to loading/saving che…
tsukumijima Mar 9, 2024
61e2a1d
Refactor: add type hints to style_bert_vits2.models.utils
tsukumijima Mar 9, 2024
96d2210
Refactor: separate adjust_voice() function from tts_model.py
tsukumijima Mar 9, 2024
1d32091
Refactor: make tts_model.py independent of style_gen.py
tsukumijima Mar 9, 2024
0a74fe5
Merge branch 'dev' of github.com:litagin02/Style-Bert-VITS2 into dev
tsukumijima Mar 9, 2024
a79b191
Add: use hatch to build style-bert-vits2 as a library
tsukumijima Mar 9, 2024
b7d7c78
Refactor: when pyopenjtalk_worker is called without initialization, c…
tsukumijima Mar 10, 2024
d2fd378
Refactor: rename Model / ModelHolder to TTSModel / TTSModelHolder for…
tsukumijima Mar 10, 2024
afff154
Add: test code for style-bert-vits2 as a library
tsukumijima Mar 10, 2024
84b1dbe
Fix: problem with test failures
tsukumijima Mar 10, 2024
cdc47a9
Improve: test code
tsukumijima Mar 10, 2024
00bf496
Add: VSCode settings
tsukumijima Mar 10, 2024
9c23363
Refactor: don't keep models in bert_feature module for each language
tsukumijima Mar 10, 2024
733a9d8
Fix: clearly include Pydantic v2 in the dependencies
tsukumijima Mar 10, 2024
be265d4
Improve: switch pyworld to pyworld-prebuilt and enable it by default
tsukumijima Mar 10, 2024
859d940
Fix: failed to start training
tsukumijima Mar 10, 2024
7f02b0f
Refactor: TTSModelInfo changed from TypedDict to Pydantic model
tsukumijima Mar 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
.vscode/

__pycache__/
venv/
.venv/
dist/
.coverage
.ipynb_checkpoints/

/*.yml
Expand Down
6 changes: 6 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"recommendations": [
"ms-python.python",
"ms-python.vscode-pylance"
]
}
22 changes: 22 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
// Pylance の Type Checking を有効化
"python.languageServer": "Pylance",
"python.analysis.typeCheckingMode": "strict",
// Pylance の Type Checking のうち、いくつかのエラー報告を抑制する
"python.analysis.diagnosticSeverityOverrides": {
"reportConstantRedefinition": "none",
"reportGeneralTypeIssues": "warning",
"reportMissingParameterType": "warning",
"reportMissingTypeStubs": "none",
"reportPrivateImportUsage": "none",
"reportPrivateUsage": "warning",
"reportShadowedImports": "none",
"reportUnnecessaryComparison": "none",
"reportUnknownArgumentType": "none",
"reportUnknownMemberType": "none",
"reportUnknownParameterType": "warning",
"reportUnknownVariableType": "none",
"reportUnusedFunction": "none",
"reportUnusedVariable": "information",
},
}
13 changes: 8 additions & 5 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import torch
import yaml

from common.constants import GRADIO_THEME, LATEST_VERSION
from common.tts_model import ModelHolder
from style_bert_vits2.constants import GRADIO_THEME, VERSION
from style_bert_vits2.tts_model import TTSModelHolder
from webui import (
create_dataset_app,
create_inference_app,
Expand All @@ -15,6 +15,7 @@
create_train_app,
)


# Get path settings
with Path("configs/paths.yml").open("r", encoding="utf-8") as f:
path_config: dict[str, str] = yaml.safe_load(f.read())
Expand All @@ -23,6 +24,8 @@

parser = argparse.ArgumentParser()
parser.add_argument("--device", type=str, default="cuda")
parser.add_argument("--host", type=str, default="127.0.0.1")
parser.add_argument("--port", type=int, default=7860)
parser.add_argument("--no_autolaunch", action="store_true")
parser.add_argument("--share", action="store_true")

Expand All @@ -31,10 +34,10 @@
if device == "cuda" and not torch.cuda.is_available():
device = "cpu"

model_holder = ModelHolder(Path(assets_root), device)
model_holder = TTSModelHolder(Path(assets_root), device)

with gr.Blocks(theme=GRADIO_THEME) as app:
gr.Markdown(f"# Style-Bert-VITS2 WebUI (version {LATEST_VERSION})")
gr.Markdown(f"# Style-Bert-VITS2 WebUI (version {VERSION})")
with gr.Tabs():
with gr.Tab("音声合成"):
create_inference_app(model_holder=model_holder)
Expand All @@ -48,4 +51,4 @@
create_merge_app(model_holder=model_holder)


app.launch(inbrowser=not args.no_autolaunch, share=args.share)
app.launch(server_name=args.host, server_port=args.port, inbrowser=not args.no_autolaunch, share=args.share)
16 changes: 7 additions & 9 deletions bert_gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,12 @@
import torch.multiprocessing as mp
from tqdm import tqdm

import commons
from text.get_bert import get_bert
import text.pyopenjtalk_worker as pyopenjtalk
import utils
from common.log import logger
from common.stdout_wrapper import SAFE_STDOUT
from config import config
from text import cleaned_text_to_sequence
from style_bert_vits2.logging import logger
from style_bert_vits2.models import commons
from style_bert_vits2.models.hyper_parameters import HyperParameters
from style_bert_vits2.nlp import cleaned_text_to_sequence, extract_bert_feature
from style_bert_vits2.utils.stdout_wrapper import SAFE_STDOUT


def process_line(x):
Expand Down Expand Up @@ -47,7 +45,7 @@ def process_line(x):
bert = torch.load(bert_path)
assert bert.shape[-1] == len(phone)
except Exception:
bert = get_bert(text, word2ph, language_str, device)
bert = extract_bert_feature(text, word2ph, language_str, device)
assert bert.shape[-1] == len(phone)
torch.save(bert, bert_path)

Expand All @@ -64,7 +62,7 @@ def process_line(x):
)
args, _ = parser.parse_known_args()
config_path = args.config
hps = utils.get_hparams_from_file(config_path)
hps = HyperParameters.load_from_json(config_path)
lines = []
with open(hps.data.training_files, encoding="utf-8") as f:
lines.extend(f.readlines())
Expand Down
28 changes: 0 additions & 28 deletions common/constants.py

This file was deleted.

18 changes: 0 additions & 18 deletions common/log.py

This file was deleted.

33 changes: 0 additions & 33 deletions common/subprocess_utils.py

This file was deleted.