Voice library support dashscope
This commit is contained in:
@@ -34,6 +34,12 @@ def _is_openai_compatible_vendor(vendor: Optional[str]) -> bool:
|
||||
}
|
||||
|
||||
|
||||
def _is_dashscope_vendor(vendor: Optional[str]) -> bool:
|
||||
return (vendor or "").strip().lower() in {
|
||||
"dashscope",
|
||||
}
|
||||
|
||||
|
||||
def _normalize_openai_compatible_voice_key(voice_value: str, model: str) -> str:
|
||||
raw = (voice_value or "").strip()
|
||||
model_name = (model or "").strip() or OPENAI_COMPATIBLE_DEFAULT_MODEL
|
||||
@@ -121,7 +127,12 @@ def _resolve_runtime_metadata(db: Session, assistant: Assistant) -> tuple[Dict[s
|
||||
elif assistant.voice:
|
||||
voice = db.query(Voice).filter(Voice.id == assistant.voice).first()
|
||||
if voice:
|
||||
tts_provider = "openai_compatible" if _is_openai_compatible_vendor(voice.vendor) else "edge"
|
||||
if _is_dashscope_vendor(voice.vendor):
|
||||
tts_provider = "dashscope"
|
||||
elif _is_openai_compatible_vendor(voice.vendor):
|
||||
tts_provider = "openai_compatible"
|
||||
else:
|
||||
tts_provider = "edge"
|
||||
model = voice.model
|
||||
runtime_voice = voice.voice_key or voice.id
|
||||
if tts_provider == "openai_compatible":
|
||||
@@ -131,8 +142,8 @@ def _resolve_runtime_metadata(db: Session, assistant: Assistant) -> tuple[Dict[s
|
||||
"enabled": True,
|
||||
"provider": tts_provider,
|
||||
"model": model,
|
||||
"apiKey": voice.api_key if tts_provider == "openai_compatible" else None,
|
||||
"baseUrl": voice.base_url if tts_provider == "openai_compatible" else None,
|
||||
"apiKey": voice.api_key if tts_provider in {"openai_compatible", "dashscope"} else None,
|
||||
"baseUrl": voice.base_url if tts_provider in {"openai_compatible", "dashscope"} else None,
|
||||
"voice": runtime_voice,
|
||||
"speed": assistant.speed or voice.speed,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user