Spaces:
Running
Running
Update Space for the v1.4-AEC release (GGML engine)
Browse files- app.py +201 -12
- lib/libggml-base.so +2 -2
- lib/libggml-base.so.0 +2 -2
- lib/libggml-base.so.0.9.8 +2 -2
- lib/libggml-cpu-alderlake.so +2 -2
- lib/libggml-cpu-cannonlake.so +2 -2
- lib/libggml-cpu-cascadelake.so +2 -2
- lib/libggml-cpu-cooperlake.so +2 -2
- lib/libggml-cpu-haswell.so +2 -2
- lib/libggml-cpu-icelake.so +2 -2
- lib/libggml-cpu-ivybridge.so +2 -2
- lib/libggml-cpu-piledriver.so +2 -2
- lib/libggml-cpu-sandybridge.so +2 -2
- lib/libggml-cpu-sapphirerapids.so +2 -2
- lib/libggml-cpu-skylakex.so +2 -2
- lib/libggml-cpu-sse42.so +2 -2
- lib/libggml-cpu-x64.so +2 -2
- lib/libggml-cpu-zen4.so +2 -2
- lib/liblocalvqe.so +2 -2
- lib/liblocalvqe.so.0 +2 -2
- lib/liblocalvqe.so.0.1.0 +2 -2
app.py
CHANGED
|
@@ -267,6 +267,76 @@ def _resolve_v14aec_ckpt() -> str | None:
|
|
| 267 |
return None
|
| 268 |
|
| 269 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 270 |
def _build_v14aec():
|
| 271 |
ckpt_path = _resolve_v14aec_ckpt()
|
| 272 |
if ckpt_path is None:
|
|
@@ -301,6 +371,100 @@ def _build_v14aec_fe():
|
|
| 301 |
return model, info
|
| 302 |
|
| 303 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 304 |
def _build_v1():
|
| 305 |
ckpt_path = _resolve_v1_ckpt()
|
| 306 |
if ckpt_path is None:
|
|
@@ -519,6 +683,12 @@ GGUF_SPECS = [
|
|
| 519 |
# adaptive filter's `e` directly (no neural mask). Same process_f32 path.
|
| 520 |
("v1.4-AEC front-end only (2.7K, GGUF)",
|
| 521 |
"localvqe-v1.4-aec-2.7K-f32.gguf", 2_742, False),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 522 |
]
|
| 523 |
|
| 524 |
|
|
@@ -556,23 +726,31 @@ def _build_gguf(label: str, fname: str, n_params: int):
|
|
| 556 |
# which keeps torch entirely unimported there.
|
| 557 |
if ON_SPACE:
|
| 558 |
MODEL_V1 = MODEL_V11 = MODEL_V12 = MODEL_V13 = None
|
| 559 |
-
|
|
|
|
| 560 |
INFO_V1 = INFO_V11 = INFO_V12 = INFO_V13 = None
|
| 561 |
-
|
|
|
|
| 562 |
else:
|
| 563 |
MODEL_V1, INFO_V1 = _build_v1()
|
| 564 |
MODEL_V11, INFO_V11 = _build_v11()
|
| 565 |
MODEL_V12, INFO_V12 = _build_v12()
|
| 566 |
MODEL_V13, INFO_V13 = _build_v13()
|
| 567 |
-
MODEL_V13R2, INFO_V13R2 = _build_v13r2()
|
| 568 |
MODEL_V14AEC, INFO_V14AEC = _build_v14aec()
|
| 569 |
MODEL_V14AECFE, INFO_V14AECFE = _build_v14aec_fe()
|
| 570 |
-
#
|
| 571 |
-
#
|
| 572 |
-
#
|
| 573 |
-
#
|
| 574 |
-
|
| 575 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 576 |
MODEL_V121 = MODEL_V12A = MODEL_V12B = MODEL_V12C = MODEL_V12D = None
|
| 577 |
MODEL_V13NR = MODEL_V13ME = MODEL_V13MEP = MODEL_V13MEP2 = None
|
| 578 |
INFO_V121 = INFO_V12A = INFO_V12B = INFO_V12C = INFO_V12D = None
|
|
@@ -600,9 +778,6 @@ if MODEL_V11 is not None:
|
|
| 600 |
if MODEL_V12 is not None:
|
| 601 |
MODELS["v1.2 (1.3M)"] = MODEL_V12
|
| 602 |
INFOS["v1.2 (1.3M)"] = INFO_V12
|
| 603 |
-
if MODEL_V13R2 is not None:
|
| 604 |
-
MODELS["v1.3.r2 (1.55M)"] = MODEL_V13R2
|
| 605 |
-
INFOS["v1.3.r2 (1.55M)"] = INFO_V13R2
|
| 606 |
if MODEL_V13 is not None:
|
| 607 |
MODELS["v1.3 (4.8M)"] = MODEL_V13
|
| 608 |
INFOS["v1.3 (4.8M)"] = INFO_V13
|
|
@@ -612,6 +787,12 @@ if MODEL_V14AEC is not None:
|
|
| 612 |
if MODEL_V14AECFE is not None:
|
| 613 |
MODELS["v1.4-AEC front-end only (2.7K)"] = MODEL_V14AECFE
|
| 614 |
INFOS["v1.4-AEC front-end only (2.7K)"] = INFO_V14AECFE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 615 |
if not MODELS:
|
| 616 |
raise RuntimeError(
|
| 617 |
"No model could be loaded. Check that space/lib contains the "
|
|
@@ -719,6 +900,14 @@ def enhance(mic_path: str, ref_path: str,
|
|
| 719 |
# Released C++ engine: waveform in, waveform out. The debug
|
| 720 |
# accordions poke PyTorch internals and don't apply here.
|
| 721 |
out = model.process(mic, ref)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 722 |
else:
|
| 723 |
import torch
|
| 724 |
mic_t = torch.from_numpy(mic).unsqueeze(0)
|
|
|
|
| 267 |
return None
|
| 268 |
|
| 269 |
|
| 270 |
+
# v1.4 NS+dereverb backends (full enhancement). Same DAF front-end + slim CCM
|
| 271 |
+
# cascade as v1.4-AEC, but trained toward the anechoic `clean` target so they
|
| 272 |
+
# remove noise + reverb (not echo-only). Local-only; default to the packaged
|
| 273 |
+
# release copies, no HF publish yet.
|
| 274 |
+
def _resolve_v14nsdr200_ckpt() -> str | None:
|
| 275 |
+
v = os.environ.get("LOCALVQE_V14NSDR200_CKPT")
|
| 276 |
+
if v:
|
| 277 |
+
return v
|
| 278 |
+
d = "/workspace/localvqe/checkpoints/release/localvqe-v1.4-nsdr-200K.pt"
|
| 279 |
+
return d if os.path.exists(d) else None
|
| 280 |
+
|
| 281 |
+
|
| 282 |
+
def _resolve_v14nsdr800_ckpt() -> str | None:
|
| 283 |
+
v = os.environ.get("LOCALVQE_V14NSDR800_CKPT")
|
| 284 |
+
if v:
|
| 285 |
+
return v
|
| 286 |
+
d = "/workspace/localvqe/checkpoints/release/localvqe-v1.4-nsdr-800K.pt"
|
| 287 |
+
return d if os.path.exists(d) else None
|
| 288 |
+
|
| 289 |
+
|
| 290 |
+
def _resolve_gate_ckpt() -> str | None:
|
| 291 |
+
# The 1,657-param learned front-end NS/dereverb gate (fegate_proto.pt).
|
| 292 |
+
# Local-only research entry; default to the trained prototype.
|
| 293 |
+
v = os.environ.get("LOCALVQE_GATE_CKPT")
|
| 294 |
+
if v:
|
| 295 |
+
return v
|
| 296 |
+
# fegate_preserve.pt = trained with the clean energy-preservation term (the
|
| 297 |
+
# original fegate_proto.pt collapses to silence — EXPERIMENTS 2026-06-18).
|
| 298 |
+
for d in ("/workspace/localvqe/checkpoints/fegate_preserve.pt",
|
| 299 |
+
"/workspace/localvqe/checkpoints/fegate_proto.pt"):
|
| 300 |
+
if os.path.exists(d):
|
| 301 |
+
return d
|
| 302 |
+
return None
|
| 303 |
+
|
| 304 |
+
|
| 305 |
+
def _resolve_gtcrn_ckpt() -> str | None:
|
| 306 |
+
# The 48.9K AEC-aware GTCRN_AEC (gtcrn_ns_aec.pt) — all-scene, yhat far-end
|
| 307 |
+
# branch. Local-only research entry; default to the trained checkpoint.
|
| 308 |
+
v = os.environ.get("LOCALVQE_GTCRN_CKPT")
|
| 309 |
+
if v:
|
| 310 |
+
return v
|
| 311 |
+
d = "/workspace/localvqe/checkpoints/gtcrn_ns_aec.pt"
|
| 312 |
+
return d if os.path.exists(d) else None
|
| 313 |
+
|
| 314 |
+
|
| 315 |
+
def _resolve_gtcrn_os400_ckpt() -> str | None:
|
| 316 |
+
# os-weight 400 + movement bank — preserves quiet near-end (DT level 0.71→0.84)
|
| 317 |
+
# AND a strong echo guard recovered by the movement clips (FE-ST eval 17.2 dB,
|
| 318 |
+
# post-movement transient +5.5 dB vs os400). Pareto-dominates os140/os400.
|
| 319 |
+
v = os.environ.get("LOCALVQE_GTCRN_OS400_CKPT")
|
| 320 |
+
if v:
|
| 321 |
+
return v
|
| 322 |
+
for d in ("/workspace/localvqe/checkpoints/gtcrn_ns_aec_os400_move.pt",
|
| 323 |
+
"/workspace/localvqe/checkpoints/gtcrn_ns_aec_os400.pt"):
|
| 324 |
+
if os.path.exists(d):
|
| 325 |
+
return d
|
| 326 |
+
return None
|
| 327 |
+
|
| 328 |
+
|
| 329 |
+
def _resolve_gtcrn_keepnoise_ckpt() -> str | None:
|
| 330 |
+
# LocalVQE-Pi-AEC-v1-49k — keep-noise sibling of the full Pi model. Same 49K
|
| 331 |
+
# GTCRN_AEC arch, trained toward `room` (remove echo; keep noise + reverb)
|
| 332 |
+
# instead of `clean`. The echo-only counterpart to LocalVQE-Pi-v1-49k.
|
| 333 |
+
v = os.environ.get("LOCALVQE_GTCRN_KEEPNOISE_CKPT")
|
| 334 |
+
if v:
|
| 335 |
+
return v
|
| 336 |
+
d = "/workspace/localvqe/checkpoints/gtcrn_aec_keepnoise.pt"
|
| 337 |
+
return d if os.path.exists(d) else None
|
| 338 |
+
|
| 339 |
+
|
| 340 |
def _build_v14aec():
|
| 341 |
ckpt_path = _resolve_v14aec_ckpt()
|
| 342 |
if ckpt_path is None:
|
|
|
|
| 371 |
return model, info
|
| 372 |
|
| 373 |
|
| 374 |
+
def _build_v14aec_path(ckpt_path, label, frontend_only=False):
|
| 375 |
+
"""Load a v1.4-AEC cascade from an explicit path (e.g. a controller-grafted
|
| 376 |
+
blob) so a retrained front-end controller can be A/B'd vs the deployed one.
|
| 377 |
+
frontend_only=True drops the neural mask -> the adaptive filter alone, so the
|
| 378 |
+
controller's echo behaviour is audible without the backend masking it."""
|
| 379 |
+
if not ckpt_path or not os.path.exists(ckpt_path):
|
| 380 |
+
return None, None
|
| 381 |
+
from localvqe_v14aec import load_cascade
|
| 382 |
+
model = load_cascade(ckpt_path, frontend_only=frontend_only)
|
| 383 |
+
info = {
|
| 384 |
+
"source": ckpt_path,
|
| 385 |
+
"sha256": _sha256(ckpt_path),
|
| 386 |
+
"n_params": 2742 if frontend_only else sum(p.numel() for p in model.parameters()),
|
| 387 |
+
"label": label,
|
| 388 |
+
}
|
| 389 |
+
print(f"{label}: loaded sha={info['sha256'][:16]}… src={ckpt_path}")
|
| 390 |
+
return model, info
|
| 391 |
+
|
| 392 |
+
|
| 393 |
+
def _build_v14nsdr(resolve, label):
|
| 394 |
+
"""v1.4 NS+dereverb cascade. Same loader as v1.4-AEC (load_cascade); wrapped
|
| 395 |
+
in try/except so an unreachable/incompatible checkpoint hides the entry
|
| 396 |
+
rather than crashing app startup."""
|
| 397 |
+
ckpt_path = resolve()
|
| 398 |
+
if ckpt_path is None:
|
| 399 |
+
return None, None
|
| 400 |
+
from localvqe_v14aec import load_cascade
|
| 401 |
+
try:
|
| 402 |
+
model = load_cascade(ckpt_path)
|
| 403 |
+
except Exception as e:
|
| 404 |
+
print(f"{label}: load failed ({e})")
|
| 405 |
+
return None, None
|
| 406 |
+
info = {
|
| 407 |
+
"source": ckpt_path,
|
| 408 |
+
"sha256": _sha256(ckpt_path),
|
| 409 |
+
"n_params": sum(p.numel() for p in model.parameters()),
|
| 410 |
+
"label": label,
|
| 411 |
+
}
|
| 412 |
+
print(f"{label} loaded: {info['n_params']:,} params "
|
| 413 |
+
f"sha={info['sha256'][:16]}… src={ckpt_path}")
|
| 414 |
+
return model, info
|
| 415 |
+
|
| 416 |
+
|
| 417 |
+
def _build_gate():
|
| 418 |
+
"""The 1.7K learned front-end gate. Reuses a v1.4 cascade's DAF front-end (so
|
| 419 |
+
it sees the same `e` as the CCM backends) and applies the per-bin magnitude
|
| 420 |
+
gate to STFT(e). Local-only; needs both the gate weights and a front-end ckpt."""
|
| 421 |
+
gate_ckpt = _resolve_gate_ckpt()
|
| 422 |
+
fe_ckpt = _resolve_v14nsdr200_ckpt() or _resolve_v14aec_ckpt()
|
| 423 |
+
if gate_ckpt is None or fe_ckpt is None:
|
| 424 |
+
return None, None
|
| 425 |
+
from localvqe_gate import load_gate
|
| 426 |
+
try:
|
| 427 |
+
model = load_gate(fe_ckpt, gate_ckpt)
|
| 428 |
+
except Exception as e:
|
| 429 |
+
print(f"gate: load failed ({e})")
|
| 430 |
+
return None, None
|
| 431 |
+
info = {
|
| 432 |
+
"source": gate_ckpt,
|
| 433 |
+
"sha256": _sha256(gate_ckpt),
|
| 434 |
+
"n_params": sum(p.numel() for p in model.parameters()),
|
| 435 |
+
"label": "gate (1.7K front-end magnitude gain — ≈passthrough, see EXPERIMENTS 2026-06-18)",
|
| 436 |
+
}
|
| 437 |
+
print(f"gate loaded: {info['n_params']:,} params sha={info['sha256'][:16]}… "
|
| 438 |
+
f"front-end={fe_ckpt}")
|
| 439 |
+
return model, info
|
| 440 |
+
|
| 441 |
+
|
| 442 |
+
def _build_gtcrn(resolve, label, fe_ckpt_override=None):
|
| 443 |
+
"""The 48.9K AEC-aware GTCRN_AEC. Reuses a v1.4 cascade's DAF front-end (same `e`
|
| 444 |
+
as the CCM backends) plus the echo estimate yhat=mic-e, and applies a complex-ratio
|
| 445 |
+
mask on STFT(e). Local-only; needs both the GTCRN weights and a front-end ckpt.
|
| 446 |
+
fe_ckpt_override lets a grafted (retrained-controller) cascade supply the front-end."""
|
| 447 |
+
gtcrn_ckpt = resolve()
|
| 448 |
+
fe_ckpt = fe_ckpt_override or _resolve_v14nsdr200_ckpt() or _resolve_v14aec_ckpt()
|
| 449 |
+
if gtcrn_ckpt is None or fe_ckpt is None:
|
| 450 |
+
return None, None
|
| 451 |
+
from localvqe_gtcrn import load_gtcrn_aec
|
| 452 |
+
try:
|
| 453 |
+
model = load_gtcrn_aec(fe_ckpt, gtcrn_ckpt)
|
| 454 |
+
except Exception as e:
|
| 455 |
+
print(f"gtcrn-aec ({label}): load failed ({e})")
|
| 456 |
+
return None, None
|
| 457 |
+
info = {
|
| 458 |
+
"source": gtcrn_ckpt,
|
| 459 |
+
"sha256": _sha256(gtcrn_ckpt),
|
| 460 |
+
"n_params": sum(p.numel() for p in model.parameters()),
|
| 461 |
+
"label": label,
|
| 462 |
+
}
|
| 463 |
+
print(f"gtcrn-aec loaded: {info['n_params']:,} params sha={info['sha256'][:16]}… "
|
| 464 |
+
f"front-end={fe_ckpt} [{label}]")
|
| 465 |
+
return model, info
|
| 466 |
+
|
| 467 |
+
|
| 468 |
def _build_v1():
|
| 469 |
ckpt_path = _resolve_v1_ckpt()
|
| 470 |
if ckpt_path is None:
|
|
|
|
| 683 |
# adaptive filter's `e` directly (no neural mask). Same process_f32 path.
|
| 684 |
("v1.4-AEC front-end only (2.7K, GGUF)",
|
| 685 |
"localvqe-v1.4-aec-2.7K-f32.gguf", 2_742, False),
|
| 686 |
+
# Compact / low-power line (~49K GTCRN-AEC). Self-contained GGUFs (the DAF
|
| 687 |
+
# front-end is embedded), so they load through the same GGUFModel path with
|
| 688 |
+
# no extra files. v1 = full enhance; AEC = echo-only keep-noise.
|
| 689 |
+
("LocalVQE-Pi-v1-49k (GGUF)", "localvqe-pi-v1-49k-f32.gguf", 48_965, False),
|
| 690 |
+
("LocalVQE-Pi-AEC-v1-49k (GGUF)",
|
| 691 |
+
"localvqe-pi-aec-v1-49k-f32.gguf", 48_965, False),
|
| 692 |
]
|
| 693 |
|
| 694 |
|
|
|
|
| 726 |
# which keeps torch entirely unimported there.
|
| 727 |
if ON_SPACE:
|
| 728 |
MODEL_V1 = MODEL_V11 = MODEL_V12 = MODEL_V13 = None
|
| 729 |
+
MODEL_V14AEC = MODEL_V14AECFE = None
|
| 730 |
+
MODEL_GTCRN2 = MODEL_GTCRN_KN = None
|
| 731 |
INFO_V1 = INFO_V11 = INFO_V12 = INFO_V13 = None
|
| 732 |
+
INFO_V14AEC = INFO_V14AECFE = None
|
| 733 |
+
INFO_GTCRN2 = INFO_GTCRN_KN = None
|
| 734 |
else:
|
| 735 |
MODEL_V1, INFO_V1 = _build_v1()
|
| 736 |
MODEL_V11, INFO_V11 = _build_v11()
|
| 737 |
MODEL_V12, INFO_V12 = _build_v12()
|
| 738 |
MODEL_V13, INFO_V13 = _build_v13()
|
|
|
|
| 739 |
MODEL_V14AEC, INFO_V14AEC = _build_v14aec()
|
| 740 |
MODEL_V14AECFE, INFO_V14AECFE = _build_v14aec_fe()
|
| 741 |
+
# LocalVQE-Pi 49K GTCRN_AEC family (Raspberry-Pi deployment target). Same
|
| 742 |
+
# architecture, different training target:
|
| 743 |
+
# LocalVQE-Pi-v1-49k full enhancer (echo + NS + dereverb; `clean`)
|
| 744 |
+
# LocalVQE-Pi-AEC-v1-49k echo-only (keep noise + reverb; `room`)
|
| 745 |
+
MODEL_GTCRN2, INFO_GTCRN2 = _build_gtcrn(
|
| 746 |
+
_resolve_gtcrn_os400_ckpt, "LocalVQE-Pi-v1-49k")
|
| 747 |
+
MODEL_GTCRN_KN, INFO_GTCRN_KN = _build_gtcrn(
|
| 748 |
+
_resolve_gtcrn_keepnoise_ckpt, "LocalVQE-Pi-AEC-v1-49k")
|
| 749 |
+
# Lineup trimmed to the released artifacts + the two LocalVQE-Pi 49K models.
|
| 750 |
+
# Unreleased research entries pruned (builders kept above for revival):
|
| 751 |
+
# v1.2.1/v1.2a-d, v1.3-NR/ME/MEP/MEP2, v1.3.r2 (1.55M), v1.4 NS+dereverb
|
| 752 |
+
# 200K/800K, the retrained-controller v1.4-AEC variants, the 1.7K gate, and
|
| 753 |
+
# the earlier GTCRN echo-priority / +retrained-FE experiments.
|
| 754 |
MODEL_V121 = MODEL_V12A = MODEL_V12B = MODEL_V12C = MODEL_V12D = None
|
| 755 |
MODEL_V13NR = MODEL_V13ME = MODEL_V13MEP = MODEL_V13MEP2 = None
|
| 756 |
INFO_V121 = INFO_V12A = INFO_V12B = INFO_V12C = INFO_V12D = None
|
|
|
|
| 778 |
if MODEL_V12 is not None:
|
| 779 |
MODELS["v1.2 (1.3M)"] = MODEL_V12
|
| 780 |
INFOS["v1.2 (1.3M)"] = INFO_V12
|
|
|
|
|
|
|
|
|
|
| 781 |
if MODEL_V13 is not None:
|
| 782 |
MODELS["v1.3 (4.8M)"] = MODEL_V13
|
| 783 |
INFOS["v1.3 (4.8M)"] = INFO_V13
|
|
|
|
| 787 |
if MODEL_V14AECFE is not None:
|
| 788 |
MODELS["v1.4-AEC front-end only (2.7K)"] = MODEL_V14AECFE
|
| 789 |
INFOS["v1.4-AEC front-end only (2.7K)"] = INFO_V14AECFE
|
| 790 |
+
if MODEL_GTCRN2 is not None:
|
| 791 |
+
MODELS["LocalVQE-Pi-v1-49k"] = MODEL_GTCRN2
|
| 792 |
+
INFOS["LocalVQE-Pi-v1-49k"] = INFO_GTCRN2
|
| 793 |
+
if MODEL_GTCRN_KN is not None:
|
| 794 |
+
MODELS["LocalVQE-Pi-AEC-v1-49k"] = MODEL_GTCRN_KN
|
| 795 |
+
INFOS["LocalVQE-Pi-AEC-v1-49k"] = INFO_GTCRN_KN
|
| 796 |
if not MODELS:
|
| 797 |
raise RuntimeError(
|
| 798 |
"No model could be loaded. Check that space/lib contains the "
|
|
|
|
| 900 |
# Released C++ engine: waveform in, waveform out. The debug
|
| 901 |
# accordions poke PyTorch internals and don't apply here.
|
| 902 |
out = model.process(mic, ref)
|
| 903 |
+
elif getattr(model, "IS_GATE", False):
|
| 904 |
+
# Front-end gate: DAF → e → per-bin magnitude gate → iSTFT. Time-domain
|
| 905 |
+
# in/out (no enc/decoder split); the debug accordions don't apply.
|
| 906 |
+
out = model.process(mic, ref)
|
| 907 |
+
elif getattr(model, "IS_GTCRN", False):
|
| 908 |
+
# AEC-aware GTCRN: DAF → (e, yhat=mic−e) → complex mask on e → iSTFT.
|
| 909 |
+
# Time-domain in/out; the debug accordions don't apply.
|
| 910 |
+
out = model.process(mic, ref)
|
| 911 |
else:
|
| 912 |
import torch
|
| 913 |
mic_t = torch.from_numpy(mic).unsqueeze(0)
|
lib/libggml-base.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:606c5fdb6ea3c100426aecb78e240a131c240ac12d2a927a45b202b0c5ac9edd
|
| 3 |
+
size 751408
|
lib/libggml-base.so.0
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:606c5fdb6ea3c100426aecb78e240a131c240ac12d2a927a45b202b0c5ac9edd
|
| 3 |
+
size 751408
|
lib/libggml-base.so.0.9.8
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:606c5fdb6ea3c100426aecb78e240a131c240ac12d2a927a45b202b0c5ac9edd
|
| 3 |
+
size 751408
|
lib/libggml-cpu-alderlake.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:81c9f850e8c03b201dbdc586411f7215695bbebc63c1b06dc80cb10d69dad383
|
| 3 |
+
size 988040
|
lib/libggml-cpu-cannonlake.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e7a15ca667fb7549d088c498d4683a18b3351a1bca08fa88c573086648ded712
|
| 3 |
+
size 1049592
|
lib/libggml-cpu-cascadelake.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:648b92d310bcf669a9955ef26964755ab08afeb66f5c72b0da3db346a823f2f1
|
| 3 |
+
size 1045496
|
lib/libggml-cpu-cooperlake.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f0a65e1eac3af8c5ededbf3e31e166df1c147378fb7a74f84103a49acee373e5
|
| 3 |
+
size 1045496
|
lib/libggml-cpu-haswell.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0ba642b6c7a1943fad461ce7ba5d2b596b71f639463a6ff6fb2ee62132a256b5
|
| 3 |
+
size 988040
|
lib/libggml-cpu-icelake.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:02d8134ab56572e93df745b057f807d769c95b2568fa996f97a8546b2b8a541c
|
| 3 |
+
size 1045496
|
lib/libggml-cpu-ivybridge.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5a5ccc128334737a175029297d6dfd465f601faf4d1b26a79dc2f9778210e7aa
|
| 3 |
+
size 926384
|
lib/libggml-cpu-piledriver.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ca4585212a715b691e1a958e01c24b2b5ee97cf5891fb3d3cbd9d515bc07d02a
|
| 3 |
+
size 922288
|
lib/libggml-cpu-sandybridge.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:407737b1a31304eb82bd5d543caee730588e2d2da192486e2a4dd68645f0fba6
|
| 3 |
+
size 930480
|
lib/libggml-cpu-sapphirerapids.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:03a8dc460c37786da39f6198c2411c72a755e74193e276afe928a3dd98a97544
|
| 3 |
+
size 1311856
|
lib/libggml-cpu-skylakex.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ae3e53607fc1d0fe582d40f5a191c515cfb6f8b3b7c4edfeab35264e4d19a54b
|
| 3 |
+
size 1049592
|
lib/libggml-cpu-sse42.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8d59bef6a06abd0b53a286b27b2e02a99762f71eafd1455722589f9dd877e538
|
| 3 |
+
size 852528
|
lib/libggml-cpu-x64.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d85d664ddefc063cd3f720f5060c984fd35e98641d74d5c856a018792eaf563d
|
| 3 |
+
size 848608
|
lib/libggml-cpu-zen4.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ffeac2a8ebacf35dc5442d16125096a808951f86e8e8d9619c725c8e5fe88aa2
|
| 3 |
+
size 1045496
|
lib/liblocalvqe.so
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dd21f44657abce78e787fc5ee4e5a99baf5d641048a9af63b0dd044f5ba1464d
|
| 3 |
+
size 395456
|
lib/liblocalvqe.so.0
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dd21f44657abce78e787fc5ee4e5a99baf5d641048a9af63b0dd044f5ba1464d
|
| 3 |
+
size 395456
|
lib/liblocalvqe.so.0.1.0
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dd21f44657abce78e787fc5ee4e5a99baf5d641048a9af63b0dd044f5ba1464d
|
| 3 |
+
size 395456
|