# Usa a mesma imagem base que o Hugging Face Spaces FROM python:3.10 # Instala uma versão mais antiga do pip RUN python -m pip install pip==24.0 # Instala dependências do sistema necessárias RUN apt-get update && apt-get install -y \ git \ git-lfs \ ffmpeg \ libsm6 \ libxext6 \ cmake \ rsync \ libgl1-mesa-glx \ wget \ && rm -rf /var/lib/apt/lists/* # Define o diretório de trabalho WORKDIR /home/user/app # Cria os diretórios que o aplicativo precisa e ajusta permissões RUN mkdir -p models/speech_encoder && chmod -R 777 models RUN mkdir -p vocoder && chmod -R 777 vocoder # Copia o arquivo requirements.txt para o contêiner COPY . /home/user/app # Instala as dependências necessárias para compilação RUN pip install --no-cache-dir packaging ninja # Instala o pacote em modo de desenvolvimento RUN pip install -e . # Clona e instala fairseq RUN git clone https://github.com/pytorch/fairseq /tmp/fairseq \ && cd /tmp/fairseq \ && pip install -e . --no-build-isolation \ && cd /home/user/app # Instala flash-attn com os parâmetros recomendados RUN MAX_JOBS=4 pip install --no-cache-dir flash-attn --no-build-isolation # Instala as dependências Python do arquivo requirements.txt RUN pip install --no-cache-dir -r requirements.txt # Baixa o vocoder HiFi-GAN RUN wget -P vocoder/ https://dl.fbaipublicfiles.com/fairseq/speech_to_speech/vocoder/code_hifigan/mhubert_vp_en_es_fr_it3_400k_layer11_km1000_lj/g_00500000 && \ wget -P vocoder/ https://dl.fbaipublicfiles.com/fairseq/speech_to_speech/vocoder/code_hifigan/mhubert_vp_en_es_fr_it3_400k_layer11_km1000_lj/config.json # Pré-carrega o modelo Whisper tiny (mais rápido) RUN python -c "import whisper; whisper.load_model('tiny', download_root='models/speech_encoder/')" # Expõe a porta padrão do Gradio EXPOSE 7860 # Comando para rodar o aplicativo CMD ["python", "app_gradio_spaces.py"]