Refactor localization files and remove Aliyun references
This commit is contained in:
@@ -70,14 +70,7 @@ async def process_custom_voice_job(
|
||||
|
||||
logger.info(f"Processing custom-voice job {job_id} with backend {backend_type}")
|
||||
|
||||
user_api_key = None
|
||||
if backend_type == "aliyun":
|
||||
from db.crud import get_system_setting
|
||||
encrypted = get_system_setting(db, "aliyun_api_key")
|
||||
if encrypted:
|
||||
user_api_key = decrypt_api_key(encrypted)
|
||||
|
||||
backend = await TTSServiceFactory.get_backend(backend_type, user_api_key)
|
||||
backend = await TTSServiceFactory.get_backend()
|
||||
|
||||
audio_bytes, sample_rate = await backend.generate_custom_voice(request_data)
|
||||
|
||||
@@ -133,19 +126,9 @@ async def process_voice_design_job(
|
||||
|
||||
logger.info(f"Processing voice-design job {job_id} with backend {backend_type}")
|
||||
|
||||
user_api_key = None
|
||||
if backend_type == "aliyun":
|
||||
from db.crud import get_system_setting
|
||||
encrypted = get_system_setting(db, "aliyun_api_key")
|
||||
if encrypted:
|
||||
user_api_key = decrypt_api_key(encrypted)
|
||||
backend = await TTSServiceFactory.get_backend()
|
||||
|
||||
backend = await TTSServiceFactory.get_backend(backend_type, user_api_key)
|
||||
|
||||
if backend_type == "aliyun" and saved_voice_id:
|
||||
audio_bytes, sample_rate = await backend.generate_voice_design(request_data, saved_voice_id)
|
||||
else:
|
||||
audio_bytes, sample_rate = await backend.generate_voice_design(request_data)
|
||||
audio_bytes, sample_rate = await backend.generate_voice_design(request_data)
|
||||
|
||||
timestamp = datetime.utcnow().strftime("%Y%m%d_%H%M%S")
|
||||
filename = f"{user_id}_{job_id}_{timestamp}.wav"
|
||||
@@ -200,14 +183,6 @@ async def process_voice_clone_job(
|
||||
|
||||
logger.info(f"Processing voice-clone job {job_id} with backend {backend_type}")
|
||||
|
||||
from core.security import decrypt_api_key
|
||||
user_api_key = None
|
||||
if backend_type == "aliyun":
|
||||
from db.crud import get_system_setting
|
||||
encrypted = get_system_setting(db, "aliyun_api_key")
|
||||
if encrypted:
|
||||
user_api_key = decrypt_api_key(encrypted)
|
||||
|
||||
with open(ref_audio_path, 'rb') as f:
|
||||
ref_audio_data = f.read()
|
||||
|
||||
@@ -233,7 +208,7 @@ async def process_voice_clone_job(
|
||||
ref_audio_data = f.read()
|
||||
ref_audio_hash = cache_manager.get_audio_hash(ref_audio_data)
|
||||
|
||||
if request_data.get('x_vector_only_mode', False) and backend_type == "local":
|
||||
if request_data.get('x_vector_only_mode', False):
|
||||
x_vector = None
|
||||
cache_id = None
|
||||
|
||||
@@ -287,9 +262,9 @@ async def process_voice_clone_job(
|
||||
logger.info(f"Job {job_id} completed (x_vector_only_mode)")
|
||||
return
|
||||
|
||||
backend = await TTSServiceFactory.get_backend(backend_type, user_api_key)
|
||||
backend = await TTSServiceFactory.get_backend()
|
||||
|
||||
if voice_design_id and backend_type == "local":
|
||||
if voice_design_id:
|
||||
from db.crud import get_voice_design
|
||||
design = get_voice_design(db, voice_design_id, user_id)
|
||||
cached = await cache_manager.get_cache_by_id(design.voice_cache_id, db)
|
||||
@@ -339,34 +314,20 @@ async def create_custom_voice_job(
|
||||
current_user: User = Depends(get_current_user),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
from core.security import decrypt_api_key
|
||||
from db.crud import get_user_preferences, can_user_use_local_model
|
||||
from db.crud import can_user_use_local_model
|
||||
|
||||
user_prefs = get_user_preferences(db, current_user.id)
|
||||
preferred_backend = user_prefs.get("default_backend", "aliyun")
|
||||
|
||||
can_use_local = can_user_use_local_model(current_user)
|
||||
|
||||
backend_type = req_data.backend if hasattr(req_data, 'backend') and req_data.backend else preferred_backend
|
||||
|
||||
if backend_type == "local" and not can_use_local:
|
||||
if not can_user_use_local_model(current_user):
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail="Local model is not available. Please contact administrator."
|
||||
)
|
||||
|
||||
if backend_type == "aliyun":
|
||||
from db.crud import get_system_setting
|
||||
if not get_system_setting(db, "aliyun_api_key"):
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail="Aliyun API key not configured. Please contact administrator."
|
||||
)
|
||||
backend_type = "local"
|
||||
|
||||
try:
|
||||
validate_text_length(req_data.text)
|
||||
language = validate_language(req_data.language)
|
||||
speaker = validate_speaker(req_data.speaker, backend_type)
|
||||
speaker = validate_speaker(req_data.speaker)
|
||||
|
||||
params = validate_generation_params({
|
||||
'max_new_tokens': req_data.max_new_tokens,
|
||||
@@ -430,48 +391,24 @@ async def create_voice_design_job(
|
||||
current_user: User = Depends(get_current_user),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
from core.security import decrypt_api_key
|
||||
from db.crud import get_user_preferences, can_user_use_local_model, get_voice_design, update_voice_design_usage
|
||||
from db.crud import can_user_use_local_model, get_voice_design, update_voice_design_usage
|
||||
|
||||
user_prefs = get_user_preferences(db, current_user.id)
|
||||
preferred_backend = user_prefs.get("default_backend", "aliyun")
|
||||
if not can_user_use_local_model(current_user):
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail="Local model is not available. Please contact administrator."
|
||||
)
|
||||
|
||||
can_use_local = can_user_use_local_model(current_user)
|
||||
|
||||
backend_type = req_data.backend if hasattr(req_data, 'backend') and req_data.backend else preferred_backend
|
||||
|
||||
saved_voice_id = None
|
||||
backend_type = "local"
|
||||
|
||||
if req_data.saved_design_id:
|
||||
saved_design = get_voice_design(db, req_data.saved_design_id, current_user.id)
|
||||
if not saved_design:
|
||||
raise HTTPException(status_code=404, detail="Saved voice design not found")
|
||||
|
||||
if saved_design.backend_type != backend_type:
|
||||
raise HTTPException(
|
||||
status_code=400,
|
||||
detail=f"Saved design backend ({saved_design.backend_type}) doesn't match current backend ({backend_type})"
|
||||
)
|
||||
|
||||
req_data.instruct = saved_design.instruct
|
||||
saved_voice_id = saved_design.aliyun_voice_id
|
||||
|
||||
update_voice_design_usage(db, req_data.saved_design_id, current_user.id)
|
||||
|
||||
if backend_type == "local" and not can_use_local:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail="Local model is not available. Please contact administrator."
|
||||
)
|
||||
|
||||
if backend_type == "aliyun":
|
||||
from db.crud import get_system_setting
|
||||
if not get_system_setting(db, "aliyun_api_key"):
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail="Aliyun API key not configured. Please contact administrator."
|
||||
)
|
||||
|
||||
try:
|
||||
validate_text_length(req_data.text)
|
||||
language = validate_language(req_data.language)
|
||||
@@ -553,29 +490,15 @@ async def create_voice_clone_job(
|
||||
current_user: User = Depends(get_current_user),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
from core.security import decrypt_api_key
|
||||
from db.crud import get_user_preferences, can_user_use_local_model, get_voice_design
|
||||
from db.crud import can_user_use_local_model, get_voice_design
|
||||
|
||||
user_prefs = get_user_preferences(db, current_user.id)
|
||||
preferred_backend = user_prefs.get("default_backend", "aliyun")
|
||||
|
||||
can_use_local = can_user_use_local_model(current_user)
|
||||
|
||||
backend_type = backend if backend else preferred_backend
|
||||
|
||||
if backend_type == "local" and not can_use_local:
|
||||
if not can_user_use_local_model(current_user):
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_403_FORBIDDEN,
|
||||
detail="Local model is not available. Please contact administrator."
|
||||
)
|
||||
|
||||
if backend_type == "aliyun":
|
||||
from db.crud import get_system_setting
|
||||
if not get_system_setting(db, "aliyun_api_key"):
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail="Aliyun API key not configured. Please contact administrator."
|
||||
)
|
||||
backend_type = "local"
|
||||
|
||||
ref_audio_data = None
|
||||
ref_audio_hash = None
|
||||
@@ -600,9 +523,6 @@ async def create_voice_clone_job(
|
||||
if not design:
|
||||
raise ValueError("Voice design not found")
|
||||
|
||||
if design.backend_type != backend_type:
|
||||
raise ValueError(f"Voice design backend ({design.backend_type}) doesn't match request backend ({backend_type})")
|
||||
|
||||
if not design.voice_cache_id:
|
||||
raise ValueError("Voice design has no prepared clone prompt. Please call /voice-designs/{id}/prepare-clone first")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user