#!/usr/bin/env bash # # Runs request to RVC API on localhost. set -e host="http://127.0.0.1:8000" url="${host}/inference" url+="?res_type=json" model_path="" index_path="" input_audio="" output_audio_suffix="" while [ $# -gt 0 ]; do if [ "$1" == "--model_path" ]; then model_path="$2" elif [ "$1" == "--index_file" ]; then index_path="$2" elif [ "$1" == "--input_audio" ]; then input_audio="$2" else arg_name="${1#--}" arg_value="$2" url+="&${arg_name}=${arg_value}" output_audio_suffix+="-${arg_name}_${arg_value}" fi shift shift done model_path_base="$(basename "${model_path}")" model_path_base_without_ext="${model_path_base%.*}" index_path_base="$(basename "${index_path}")" input_audio_base="$(basename "${input_audio}")" input_audio_dirname="$(dirname "${input_audio}")" output_audio_base_without_ext="${input_audio_base%.*}" output_audio="${input_audio_dirname}/${output_audio_base_without_ext}-${model_path_base_without_ext}${output_audio_suffix}.wav" cp "${model_path}" "./assets/weights/${model_path_base}" cp "${input_audio}" "./assets/audios/${input_audio_base}" if [ -f "${index_path}" ]; then url+="&index_file=${index_path_base}" cp "${index_path}" "./assets/indices/${index_path_base}" fi curl -X "POST" "${url}" \ -H "accept: application/json" \ -H "Content-Type: multipart/form-data" \ -F "modelpath=${model_path_base}" \ -F "input_audio=/audios/${input_audio_base}" \ | jq -r '.audio' \ | base64 -d > "${output_audio}"