独立依赖
This commit is contained in:
@@ -4,7 +4,28 @@ set -euo pipefail
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
|
||||
cd "$ROOT"
|
||||
PY="/home/xsl/miniconda3/envs/MuseTalk/bin/python"
|
||||
|
||||
pick_python() {
|
||||
if [[ -n "${VISUAL_CHAT_PYTHON:-}" && -x "${VISUAL_CHAT_PYTHON}" ]]; then
|
||||
echo "${VISUAL_CHAT_PYTHON}"
|
||||
return 0
|
||||
fi
|
||||
if [[ -n "${VIRTUAL_ENV:-}" && -x "${VIRTUAL_ENV}/bin/python" ]]; then
|
||||
echo "${VIRTUAL_ENV}/bin/python"
|
||||
return 0
|
||||
fi
|
||||
if [[ -x "$ROOT/.venv/bin/python" ]]; then
|
||||
echo "$ROOT/.venv/bin/python"
|
||||
return 0
|
||||
fi
|
||||
if command -v python3 >/dev/null 2>&1; then
|
||||
command -v python3
|
||||
return 0
|
||||
fi
|
||||
command -v python
|
||||
}
|
||||
|
||||
PY="$(pick_python)"
|
||||
|
||||
if [[ -f ".env" ]]; then
|
||||
set -a
|
||||
@@ -17,7 +38,7 @@ SCHEME="http"
|
||||
if [[ -n "${SSL_CERTFILE:-}" && -n "${SSL_KEYFILE:-}" ]]; then
|
||||
SCHEME="https"
|
||||
fi
|
||||
BASE_URL="${BASE_URL:-${SCHEME}://127.0.0.1:${WEBRTC_PORT:-8080}}"
|
||||
BASE_URL="${BASE_URL:-${SCHEME}://127.0.0.1:${HTTP_PORT:-8080}}"
|
||||
|
||||
echo "[1/6] service status"
|
||||
bash scripts/service.sh status || true
|
||||
|
||||
@@ -28,8 +28,8 @@ normalize_host() {
|
||||
esac
|
||||
}
|
||||
|
||||
HOST="$(normalize_host "${WEBRTC_HOST:-0.0.0.0}")"
|
||||
PORT="${WEBRTC_PORT:-8018}"
|
||||
HOST="$(normalize_host "${HTTP_HOST:-0.0.0.0}")"
|
||||
PORT="${HTTP_PORT:-8018}"
|
||||
SSL_CERTFILE="${SSL_CERTFILE:-$ROOT_DIR/certs/dev-cert.pem}"
|
||||
SSL_KEYFILE="${SSL_KEYFILE:-$ROOT_DIR/certs/dev-key.pem}"
|
||||
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ start() {
|
||||
|
||||
# If stale process still binds configured port, stop it first.
|
||||
local port
|
||||
port="$(awk -F= '/^WEBRTC_PORT=/{print $2}' "$ROOT/.env" 2>/dev/null || true)"
|
||||
port="$(awk -F= '/^HTTP_PORT=/{print $2}' "$ROOT/.env" 2>/dev/null || true)"
|
||||
port="${port:-8080}"
|
||||
local pids
|
||||
pids="$(ss -ltnp 2>/dev/null | sed -n "s/.*:${port} .*users:((\"python\",pid=\([0-9]\+\),.*/\1/p" | tr '\n' ' ')"
|
||||
|
||||
@@ -21,8 +21,8 @@ pick_python() {
|
||||
echo "${VIRTUAL_ENV}/bin/python"
|
||||
return 0
|
||||
fi
|
||||
if [[ -x "/home/xsl/miniconda3/envs/MuseTalk/bin/python" ]]; then
|
||||
echo "/home/xsl/miniconda3/envs/MuseTalk/bin/python"
|
||||
if [[ -x "$ROOT/.venv/bin/python" ]]; then
|
||||
echo "$ROOT/.venv/bin/python"
|
||||
return 0
|
||||
fi
|
||||
if command -v python3 >/dev/null 2>&1; then
|
||||
@@ -44,8 +44,8 @@ normalize_host() {
|
||||
esac
|
||||
}
|
||||
|
||||
HOST="$(normalize_host "${WEBRTC_HOST:-0.0.0.0}")"
|
||||
PORT="${WEBRTC_PORT:-8080}"
|
||||
HOST="$(normalize_host "${HTTP_HOST:-0.0.0.0}")"
|
||||
PORT="${HTTP_PORT:-8080}"
|
||||
PY="$(pick_python)"
|
||||
SCHEME="http"
|
||||
ARGS=(main:app --host "$HOST" --port "$PORT")
|
||||
|
||||
@@ -34,8 +34,8 @@ pick_python() {
|
||||
echo "${VIRTUAL_ENV}/bin/python"
|
||||
return 0
|
||||
fi
|
||||
if [[ -x "/home/xsl/miniconda3/envs/MuseTalk/bin/python" ]]; then
|
||||
echo "/home/xsl/miniconda3/envs/MuseTalk/bin/python"
|
||||
if [[ -x "$ROOT/.venv/bin/python" ]]; then
|
||||
echo "$ROOT/.venv/bin/python"
|
||||
return 0
|
||||
fi
|
||||
if command -v python3 >/dev/null 2>&1; then
|
||||
@@ -46,8 +46,8 @@ pick_python() {
|
||||
}
|
||||
|
||||
PY="$(pick_python)"
|
||||
HOST="$(normalize_host "${WEBRTC_HOST:-0.0.0.0}")"
|
||||
PORT="${WEBRTC_PORT:-8080}"
|
||||
HOST="$(normalize_host "${HTTP_HOST:-0.0.0.0}")"
|
||||
PORT="${HTTP_PORT:-8080}"
|
||||
SCHEME="http"
|
||||
ARGS=(main:app --host "$HOST" --port "$PORT")
|
||||
|
||||
|
||||
@@ -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