独立依赖
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Populate ./models from local silero wheel + Hugging Face snapshots (ASR/TTS only; needs network for HF)."""
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import importlib.resources as ir
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
_ROOT = Path(__file__).resolve().parent.parent
|
||||
_DEFAULT_ASR = _ROOT / "models" / "asr" / "SenseVoiceSmall"
|
||||
_DEFAULT_KOKORO = _ROOT / "models" / "tts" / "Kokoro-82M"
|
||||
_VAD_JIT = _ROOT / "models" / "vad" / "silero_vad.jit"
|
||||
|
||||
|
||||
def _copy_silero_vad() -> None:
|
||||
_VAD_JIT.parent.mkdir(parents=True, exist_ok=True)
|
||||
src = ir.files("silero_vad.data").joinpath("silero_vad.jit")
|
||||
_VAD_JIT.write_bytes(src.read_bytes())
|
||||
print(f"VAD -> {_VAD_JIT}")
|
||||
|
||||
|
||||
def main() -> int:
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument("--asr-repo", default="FunAudioLLM/SenseVoiceSmall")
|
||||
parser.add_argument("--kokoro-repo", default="hexgrad/Kokoro-82M")
|
||||
parser.add_argument("--asr-dir", type=Path, default=_DEFAULT_ASR)
|
||||
parser.add_argument("--kokoro-dir", type=Path, default=_DEFAULT_KOKORO)
|
||||
parser.add_argument("--asr-only", action="store_true")
|
||||
parser.add_argument("--kokoro-only", action="store_true")
|
||||
parser.add_argument("--skip-hf", action="store_true", help="Only copy Silero VAD from installed wheel")
|
||||
args = parser.parse_args()
|
||||
|
||||
try:
|
||||
_copy_silero_vad()
|
||||
except Exception as exc:
|
||||
print(f"Silero VAD copy failed (pip install silero-vad): {exc}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
if args.skip_hf:
|
||||
print("Done (HF skipped).")
|
||||
return 0
|
||||
|
||||
try:
|
||||
from huggingface_hub import snapshot_download
|
||||
except ImportError:
|
||||
print("Install huggingface_hub for ASR/TTS downloads.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
if not args.kokoro_only:
|
||||
args.asr_dir.mkdir(parents=True, exist_ok=True)
|
||||
print(f"ASR -> {args.asr_dir}")
|
||||
snapshot_download(repo_id=args.asr_repo, local_dir=str(args.asr_dir))
|
||||
if not args.asr_only:
|
||||
args.kokoro_dir.mkdir(parents=True, exist_ok=True)
|
||||
print(f"Kokoro -> {args.kokoro_dir}")
|
||||
snapshot_download(repo_id=args.kokoro_repo, local_dir=str(args.kokoro_dir))
|
||||
|
||||
print("Done.")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Reference in New Issue
Block a user