[!注意] 目前正在开发中...作为库和API在rvc中提供
安装和使用
标准设置
首先,在你的项目中创建一个目录。assets
文件夹将包含推理和训练所需的模型,result
文件夹将包含训练结果。
rvc init
这将在你的工作目录中创建一个assets
文件夹和.env
文件。
[!警告] 该目录应为空或不含assets文件夹。
自定义设置
如果你已经下载了模型或想更改这些配置,请编辑.env
文件。
如果你还没有.env
文件,
rvc env create
可以创建一个。
此外,下载模型时,你可以使用
rvc dlmodel
或
rvc dlmodel {download_dir}
最后,在env文件中指定模型的位置,就完成了!
库使用
推理音频
from pathlib import Path
from dotenv import load_dotenv
from scipy.io import wavfile
from rvc.modules.vc.modules import VC
def main():
vc = VC()
vc.get_vc("{model.pth}")
tgt_sr, audio_opt, times, _ = vc.vc_inference(
1, Path("{InputAudio}")
)
wavfile.write("{OutputAudio}", tgt_sr, audio_opt)
if __name__ == "__main__":
load_dotenv("{envPath}")
main()
CLI使用
推理音频
rvc infer -m {model.pth} -i {input.wav} -o {output.wav}
选项 | 标志 | 类型 | 默认值 | 描述 |
---|---|---|---|---|
modelPath | -m | Path | *必需 | 模型路径或文件名(在env中设置的目录中读取) |
inputPath | -i | Path | *必需 | 输入音频路径或文件夹 |
outputPath | -o | Path | *必需 | 输出音频路径或文件夹 |
sid | -s | int | 0 | 说话者/歌手ID |
f0_up_key | -fu | int | 0 | 变调(整数,半音数,升高一个八度:12,降低一个八度:-12) |
f0_method | -fm | str | rmvpe | 音高提取算法(pm, harvest, crepe, rmvpe) |
f0_file | -ff | Path | None | None | F0曲线文件(可选)。每行一个音高。替换默认F0和音高调制 |
index_file | -if | Path | None | None | 特征索引文件路径 |
index_rate | -if | float | 0.75 | 搜索特征比率(控制口音强度,太高会产生伪音) |
filter_radius | -fr | int | 3 | 如果>=3:对获取的音高结果应用中值滤波。该值表示滤波半径,可以减少气声 |
resample_sr | -rsr | int | 0 | 在后处理中将输出音频重采样到最终采样率。设置为0表示不重采样 |
rms_mix_rate | -rmr | float | 0.25 | 调整音量包络缩放。越接近0,越模仿原始声音的音量。设置相对较低时可以帮助掩盖噪音并使音量听起来更自然。越接近1将是更加一致的大音量 |
protect | -p | float | 0.33 | 保护无声辅音和呼吸声,防止电子音乐中出现撕裂等伪音。设置为0.5以禁用。降低值以增加保护,但可能降低索引准确性 |
API使用
首先,启动服务器。
rvc-api
或
poetry run poe rvc-api
推理音频
获取为blob
curl -X 'POST' \
'http://127.0.0.1:8000/inference?res_type=blob' \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'modelpath={model.pth}' \
-F 'input={input audio path}'
获取为json(包含时间)
curl -X 'POST' \
'http://127.0.0.1:8000/inference?res_type=json' \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'modelpath={model.pth}' \
-F 'input={input audio path}'
Docker使用
通过脚本构建和运行:
./docker-run.sh
或者手动使用:
-
构建:
docker build -t "rvc" .
-
运行:
docker run -it \ -p 8000:8000 \ -v "${PWD}/assets/weights:/weights:ro" \ -v "${PWD}/assets/indices:/indices:ro" \ -v "${PWD}/assets/audios:/audios:ro" \ "rvc"
注意假设权重、索引和输入音频存储在当前目录/assets
中