Quartz4065 commited on
Commit
829baf1
·
verified ·
1 Parent(s): 28fc9e7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -6
app.py CHANGED
@@ -7,10 +7,13 @@ from fastapi.middleware.cors import CORSMiddleware
7
  from fastapi.responses import JSONResponse
8
  from pydantic import BaseModel
9
 
10
- # ===== Writable caches (persist across restarts) =====
11
  os.environ.setdefault("HF_HOME", "/data/hf")
12
  os.environ.setdefault("HUGGINGFACE_HUB_CACHE", "/data/hf")
13
  os.environ.setdefault("XDG_CACHE_HOME", "/data/.cache")
 
 
 
14
  for p in ("/data", "/data/hf", "/data/.cache", "/tmp"):
15
  try:
16
  os.makedirs(p, exist_ok=True)
@@ -18,19 +21,26 @@ for p in ("/data", "/data/hf", "/data/.cache", "/tmp"):
18
  except Exception:
19
  pass
20
 
21
- # ===== Transcriber (CPU) =====
22
  from faster_whisper import WhisperModel
23
  MODEL_NAME = os.environ.get("WHISPER_MODEL", "tiny.en")
24
 
25
- app = FastAPI(title="Nuvia Free Transcriber", version="1.2.0")
26
  app.add_middleware(
27
  CORSMiddleware,
28
  allow_origins=["*"], allow_credentials=True,
29
  allow_methods=["*"], allow_headers=["*"],
30
  )
31
 
32
- # Load from /data to avoid runtime downloads
33
- model = WhisperModel(MODEL_NAME, device="cpu", compute_type="int8", download_root="/data/hf")
 
 
 
 
 
 
 
34
 
35
  class HealthOut(BaseModel):
36
  ok: bool
@@ -82,7 +92,7 @@ async def transcribe(file: UploadFile = File(...)):
82
 
83
  duration = ffprobe_duration(tmp_wav)
84
 
85
- # Transcribe
86
  segments, _ = model.transcribe(tmp_wav, language="en")
87
  text = "".join(seg.text for seg in segments).strip()
88
 
 
7
  from fastapi.responses import JSONResponse
8
  from pydantic import BaseModel
9
 
10
+ # ---- CACHES: point to writable dirs, ensure perms ----
11
  os.environ.setdefault("HF_HOME", "/data/hf")
12
  os.environ.setdefault("HUGGINGFACE_HUB_CACHE", "/data/hf")
13
  os.environ.setdefault("XDG_CACHE_HOME", "/data/.cache")
14
+ os.environ.setdefault("HF_HUB_DISABLE_TELEMETRY", "1")
15
+ os.environ.setdefault("HF_HUB_DISABLE_PROGRESS_BARS", "1")
16
+
17
  for p in ("/data", "/data/hf", "/data/.cache", "/tmp"):
18
  try:
19
  os.makedirs(p, exist_ok=True)
 
21
  except Exception:
22
  pass
23
 
24
+ # ---- Transcriber (CPU) ----
25
  from faster_whisper import WhisperModel
26
  MODEL_NAME = os.environ.get("WHISPER_MODEL", "tiny.en")
27
 
28
+ app = FastAPI(title="Nuvia Free Transcriber", version="1.3.0")
29
  app.add_middleware(
30
  CORSMiddleware,
31
  allow_origins=["*"], allow_credentials=True,
32
  allow_methods=["*"], allow_headers=["*"],
33
  )
34
 
35
+ # IMPORTANT:
36
+ # local_files_only=True prevents any runtime writes/downloads
37
+ model = WhisperModel(
38
+ MODEL_NAME,
39
+ device="cpu",
40
+ compute_type="int8",
41
+ download_root="/data/hf",
42
+ local_files_only=True,
43
+ )
44
 
45
  class HealthOut(BaseModel):
46
  ok: bool
 
92
 
93
  duration = ffprobe_duration(tmp_wav)
94
 
95
+ # Transcribe (no downloads, model already cached)
96
  segments, _ = model.transcribe(tmp_wav, language="en")
97
  text = "".join(seg.text for seg in segments).strip()
98