add inference cli
This commit is contained in:
131
rvc/cli/handler/infer.py
Normal file
131
rvc/cli/handler/infer.py
Normal file
@@ -0,0 +1,131 @@
|
||||
import logging
|
||||
from pathlib import Path
|
||||
|
||||
import click
|
||||
from dotenv import load_dotenv
|
||||
from scipy.io import wavfile
|
||||
|
||||
from rvc.modules.vc.modules import VC
|
||||
|
||||
|
||||
logging.getLogger("numba").setLevel(logging.WARNING)
|
||||
|
||||
|
||||
@click.command(
|
||||
context_settings={"help_option_names": ["-h", "--help"]},
|
||||
help="inference audio",
|
||||
)
|
||||
@click.option(
|
||||
"-m",
|
||||
"--modelPath",
|
||||
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(
|
||||
"-s", "--sid", is_flag=False, type=int, help="Speaker/Singer id", default=0
|
||||
)
|
||||
@click.option("-fu", "--f0upkey", is_flag=False, type=int, help="Transpose", default=0)
|
||||
@click.option(
|
||||
"-fm",
|
||||
"--f0method",
|
||||
is_flag=False,
|
||||
type=str,
|
||||
help="Pitch extraction algorith",
|
||||
default="rmvpe",
|
||||
)
|
||||
@click.option(
|
||||
"-ff", "--f0file", is_flag=False, type=Path, help="F0 curve file (optional)"
|
||||
)
|
||||
@click.option("-if", "--indexFile", is_flag=False, type=Path, help="Feature index file")
|
||||
@click.option(
|
||||
"-ir",
|
||||
"--indexRate",
|
||||
is_flag=False,
|
||||
type=float,
|
||||
help="Search feature ratio",
|
||||
default=0.75,
|
||||
)
|
||||
@click.option(
|
||||
"-fr",
|
||||
"--filterRadius",
|
||||
is_flag=False,
|
||||
type=int,
|
||||
help="Apply median filtering",
|
||||
default=3,
|
||||
)
|
||||
@click.option(
|
||||
"-rsr",
|
||||
"--resamplesr",
|
||||
is_flag=False,
|
||||
type=int,
|
||||
help="Resample the output audio",
|
||||
default=0,
|
||||
)
|
||||
@click.option(
|
||||
"-rmr",
|
||||
"--rmsmixrate",
|
||||
is_flag=False,
|
||||
type=float,
|
||||
help="Adjust the volume envelope scaling",
|
||||
default=0.25,
|
||||
)
|
||||
@click.option(
|
||||
"-p",
|
||||
"--protect",
|
||||
is_flag=False,
|
||||
type=float,
|
||||
help="Protect voiceless consonants and breath sounds",
|
||||
default=0.33,
|
||||
)
|
||||
def infer(
|
||||
modelpath,
|
||||
inputpath,
|
||||
outputpath,
|
||||
sid,
|
||||
f0upkey,
|
||||
f0method,
|
||||
f0file,
|
||||
indexfile,
|
||||
indexrate,
|
||||
filterradius,
|
||||
resamplesr,
|
||||
rmsmixrate,
|
||||
protect,
|
||||
):
|
||||
load_dotenv()
|
||||
vc = VC()
|
||||
vc.get_vc(modelpath)
|
||||
tgt_sr, audio_opt, times, _ = vc.vc_single(
|
||||
sid,
|
||||
inputpath,
|
||||
f0upkey,
|
||||
f0method,
|
||||
f0file,
|
||||
indexfile,
|
||||
indexrate,
|
||||
filterradius,
|
||||
resamplesr,
|
||||
rmsmixrate,
|
||||
protect,
|
||||
)
|
||||
wavfile.write(outputpath, tgt_sr, audio_opt)
|
||||
click.echo(times)
|
||||
click.echo(f"Finish inference. Check {outputpath}")
|
||||
6
rvc/cli/handler/train.py
Normal file
6
rvc/cli/handler/train.py
Normal file
@@ -0,0 +1,6 @@
|
||||
import click
|
||||
|
||||
|
||||
@click.command()
|
||||
def train():
|
||||
pass
|
||||
6
rvc/cli/handler/uvr5.py
Normal file
6
rvc/cli/handler/uvr5.py
Normal file
@@ -0,0 +1,6 @@
|
||||
import click
|
||||
|
||||
|
||||
@click.command()
|
||||
def uvr():
|
||||
pass
|
||||
Reference in New Issue
Block a user