Procházet zdrojové kódy

no internet connection for whisper if you use docker

Jannik Streidl před 1 rokem
rodič
revize
8ab0338e71
2 změnil soubory, kde provedl 11 přidání a 2 odebrání
  1. 6 0
      Dockerfile
  2. 5 2
      backend/apps/audio/main.py

+ 6 - 0
Dockerfile

@@ -30,6 +30,10 @@ ENV WEBUI_SECRET_KEY ""
 ENV SCARF_NO_ANALYTICS true
 ENV DO_NOT_TRACK true
 
+#Whisper TTS Settings
+ENV WHISPER_DIR="/app/backend/data/cache/whisper/models"
+ENV WHISPER_MODEL="base"
+
 WORKDIR /app/backend
 
 # install python dependencies
@@ -45,6 +49,8 @@ RUN apt-get update \
     && rm -rf /var/lib/apt/lists/*
 
 # RUN python -c "from sentence_transformers import SentenceTransformer; model = SentenceTransformer('all-MiniLM-L6-v2')"
+RUN python -c "import os; from faster_whisper import WhisperModel; WhisperModel(os.environ['WHISPER_MODEL'], device='cpu', compute_type='int8', download_root=os.environ['WHISPER_DIR'])"
+
 
 # copy embedding weight from build
 RUN mkdir -p /root/.cache/chroma/onnx_models/all-MiniLM-L6-v2

+ 5 - 2
backend/apps/audio/main.py

@@ -1,3 +1,4 @@
+import os
 from fastapi import (
     FastAPI,
     Request,
@@ -53,12 +54,14 @@ def transcribe(
             f.write(contents)
             f.close()
 
-        model_name = WHISPER_MODEL_NAME
+        model_name = os.getenv('WHISPER_MODEL', WHISPER_MODEL_NAME)
+        download_root = os.getenv('WHISPER_DIR', f"{CACHE_DIR}/whisper/models")
+
         model = WhisperModel(
             model_name,
             device="cpu",
             compute_type="int8",
-            download_root=f"{CACHE_DIR}/whisper/models",
+            download_root=download_root,
         )
 
         segments, info = model.transcribe(file_path, beam_size=5)