simler commited on
Commit
5eceff1
·
verified ·
1 Parent(s): 34b41f0

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -4
app.py CHANGED
@@ -102,7 +102,7 @@ async def upload_and_tts(
102
  @app.post("/tts")
103
  async def dynamic_tts(
104
  text: str = Form(...),
105
- character_name: str = Form("Default"),
106
  prompt_text: str = Form(None),
107
  prompt_lang: str = Form("zh"),
108
  use_default_ref: bool = Form(True)
@@ -111,9 +111,13 @@ async def dynamic_tts(
111
  通用 TTS 接口,支持切换已加载的角色
112
  """
113
  try:
114
- # 如果提供了 prompt_text 且不是默认参考,则尝试更新该角色的参考(假设已经有 ref.wav 在该角色目录下)
115
- # 这里为了简化,如果没传特定音频,就用 REF_CACHE 里的
116
- ref_info = REF_CACHE.get(character_name, REF_CACHE["Default"])
 
 
 
 
117
 
118
  # 允许通过 API 动态覆盖当前参考文本(不换音频文件)
119
  final_text = prompt_text if prompt_text else ref_info["text"]
@@ -128,5 +132,9 @@ async def dynamic_tts(
128
  print(f"❌ Error: {e}")
129
  raise HTTPException(status_code=500, detail=str(e))
130
 
 
 
 
 
131
  if __name__ == "__main__":
132
  uvicorn.run(app, host="0.0.0.0", port=7860)
 
102
  @app.post("/tts")
103
  async def dynamic_tts(
104
  text: str = Form(...),
105
+ character_name: str = Form("Base"),
106
  prompt_text: str = Form(None),
107
  prompt_lang: str = Form("zh"),
108
  use_default_ref: bool = Form(True)
 
111
  通用 TTS 接口,支持切换已加载的角色
112
  """
113
  try:
114
+ # 优先使指定的角色如果没有则尝试 Base,如果都没有则报错
115
+ ref_info = REF_CACHE.get(character_name)
116
+ if not ref_info:
117
+ ref_info = REF_CACHE.get("Base")
118
+
119
+ if not ref_info:
120
+ raise HTTPException(status_code=404, detail=f"Character {character_name} not loaded and no Base model available.")
121
 
122
  # 允许通过 API 动态覆盖当前参考文本(不换音频文件)
123
  final_text = prompt_text if prompt_text else ref_info["text"]
 
132
  print(f"❌ Error: {e}")
133
  raise HTTPException(status_code=500, detail=str(e))
134
 
135
+ @app.get("/health")
136
+ async def health():
137
+ return {"status": "ok", "models": list(REF_CACHE.keys())}
138
+
139
  if __name__ == "__main__":
140
  uvicorn.run(app, host="0.0.0.0", port=7860)