fix: update fastapi.py. 2.2 reference适配

This commit is contained in:
Sora
2023-12-14 14:48:19 +08:00
parent 252ddd5b64
commit 9e4cc4c7de

View File

@@ -5,6 +5,7 @@ import logging
import gc import gc
import random import random
import librosa
import gradio import gradio
import numpy as np import numpy as np
import utils import utils
@@ -223,12 +224,26 @@ if __name__ == "__main__":
if speaker_name not in loaded_models.models[model_id].spk2id.keys(): if speaker_name not in loaded_models.models[model_id].spk2id.keys():
logger.error(f"/voice 请求错误角色speaker_name={speaker_name}不存在") logger.error(f"/voice 请求错误角色speaker_name={speaker_name}不存在")
return {"status": 13, "detail": f"角色speaker_name={speaker_name}不存在"} return {"status": 13, "detail": f"角色speaker_name={speaker_name}不存在"}
# 未传入则使用默认语言
if language is None: if language is None:
language = loaded_models.models[model_id].language language = loaded_models.models[model_id].language
# 翻译会破坏mix结构auto也会变得无意义。不要在这两个模式下使用
if auto_translate: if auto_translate:
if language == "auto" or language == "mix":
logger.error(
f"/voice 请求错误请勿同时使用language = {language}与auto_translate模式"
)
return {
"status": 20,
"detail": f"请勿同时使用language = {language}与auto_translate模式",
}
text = trans.translate(Sentence=text, to_Language=language.lower()) text = trans.translate(Sentence=text, to_Language=language.lower())
if reference_audio is not None: if reference_audio is not None:
ref_audio = BytesIO(await reference_audio.read()) ref_audio = BytesIO(await reference_audio.read())
# 2.2 适配
if loaded_models.models[model_id].version == "2.2":
ref_audio, _ = librosa.load(ref_audio, 48000)
else: else:
ref_audio = reference_audio ref_audio = reference_audio
if not auto_split: if not auto_split: