Fixed rvc endpoint accepting files

This commit is contained in:
2026-03-21 11:25:38 -07:00
parent 1f9832ac0d
commit e3ffc711b8

View File

@@ -25,7 +25,7 @@ load_dotenv()
@router.post("/inference") @router.post("/inference")
def inference( def inference(
input_audio: Path | UploadFile, input_audio: UploadFile,
modelpath: Path modelpath: Path
| UploadFile = Body( | UploadFile = Body(
..., ...,
@@ -49,11 +49,20 @@ def inference(
protect: float = 0.33, protect: float = 0.33,
): ):
print(res_type) print(res_type)
# Handle uploaded input_audio file
tmp_input_audio = tempfile.NamedTemporaryFile(suffix=".wav", delete=False)
input_bytes = input_audio.file.read()
tmp_input_audio.write(input_bytes)
tmp_input_audio.close()
input_audio_path = tmp_input_audio.name
try:
vc = VC() vc = VC()
vc.get_vc(modelpath) vc.get_vc(modelpath)
tgt_sr, audio_opt, times, _ = vc.vc_inference( tgt_sr, audio_opt, times, _ = vc.vc_inference(
sid, sid,
input_audio, input_audio_path,
f0_up_key, f0_up_key,
f0_method, f0_method,
f0_file, f0_file,
@@ -64,6 +73,10 @@ def inference(
rms_mix_rate, rms_mix_rate,
protect, protect,
) )
finally:
# Clean up temporary input audio file
os.unlink(tmp_input_audio.name)
wavfile.write(wv := BytesIO(), tgt_sr, audio_opt) wavfile.write(wv := BytesIO(), tgt_sr, audio_opt)
print(times) print(times)
if res_type == "blob": if res_type == "blob":