From 106915b55b1df3d902e0c3f6bd7e051f14598491 Mon Sep 17 00:00:00 2001 From: Claude Owner Date: Tue, 26 May 2026 20:49:19 +0900 Subject: [PATCH] fix(melo-test): use subscript on spk2id (HParams has no .get) `model.hps.data.spk2id` is a MeloTTS `HParams` instance, not a dict. It exposes `__contains__` and `__getitem__` but not `.get()`, so the previous lookup blew up at lifespan startup with `AttributeError: 'HParams' object has no attribute 'get'`. Switch to `spk["KR"] if "KR" in spk else next(iter(spk.values()))`. --- melo-test/server.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/melo-test/server.py b/melo-test/server.py index f6a58d0..c8c3529 100644 --- a/melo-test/server.py +++ b/melo-test/server.py @@ -35,8 +35,10 @@ async def lifespan(_: FastAPI): device = os.environ.get("MELO_DEVICE", "auto") model = TTS(language="KR", device=device) spk = model.hps.data.spk2id - # 한국어 모델은 보통 {"KR": 0} - speaker_id = spk.get("KR", next(iter(spk.values()))) + # 한국어 모델은 보통 {"KR": 0}. + # spk2id 는 dict 가 아니라 MeloTTS 의 HParams 인스턴스라 + # `.get()` 이 없고 `__contains__` / `__getitem__` 만 지원함. + speaker_id = spk["KR"] if "KR" in spk else next(iter(spk.values())) state["model"] = model state["speaker_id"] = speaker_id log.info("모델 로딩 완료 (%.1fs). speakers=%s, 사용=%s",