OpenWakeWord1 / Dockerfile
Liantsoaxx08's picture
Declare Space app port explicitly
4c3c414
Raw
History Blame Contribute Delete
2.36 kB
FROM python:3.10-slim
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV PIP_NO_CACHE_DIR=1
ENV PORT=7860
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
ffmpeg \
git \
libsndfile1 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY requirements-train.txt /app/requirements-train.txt
COPY train_openwakeword.py /app/train_openwakeword.py
COPY download_file.py /app/download_file.py
COPY download_openwakeword_assets.py /app/download_openwakeword_assets.py
COPY huggingface_space/requirements.txt /app/huggingface_space/requirements.txt
COPY huggingface_space/__init__.py /app/huggingface_space/__init__.py
COPY huggingface_space/app.py /app/huggingface_space/app.py
RUN python -m pip install --upgrade pip "setuptools<81" wheel \
&& python -m pip install \
--index-url https://download.pytorch.org/whl/cpu \
"torch==2.2.2+cpu" \
"torchaudio==2.2.2+cpu" \
&& python -m pip install -r /app/requirements-train.txt \
&& python -m pip install -r /app/huggingface_space/requirements.txt \
&& python -c "import openwakeword, torch, torchmetrics, onnx, onnxruntime, piper, piper_phonemize, fastapi; print('dependency smoke test ok')"
RUN mkdir -p /app/assets \
&& git clone https://github.com/rhasspy/piper-sample-generator /app/assets/piper-sample-generator \
&& mkdir -p /app/assets/piper-sample-generator/models \
&& python /app/download_file.py \
"https://github.com/rhasspy/piper-sample-generator/releases/download/v2.0.0/en_US-libritts_r-medium.pt" \
"/app/assets/piper-sample-generator/models/en_US-libritts_r-medium.pt" \
&& python /app/download_openwakeword_assets.py \
--assets-dir /app/assets \
--rir \
--poc-features \
--fma-hours 0.05
ENV OPENWAKEWORD_PIPER_SAMPLE_GENERATOR_PATH=/app/assets/piper-sample-generator
ENV OPENWAKEWORD_RIR_PATHS=/app/assets/mit_rirs
ENV OPENWAKEWORD_BACKGROUND_PATHS=/app/assets/background_clips
ENV OPENWAKEWORD_FALSE_POSITIVE_VALIDATION_DATA_PATH=/app/assets/validation_set_features.npy
ENV OPENWAKEWORD_FEATURE_DATA_FILE=/app/assets/validation_set_features.npy
RUN python -c "from huggingface_space.app import app; print('fastapi app import ok')"
EXPOSE 7860
CMD ["uvicorn", "huggingface_space.app:app", "--host", "0.0.0.0", "--port", "7860"]