diff --git a/pyproject.toml b/pyproject.toml index c9bd07a..86be1cc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,10 +34,10 @@ numba = "0.59.0rc1" api = ["uvicorn", "fastapi"] [tool.poetry.scripts] -rvc = "rvc.utils.cli.cli:main" +rvc = "rvc.wrapper.cli.cli:main" [tool.poe.tasks] -rvc-api = "uvicorn rvc.utils.api.api:app --reload" +rvc-api = "uvicorn rvc.wrapper.api.api:app --reload" [build-system] requires = ["poetry-core"] diff --git a/rvc/utils/cli/handler/uvr5.py b/rvc/utils/cli/handler/uvr5.py deleted file mode 100644 index 249ec6b..0000000 --- a/rvc/utils/cli/handler/uvr5.py +++ /dev/null @@ -1,6 +0,0 @@ -import click - - -@click.command() -def uvr(): - pass diff --git a/rvc/utils/api/api.py b/rvc/wrapper/api/api.py similarity index 75% rename from rvc/utils/api/api.py rename to rvc/wrapper/api/api.py index 1c7d257..faba78d 100644 --- a/rvc/utils/api/api.py +++ b/rvc/wrapper/api/api.py @@ -1,8 +1,8 @@ +import uvicorn from dotenv import load_dotenv from fastapi import FastAPI -import uvicorn -from rvc.utils.api.endpoints import inference +from rvc.wrapper.api.endpoints import inference load_dotenv() diff --git a/rvc/utils/api/endpoints/inference.py b/rvc/wrapper/api/endpoints/inference.py similarity index 94% rename from rvc/utils/api/endpoints/inference.py rename to rvc/wrapper/api/endpoints/inference.py index a37e4cb..fe7d4da 100644 --- a/rvc/utils/api/endpoints/inference.py +++ b/rvc/wrapper/api/endpoints/inference.py @@ -1,7 +1,7 @@ from io import BytesIO from pathlib import Path -from fastapi import APIRouter, UploadFile, Response, responses +from fastapi import APIRouter, Response, UploadFile, responses from pydantic import BaseModel from scipy.io import wavfile diff --git a/rvc/wrapper/api/endpoints/uvr.py b/rvc/wrapper/api/endpoints/uvr.py new file mode 100644 index 0000000..58faddd --- /dev/null +++ b/rvc/wrapper/api/endpoints/uvr.py @@ -0,0 +1,18 @@ +from fastapi import APIRouter, Response, UploadFile, responses + +from rvc.modules.uvr5.modules import UVR + +router = APIRouter() + + +@router.post("/inference") +def uvr(inputpath, outputpath, modelname, format): + uvr_module = UVR() + uvr_module.uvr_wrapper( + inputpath, outputpath, model_name=modelname, export_format=format + ) + return responses.StreamingResponse( + audio, + media_type="audio/wav", + headers={"Content-Disposition": "attachment; filename=inference.wav"}, + ) diff --git a/rvc/utils/cli/cli.py b/rvc/wrapper/cli/cli.py similarity index 59% rename from rvc/utils/cli/cli.py rename to rvc/wrapper/cli/cli.py index cfe5da0..5470463 100644 --- a/rvc/utils/cli/cli.py +++ b/rvc/wrapper/cli/cli.py @@ -3,12 +3,12 @@ from typing import Optional, Pattern import click -from rvc.utils.cli.handler.infer import infer -from rvc.utils.cli.handler.train import train -from rvc.utils.cli.handler.uvr5 import uvr -from rvc.utils.cli.utils.dlmodel import dlmodel -from rvc.utils.cli.utils.env import env -from rvc.utils.cli.utils.initialize import init +from rvc.wrapper.cli.handler.infer import infer +from rvc.wrapper.cli.handler.train import train +from rvc.wrapper.cli.handler.uvr5 import uvr +from rvc.wrapper.cli.utils.dlmodel import dlmodel +from rvc.wrapper.cli.utils.env import env +from rvc.wrapper.cli.utils.initialize import init @click.group( diff --git a/rvc/utils/cli/handler/infer.py b/rvc/wrapper/cli/handler/infer.py similarity index 99% rename from rvc/utils/cli/handler/infer.py rename to rvc/wrapper/cli/handler/infer.py index cb8c37e..9cf0d04 100644 --- a/rvc/utils/cli/handler/infer.py +++ b/rvc/wrapper/cli/handler/infer.py @@ -5,8 +5,6 @@ import click from dotenv import load_dotenv from scipy.io import wavfile - - logging.getLogger("numba").setLevel(logging.WARNING) @@ -110,6 +108,7 @@ def infer( protect, ): from rvc.modules.vc.modules import VC + load_dotenv() vc = VC() vc.get_vc(modelpath) diff --git a/rvc/utils/cli/handler/train.py b/rvc/wrapper/cli/handler/train.py similarity index 100% rename from rvc/utils/cli/handler/train.py rename to rvc/wrapper/cli/handler/train.py diff --git a/rvc/wrapper/cli/handler/uvr5.py b/rvc/wrapper/cli/handler/uvr5.py new file mode 100644 index 0000000..06efb5b --- /dev/null +++ b/rvc/wrapper/cli/handler/uvr5.py @@ -0,0 +1,45 @@ +from pathlib import Path + +import click + +from rvc.modules.uvr5.modules import UVR + + +@click.command() +@click.option( + "-m", + "--modelName", + is_flag=False, + type=str, + help="Model path or filename (reads in the directory set in env)", + # required=True, +) +@click.option( + "-i", + "--inputPath", + is_flag=False, + type=Path, + help="input audio path or folder", + # required=True, +) +@click.option( + "-o", + "--outputPath", + is_flag=False, + type=Path, + help="output audio path or folder", + required=True, +) +@click.option( + "-f", + "--format", + is_flag=False, + type=str, + help="output Format", +) +def uvr(modelname, inputpath, outputpath, format): + uvr_module = UVR() + uvr_module.uvr_wrapper( + inputpath, outputpath, model_name=modelname, export_format=format + ) + click.echo(f"Finish uvr5. Check {outputpath}") diff --git a/rvc/utils/cli/utils/dlmodel.py b/rvc/wrapper/cli/utils/dlmodel.py similarity index 100% rename from rvc/utils/cli/utils/dlmodel.py rename to rvc/wrapper/cli/utils/dlmodel.py diff --git a/rvc/utils/cli/utils/env.py b/rvc/wrapper/cli/utils/env.py similarity index 100% rename from rvc/utils/cli/utils/env.py rename to rvc/wrapper/cli/utils/env.py diff --git a/rvc/utils/cli/utils/initialize.py b/rvc/wrapper/cli/utils/initialize.py similarity index 100% rename from rvc/utils/cli/utils/initialize.py rename to rvc/wrapper/cli/utils/initialize.py