Spaces:
Runtime error
Runtime error
# Use an official Python runtime as a parent image | |
FROM python:3.9-slim-buster | |
# Set the working directory in the container | |
WORKDIR /app | |
# Install build tools and other dependencies | |
RUN apt-get update && apt-get install -y --no-install-recommends \ | |
build-essential \ | |
cmake \ | |
pkg-config \ | |
libblis-dev \ | |
python3-venv \ | |
python3-dev \ | |
wget \ | |
git \ | |
gcc \ | |
g++ \ | |
libffi-dev \ | |
zlib1g-dev | |
# Create a virtual environment | |
RUN python3 -m venv venv | |
# Activate the virtual environment | |
RUN . /app/venv/bin/activate | |
# Copy the locally cloned Coqui TTS repository | |
COPY TTS /app/TTS | |
# Set the working directory to the TTS directory | |
WORKDIR /app/TTS | |
# Set a generic architecture flag | |
ENV BLIS_ARCH="generic" | |
# Try to agree to the Coqui TTS license via environment variable | |
ENV COQUI_TTS_AGREED=1 | |
# Install Coqui TTS requirements | |
RUN . /app/venv/bin/activate && pip install -r requirements.txt --timeout=300 | |
# Explicitly install the TTS package itself in editable mode | |
RUN . /app/venv/bin/activate && pip install -e . --timeout=300 | |
# Change working directory back to /app | |
WORKDIR /app | |
# Create the model directory (relative to /app) | |
RUN mkdir -p /app/models/xtts_v2 | |
# Download XTTS v2 model files | |
RUN wget -O /app/models/xtts_v2/config.json https://huggingface.co/coqui/XTTS-v2/resolve/main/config.json?download=true | |
RUN wget -O /app/models/xtts_v2/model.pth https://huggingface.co/coqui/XTTS-v2/resolve/main/model.pth?download=true | |
RUN wget -O /app/models/xtts_v2/vocab.json https://huggingface.co/coqui/XTTS-v2/resolve/main/vocab.json?download=true | |
RUN wget -O /app/models/xtts_v2/dvae.pth https://huggingface.co/coqui/XTTS-v2/resolve/main/dvae.pth?download=true | |
RUN wget -O /app/models/xtts_v2/speakers_xtts.pth https://huggingface.co/coqui/XTTS-v2/resolve/main/speakers_xtts.pth?download=true | |
# Create the audio directory if it doesn't exist | |
RUN mkdir -p /app/audio | |
# Copy the speaker reference file from the root directory | |
COPY speaker_reference.wav /app/audio/speaker_reference.wav | |
# Copy the web page files | |
COPY web /app/web | |
# Copy the application code | |
COPY local_server_new.py /app/ | |
# Install your other dependencies (fastapi, uvicorn, bangla, etc.) | |
COPY requirements.txt /app/ | |
RUN . /app/venv/bin/activate && pip install -r /app/requirements.txt --no-cache-dir --timeout=300 | |
# Disable numba caching | |
ENV NUMBA_DISABLE_CACHE=1 | |
# Clear numba and llvmlite cache (Let's keep this for now, though it might not be needed) | |
RUN rm -rf /app/venv/lib/python3.9/site-packages/numba/__pycache__ /app/venv/lib/python3.9/site-packages/llvmlite/__pycache__ | |
# Create start.sh script | |
RUN echo "#!/bin/bash" > start.sh && \ | |
echo "source /app/venv/bin/activate" >> start.sh && \ | |
echo "/app/venv/bin/python -m uvicorn local_server_new:app --host 0.0.0.0 --port 80" >> start.sh && \ | |
chmod +x start.sh | |
# Expose port | |
EXPOSE 80 | |
# Run the app using the script | |
CMD ["./start.sh"] |