zhzluke96
commited on
Commit
·
4c19a5a
1
Parent(s):
d8e7d56
update
Browse files- modules/api/impl/ping_api.py +7 -1
- modules/api/utils.py +1 -1
- modules/config.py +16 -0
- modules/utils/constants.py +13 -0
- modules/utils/git.py +59 -0
- webui.py +26 -5
modules/api/impl/ping_api.py
CHANGED
|
@@ -1,8 +1,14 @@
|
|
| 1 |
from modules.api import utils as api_utils
|
| 2 |
from modules.api.Api import APIManager
|
| 3 |
|
|
|
|
|
|
|
| 4 |
|
| 5 |
def setup(app: APIManager):
|
| 6 |
@app.get("/v1/ping", response_model=api_utils.BaseResponse)
|
| 7 |
async def ping():
|
| 8 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
from modules.api import utils as api_utils
|
| 2 |
from modules.api.Api import APIManager
|
| 3 |
|
| 4 |
+
from modules import config
|
| 5 |
+
|
| 6 |
|
| 7 |
def setup(app: APIManager):
|
| 8 |
@app.get("/v1/ping", response_model=api_utils.BaseResponse)
|
| 9 |
async def ping():
|
| 10 |
+
return api_utils.success_response("pong")
|
| 11 |
+
|
| 12 |
+
@app.get("/v1/versions", response_model=api_utils.BaseResponse)
|
| 13 |
+
async def get_versions():
|
| 14 |
+
return api_utils.success_response(config.versions.to_dict())
|
modules/api/utils.py
CHANGED
|
@@ -36,7 +36,7 @@ class BaseResponse(BaseModel):
|
|
| 36 |
}
|
| 37 |
|
| 38 |
|
| 39 |
-
def success_response(data: Any, message: str = "
|
| 40 |
return BaseResponse(message=message, data=data)
|
| 41 |
|
| 42 |
|
|
|
|
| 36 |
}
|
| 37 |
|
| 38 |
|
| 39 |
+
def success_response(data: Any, message: str = "ok") -> BaseResponse:
|
| 40 |
return BaseResponse(message=message, data=data)
|
| 41 |
|
| 42 |
|
modules/config.py
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
| 1 |
from modules.utils.JsonObject import JsonObject
|
| 2 |
|
|
|
|
|
|
|
| 3 |
runtime_env_vars = JsonObject({})
|
| 4 |
|
| 5 |
api = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import sys
|
| 2 |
+
|
| 3 |
+
import torch
|
| 4 |
from modules.utils.JsonObject import JsonObject
|
| 5 |
|
| 6 |
+
from modules.utils import git
|
| 7 |
+
|
| 8 |
runtime_env_vars = JsonObject({})
|
| 9 |
|
| 10 |
api = None
|
| 11 |
+
|
| 12 |
+
versions = JsonObject(
|
| 13 |
+
{
|
| 14 |
+
"python_version": ".".join([str(x) for x in sys.version_info[0:3]]),
|
| 15 |
+
"torch_version": getattr(torch, "__long_version__", torch.__version__),
|
| 16 |
+
# "gradio_version":gr.__version__,
|
| 17 |
+
"git_tag": git.git_tag(),
|
| 18 |
+
"git_branch": git.branch_name(),
|
| 19 |
+
"git_commit": git.commit_hash(),
|
| 20 |
+
}
|
| 21 |
+
)
|
modules/utils/constants.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
cwd = os.getcwd()
|
| 5 |
+
utils_path = os.path.dirname(os.path.realpath(__file__))
|
| 6 |
+
modules_path = os.path.dirname(utils_path)
|
| 7 |
+
|
| 8 |
+
ROOT_DIR = os.path.dirname(modules_path)
|
| 9 |
+
DATA_DIR = os.path.join(ROOT_DIR, "data")
|
| 10 |
+
|
| 11 |
+
MODELS_DIR = os.path.join(ROOT_DIR, "models")
|
| 12 |
+
|
| 13 |
+
speakers_dir = os.path.join(DATA_DIR, "speakers")
|
modules/utils/git.py
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from functools import lru_cache
|
| 2 |
+
import os
|
| 3 |
+
import subprocess
|
| 4 |
+
|
| 5 |
+
from modules.utils import constants
|
| 6 |
+
|
| 7 |
+
git = os.environ.get("GIT", "git")
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
@lru_cache()
|
| 11 |
+
def commit_hash():
|
| 12 |
+
try:
|
| 13 |
+
return subprocess.check_output(
|
| 14 |
+
[git, "-C", constants.ROOT_DIR, "rev-parse", "HEAD"],
|
| 15 |
+
shell=False,
|
| 16 |
+
encoding="utf8",
|
| 17 |
+
).strip()
|
| 18 |
+
except Exception:
|
| 19 |
+
return "<none>"
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
@lru_cache()
|
| 23 |
+
def git_tag():
|
| 24 |
+
try:
|
| 25 |
+
return subprocess.check_output(
|
| 26 |
+
[git, "-C", constants.ROOT_DIR, "describe", "--tags"],
|
| 27 |
+
shell=False,
|
| 28 |
+
encoding="utf8",
|
| 29 |
+
).strip()
|
| 30 |
+
except Exception:
|
| 31 |
+
try:
|
| 32 |
+
|
| 33 |
+
changelog_md = os.path.join(
|
| 34 |
+
os.path.dirname(os.path.dirname(__file__)), "CHANGELOG.md"
|
| 35 |
+
)
|
| 36 |
+
with open(changelog_md, "r", encoding="utf-8") as file:
|
| 37 |
+
line = next((line.strip() for line in file if line.strip()), "<none>")
|
| 38 |
+
line = line.replace("## ", "")
|
| 39 |
+
return line
|
| 40 |
+
except Exception:
|
| 41 |
+
return "<none>"
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
@lru_cache()
|
| 45 |
+
def branch_name():
|
| 46 |
+
try:
|
| 47 |
+
return subprocess.check_output(
|
| 48 |
+
[git, "-C", constants.ROOT_DIR, "rev-parse", "--abbrev-ref", "HEAD"],
|
| 49 |
+
shell=False,
|
| 50 |
+
encoding="utf8",
|
| 51 |
+
).strip()
|
| 52 |
+
except Exception:
|
| 53 |
+
return "<none>"
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
if __name__ == "__main__":
|
| 57 |
+
print(commit_hash())
|
| 58 |
+
print(git_tag())
|
| 59 |
+
print(branch_name())
|
webui.py
CHANGED
|
@@ -13,12 +13,12 @@ except:
|
|
| 13 |
|
| 14 |
import os
|
| 15 |
import logging
|
|
|
|
| 16 |
|
| 17 |
import numpy as np
|
| 18 |
|
| 19 |
from modules.devices import devices
|
| 20 |
from modules.synthesize_audio import synthesize_audio
|
| 21 |
-
from modules.utils.cache import conditional_cache
|
| 22 |
|
| 23 |
logging.basicConfig(
|
| 24 |
level=os.getenv("LOG_LEVEL", "INFO"),
|
|
@@ -182,7 +182,7 @@ def refine_text(text: str, prompt: str):
|
|
| 182 |
def read_local_readme():
|
| 183 |
with open("README.md", "r", encoding="utf-8") as file:
|
| 184 |
content = file.read()
|
| 185 |
-
content = content[content.index("#
|
| 186 |
return content
|
| 187 |
|
| 188 |
|
|
@@ -607,6 +607,8 @@ def create_ssml_interface():
|
|
| 607 |
return ssml_input
|
| 608 |
|
| 609 |
|
|
|
|
|
|
|
| 610 |
def split_long_text(long_text_input):
|
| 611 |
spliter = SentenceSplitter(webui_config["spliter_threshold"])
|
| 612 |
sentences = spliter.parse(long_text_input)
|
|
@@ -779,6 +781,24 @@ def create_readme_tab():
|
|
| 779 |
gr.Markdown(readme_content)
|
| 780 |
|
| 781 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 782 |
def create_interface():
|
| 783 |
|
| 784 |
js_func = """
|
|
@@ -806,6 +826,9 @@ def create_interface():
|
|
| 806 |
#input_title div.eta-bar {
|
| 807 |
display: none !important; transform: none !important;
|
| 808 |
}
|
|
|
|
|
|
|
|
|
|
| 809 |
</style>
|
| 810 |
"""
|
| 811 |
|
|
@@ -823,9 +846,7 @@ def create_interface():
|
|
| 823 |
with gr.TabItem("README"):
|
| 824 |
create_readme_tab()
|
| 825 |
|
| 826 |
-
|
| 827 |
-
"此项目基于 [ChatTTS-Forge](https://github.com/lenML/ChatTTS-Forge) "
|
| 828 |
-
)
|
| 829 |
return demo
|
| 830 |
|
| 831 |
|
|
|
|
| 13 |
|
| 14 |
import os
|
| 15 |
import logging
|
| 16 |
+
import sys
|
| 17 |
|
| 18 |
import numpy as np
|
| 19 |
|
| 20 |
from modules.devices import devices
|
| 21 |
from modules.synthesize_audio import synthesize_audio
|
|
|
|
| 22 |
|
| 23 |
logging.basicConfig(
|
| 24 |
level=os.getenv("LOG_LEVEL", "INFO"),
|
|
|
|
| 182 |
def read_local_readme():
|
| 183 |
with open("README.md", "r", encoding="utf-8") as file:
|
| 184 |
content = file.read()
|
| 185 |
+
content = content[content.index("# ") :]
|
| 186 |
return content
|
| 187 |
|
| 188 |
|
|
|
|
| 607 |
return ssml_input
|
| 608 |
|
| 609 |
|
| 610 |
+
# NOTE: 这个其实是需要GPU的...但是spaces会自动卸载,所以不太好使,具体处理在text_normalize中兼容
|
| 611 |
+
# @spaces.GPU
|
| 612 |
def split_long_text(long_text_input):
|
| 613 |
spliter = SentenceSplitter(webui_config["spliter_threshold"])
|
| 614 |
sentences = spliter.parse(long_text_input)
|
|
|
|
| 781 |
gr.Markdown(readme_content)
|
| 782 |
|
| 783 |
|
| 784 |
+
def create_app_footer():
|
| 785 |
+
gradio_version = gr.__version__
|
| 786 |
+
git_tag = config.versions.git_tag
|
| 787 |
+
git_commit = config.versions.git_commit
|
| 788 |
+
git_branch = config.versions.git_branch
|
| 789 |
+
python_version = config.versions.python_version
|
| 790 |
+
torch_version = config.versions.torch_version
|
| 791 |
+
|
| 792 |
+
config.versions.gradio_version = gradio_version
|
| 793 |
+
|
| 794 |
+
gr.Markdown(
|
| 795 |
+
f"""
|
| 796 |
+
🍦 [ChatTTS-Forge](https://github.com/lenML/ChatTTS-Forge)
|
| 797 |
+
version: [{git_tag}](https://github.com/lenML/ChatTTS-Forge/commit/{git_commit}) | branch: `{git_branch}` | python: `{python_version}` | torch: `{torch_version}`
|
| 798 |
+
"""
|
| 799 |
+
)
|
| 800 |
+
|
| 801 |
+
|
| 802 |
def create_interface():
|
| 803 |
|
| 804 |
js_func = """
|
|
|
|
| 826 |
#input_title div.eta-bar {
|
| 827 |
display: none !important; transform: none !important;
|
| 828 |
}
|
| 829 |
+
footer {
|
| 830 |
+
display: none !important;
|
| 831 |
+
}
|
| 832 |
</style>
|
| 833 |
"""
|
| 834 |
|
|
|
|
| 846 |
with gr.TabItem("README"):
|
| 847 |
create_readme_tab()
|
| 848 |
|
| 849 |
+
create_app_footer()
|
|
|
|
|
|
|
| 850 |
return demo
|
| 851 |
|
| 852 |
|