Spaces:
				
			
			
	
			
			
					
		Running
		
	
	
	
			
			
	
	
	
	
		
		
					
		Running
		
	
		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 | 
         |